diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index 5df7317..27d17da 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -28,4 +28,20 @@ jobs: - name: Publish module to PowerShell Gallery shell: pwsh run: | - Publish-Module -Path ./ -NuGetApiKey ${{ secrets.PSGALLERY_API_KEY }} -Verbose \ No newline at end of file + Publish-Module -Path ./ -NuGetApiKey ${{ secrets.PSGALLERY_API_KEY }} -Verbose + tweet: + needs: publish-to-gallery + runs-on: ubuntu-latest + steps: + - uses: Eomm/why-don-t-you-tweet@v1 + # We don't want to tweet if the repository is not a public one + if: ${{ !github.event.repository.private }} + with: + # GitHub event payload + # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release + tweet-message: "[New Release] ${{ github.event.repository.name }} ${{ github.event.release.tag_name }}! Check out what's new! ${{ github.event.release.html_url }} #Netapp #AsBuiltReport #PowerShell #Ontap #NetAppATeam" + env: + TWITTER_CONSUMER_API_KEY: ${{ secrets.TWITTER_CONSUMER_API_KEY }} + TWITTER_CONSUMER_API_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }} + TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }} + TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} diff --git a/AsBuiltReport.NetApp.ONTAP.json b/AsBuiltReport.NetApp.ONTAP.json index 47da3fb..75b478a 100755 --- a/AsBuiltReport.NetApp.ONTAP.json +++ b/AsBuiltReport.NetApp.ONTAP.json @@ -9,7 +9,9 @@ "ShowTableCaptions": true }, "Options": { - + "Exclude": { + "Vserver": [] + } }, "InfoLevel": { "_comment_": "0 = Disabled, 1 = Enabled, 2 = Adv Summary", diff --git a/AsBuiltReport.NetApp.ONTAP.psd1 b/AsBuiltReport.NetApp.ONTAP.psd1 index cf1a4d6..e9a66cf 100755 --- a/AsBuiltReport.NetApp.ONTAP.psd1 +++ b/AsBuiltReport.NetApp.ONTAP.psd1 @@ -12,7 +12,7 @@ RootModule = 'AsBuiltReport.NetApp.ONTAP.psm1' # Version number of this module. -ModuleVersion = '0.6.3' +ModuleVersion = '0.6.4' # Supported PSEditions # CompatiblePSEditions = @() @@ -54,11 +54,11 @@ Description = 'A PowerShell module to generate an as built report on the configu RequiredModules = @( @{ ModuleName = 'AsBuiltReport.Core'; - ModuleVersion = '1.1.0' + ModuleVersion = '1.2.0' }, @{ ModuleName = 'NetApp.ONTAP'; - ModuleVersion = '9.9.1' + ModuleVersion = '9.10.1.2111' } ) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18ef22d..95f9536 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # :arrows_counterclockwise: NetApp ONTAP Storage As Built Report Changelog +## [0.6.4] - 2022-05-14 + +### Added + +- Added Option to allow Vserver (SVM) filtering. + +### Changed + +- Migrated Sample Report URL to htmlpreview.github.io +- The minimum requirement for the AsBuiltReport.Core module has been increased to version 1.2.0. +- The minimum requirement for the NetApp.ONTAP module has been increased to version 9.10.1.2111 + ## [0.6.3] - 2022-01-31 ### Changed diff --git a/README.md b/README.md index fcb2f19..8e9b864 100755 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for m ### Sample Report - Custom Style 1 -Sample NetApp ONTAP As Built report HTML file: [Sample NetApp As-Built Report.html](https://technomyth.zenprsolutions.net/wp-content/uploads/2021/11/NetApp-ONTAP-As-Built-Report.html) +Sample NetApp ONTAP As Built report HTML file: [Sample NetApp As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.NetApp.ONTAP/dev/Samples/Sample%20NetApp%20As-Built%20Report.html) # :beginner: Getting Started @@ -66,8 +66,8 @@ These modules may also be manually installed. | Module Name | Minimum Required Version | PS Gallery | GitHub | |--------------------|:------------------------:|:---------------------------------------------------------------------:|:---------------------------------------------------------------------------:| | PScribo | 0.9.1 | [Link](https://www.powershellgallery.com/packages/PScribo) | [Link](https://github.com/iainbrighton/PScribo/tree/master) | -| AsBuiltReport.Core | 1.1.0 | [Link](https://www.powershellgallery.com/packages/AsBuiltReport.Core) | [Link](https://github.com/AsBuiltReport/AsBuiltReport.Core/releases/latest) | -| Netapp.ONTAP | 9.9.1 | [Link](https://www.powershellgallery.com/packages/NetApp.ONTAP) | | +| AsBuiltReport.Core | 1.2.0 | [Link](https://www.powershellgallery.com/packages/AsBuiltReport.Core) | [Link](https://github.com/AsBuiltReport/AsBuiltReport.Core/releases/latest) | +| Netapp.ONTAP | 9.10.1.2111 | [Link](https://www.powershellgallery.com/packages/NetApp.ONTAP) | | ### Linux & macOS @@ -84,7 +84,7 @@ These modules may also be manually installed. Open a PowerShell terminal window and install each of the required modules as follows; ```powershell -Install-Module AsBuiltReport.NetApp.ONTAP +Install-Module -Name AsBuiltReport.NetApp.ONTAP ``` ### GitHub @@ -141,6 +141,9 @@ The **Report** schema provides configuration of the NetApp ONTAP report informat ### Options The **Options** schema allows certain options within the report to be toggled on or off. +| Sub-Schema | Setting | Default | Description | +|-----------------|--------------|---------|-----------------------------------------------------------------| +| Exclude: Vserver | Array List | Empty | Allow to filter on Vserver Name ### InfoLevel @@ -151,9 +154,24 @@ There are 3 levels (0-2) of detail granularity for each section as follows; | Setting | InfoLevel | Description | |:-------:|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------| | 0 | Disabled | Does not collect or display any information | -| 1 | Enabled / Summary | Provides summarised information for a collection of objects | +| 1 | Enabled / Summary | Provides summarised information for a collection of objects | | 2 | Adv Summary | Provides condensed, detailed information for a collection of objects | +The table below outlines the default and maximum **InfoLevel** settings for each section. + +| Sub-Schema | Default Setting | Maximum Setting | +|--------------|:---------------:|:---------------:| +| Cluster | 1 | 2 | +| Node | 1 | 2 | +| Storage | 1 | 2 | +| Network | 1 | 2 | +| License | 1 | 2 | +| Vserver | 1 | 2 | +| Efficiency | 1 | 2 | +| Security | 1 | 2 | +| System | 1 | 2 | +| Replication | 1 | 2 | + ### Healthcheck The **Healthcheck** schema is used to toggle health checks on or off. diff --git a/Samples/Sample_NetApp_Report_1.png b/Samples/Sample_NetApp_Report_1.png deleted file mode 100755 index 39d1264..0000000 Binary files a/Samples/Sample_NetApp_Report_1.png and /dev/null differ diff --git a/Samples/Sample_NetApp_Report_2.png b/Samples/Sample_NetApp_Report_2.png deleted file mode 100755 index 8a2dabc..0000000 Binary files a/Samples/Sample_NetApp_Report_2.png and /dev/null differ diff --git a/Samples/Sample_NetApp_Report_3.png b/Samples/Sample_NetApp_Report_3.png deleted file mode 100755 index f091837..0000000 Binary files a/Samples/Sample_NetApp_Report_3.png and /dev/null differ diff --git a/Samples/Sample_NetApp_Report_4.png b/Samples/Sample_NetApp_Report_4.png deleted file mode 100755 index 6936769..0000000 Binary files a/Samples/Sample_NetApp_Report_4.png and /dev/null differ diff --git a/Src/Private/Get-AbrOntapNetworkMGMT.ps1 b/Src/Private/Get-AbrOntapNetworkMGMT.ps1 index 039c670..a210b19 100755 --- a/Src/Private/Get-AbrOntapNetworkMGMT.ps1 +++ b/Src/Private/Get-AbrOntapNetworkMGMT.ps1 @@ -5,7 +5,7 @@ function Get-AbrOntapNetworkMgmt { .DESCRIPTION .NOTES - Version: 0.6.3 + Version: 0.6.4 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux @@ -159,7 +159,7 @@ function Get-AbrOntapNetworkMgmt { } try { Section -Style Heading6 'Data Network Interfaces' { - $ClusterData = Get-NcNetInterface -Controller $Array | Where-Object {$_.Role -eq 'data' -and $_.DataProtocols -ne 'fcp'} + $ClusterData = Get-NcNetInterface -Controller $Array | Where-Object {$_.Role -eq 'data' -and $_.DataProtocols -ne 'fcp' -and $_.Vserver -notin $options.Exclude.Vserver} $ClusterObj = @() if ($ClusterData) { foreach ($Item in $ClusterData) { diff --git a/Src/Private/Get-AbrOntapSecuritySSLDetailed.ps1 b/Src/Private/Get-AbrOntapSecuritySSLDetailed.ps1 index 7a279b6..66f516a 100755 --- a/Src/Private/Get-AbrOntapSecuritySSLDetailed.ps1 +++ b/Src/Private/Get-AbrOntapSecuritySSLDetailed.ps1 @@ -5,7 +5,7 @@ function Get-AbrOntapSecuritySSLDetailed { .DESCRIPTION .NOTES - Version: 0.6.3 + Version: 0.6.4 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux @@ -24,7 +24,7 @@ function Get-AbrOntapSecuritySSLDetailed { process { try { - $Data = Get-NcSecurityCertificate -Controller $Array | Where-Object {$_.Type -eq "server"} + $Data = Get-NcSecurityCertificate -Controller $Array | Where-Object {$_.Type -eq "server" -and $_.Vserver -notin $Options.Exclude.Vserver} $OutObj = @() if ($Data) { foreach ($Item in $Data) { diff --git a/Src/Private/Get-AbrOntapSecuritySSLVserver.ps1 b/Src/Private/Get-AbrOntapSecuritySSLVserver.ps1 index ee42718..4f97fb6 100755 --- a/Src/Private/Get-AbrOntapSecuritySSLVserver.ps1 +++ b/Src/Private/Get-AbrOntapSecuritySSLVserver.ps1 @@ -5,7 +5,7 @@ function Get-AbrOntapSecuritySSLVserver { .DESCRIPTION .NOTES - Version: 0.6.3 + Version: 0.6.4 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux @@ -24,7 +24,7 @@ function Get-AbrOntapSecuritySSLVserver { process { try { - $Data = Get-NcSecuritySsl -Controller $Array + $Data = Get-NcSecuritySsl -Controller $Array | Where-Object {$_.Vserver -notin $Options.Exclude.Vserver} $OutObj = @() if ($Data) { foreach ($Item in $Data) { diff --git a/Src/Private/Get-AbrOntapSysConfigDNS.ps1 b/Src/Private/Get-AbrOntapSysConfigDNS.ps1 index 8e3922d..eef5e79 100755 --- a/Src/Private/Get-AbrOntapSysConfigDNS.ps1 +++ b/Src/Private/Get-AbrOntapSysConfigDNS.ps1 @@ -5,7 +5,7 @@ function Get-AbrOntapSysConfigDNS { .DESCRIPTION .NOTES - Version: 0.6.3 + Version: 0.6.4 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux @@ -24,7 +24,7 @@ function Get-AbrOntapSysConfigDNS { process { try { - $Data = Get-NcNetDns -Controller $Array + $Data = Get-NcNetDns -Controller $Array | Where-Object {$_.Vserver -notin $Options.Exclude.Vserver} $OutObj = @() if ($Data) { foreach ($Item in $Data) { diff --git a/Src/Public/Invoke-AsBuiltReport.NetApp.ONTAP.ps1 b/Src/Public/Invoke-AsBuiltReport.NetApp.ONTAP.ps1 index deaac38..06f2250 100755 --- a/Src/Public/Invoke-AsBuiltReport.NetApp.ONTAP.ps1 +++ b/Src/Public/Invoke-AsBuiltReport.NetApp.ONTAP.ps1 @@ -5,7 +5,7 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { .DESCRIPTION Documents the configuration of NetApp ONTAP in Word/HTML/Text formats using PScribo. .NOTES - Version: 0.6.3 + Version: 0.6.4 Author: Jonathan Colon Feliciano Twitter: @jcolonfzenpr Github: rebelinux @@ -21,6 +21,10 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { [PSCredential] $Credential ) + Write-PScriboMessage -IsWarning "Please refer to the AsBuiltReport.NetApp.ONTAP github website for more detailed information about this project." + Write-PScriboMessage -IsWarning "Documentation: https://github.com/AsBuiltReport/AsBuiltReport.NetApp.ONTAP" + Write-PScriboMessage -IsWarning "Issues or bug reporting: https://github.com/AsBuiltReport/AsBuiltReport.NetApp.ONTAP/issues" + # Import Report Configuration $Report = $ReportConfig.Report $InfoLevel = $ReportConfig.InfoLevel @@ -230,7 +234,7 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { Get-AbrOntapNetworkSubnet } } - $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -ne "node" -and $_.VserverType -ne "system" } | Select-Object -ExpandProperty Vserver + $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -ne "node" -and $_.VserverType -ne "system" -and $_.Vserver -notin $Options.Exclude.Vserver} | Select-Object -ExpandProperty Vserver foreach ($SVM in $Vservers) { if (Get-NcNetRoute -VserverContext $SVM -Controller $Array) { Section -Style Heading4 "$SVM Vserver Routes" { @@ -263,7 +267,7 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { Section -Style Heading2 'Vserver Information' { Paragraph "The following section provides a summary of the vserver information on $($ClusterInfo.ClusterName)." BlankLine - $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -eq "data" } | Select-Object -ExpandProperty Vserver + $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -eq "data" -and $_.Vserver -notin $Options.Exclude.Vserver} | Select-Object -ExpandProperty Vserver foreach ($SVM in $Vservers) { Section -Style Heading3 "$SVM Vserver Configuration" { Paragraph "The following section provides the configuration of the vserver $($SVM)." @@ -519,7 +523,7 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { #---------------------------------------------------------------------------------------------# Write-PScriboMessage "Efficiency InfoLevel set at $($InfoLevel.Efficiency)." if ($InfoLevel.Efficiency -gt 0) { - $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -eq "data" } | Select-Object -ExpandProperty Vserver + $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -eq "data" -and $_.Vserver -notin $Options.Exclude.Vserver} | Select-Object -ExpandProperty Vserver if (Get-NcAggrEfficiency -Controller $Array) { Section -Style Heading2 'Efficiency Information' { Paragraph "The following section provides the Storage Efficiency Saving information on $($ClusterInfo.ClusterName)." @@ -555,7 +559,7 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { #---------------------------------------------------------------------------------------------# Write-PScriboMessage "Security InfoLevel set at $($InfoLevel.Security)." if ($InfoLevel.Security -gt 0) { - $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -eq "data" } | Select-Object -ExpandProperty Vserver + $Vservers = Get-NcVserver -Controller $Array | Where-Object { $_.VserverType -eq "data" -and $_.Vserver -notin $Options.Exclude.Vserver} | Select-Object -ExpandProperty Vserver Section -Style Heading2 'Security Information' { Paragraph "The following section provides the Security related information on $($ClusterInfo.ClusterName)." BlankLine @@ -643,7 +647,7 @@ function Invoke-AsBuiltReport.NetApp.ONTAP { Get-AbrOntapSysConfigWebStatus } } - if (Get-NcNetDns -Controller $Array) { + if (Get-NcNetDns -Controller $Array | Where-Object {$_.Vserver -notin $Options.Exclude.Vserver}) { Section -Style Heading3 'DNS Configuration' { Get-AbrOntapSysConfigDNS }