Skip to content

Commit c6c8630

Browse files
authored
Merge pull request #60 from AsBuiltReport/dev
v0.6.9 public release
2 parents 2590c2e + fdf37c2 commit c6c8630

File tree

10 files changed

+552
-1879
lines changed

10 files changed

+552
-1879
lines changed

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# These are supported funding model platforms
2+
3+
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
#patreon: # Replace with a single Patreon username
5+
#open_collective: # Replace with a single Open Collective username
6+
ko_fi: F1F8DEV80
7+
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
#liberapay: # Replace with a single Liberapay username
10+
#issuehunt: # Replace with a single IssueHunt username
11+
#lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
#polar: # Replace with a single Polar username
13+
#buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
#thanks_dev: # Replace with a single thanks.dev username
15+
#custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/workflows/Release.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,13 @@ jobs:
4949
TWITTER_CONSUMER_API_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }}
5050
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
5151
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
52+
bsky-post:
53+
needs: publish-to-gallery
54+
runs-on: ubuntu-latest
55+
steps:
56+
- uses: zentered/[email protected]
57+
with:
58+
post: "[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"
59+
env:
60+
BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }}
61+
BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }}

AsBuiltReport.NetApp.ONTAP.psd1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
RootModule = 'AsBuiltReport.NetApp.ONTAP.psm1'
1313

1414
# Version number of this module.
15-
ModuleVersion = '0.6.8'
15+
ModuleVersion = '0.6.9'
1616

1717
# Supported PSEditions
1818
# CompatiblePSEditions = @()
@@ -54,15 +54,15 @@
5454
RequiredModules = @(
5555
@{
5656
ModuleName = 'AsBuiltReport.Core';
57-
ModuleVersion = '1.4.3'
57+
ModuleVersion = '1.5.0'
5858
},
5959
@{
6060
ModuleName = 'NetApp.ONTAP';
61-
ModuleVersion = '9.16.1.2501'
61+
ModuleVersion = '9.17.1.2509'
6262
},
6363
@{
6464
ModuleName = 'Diagrammer.Core';
65-
ModuleVersion = '0.2.29'
65+
ModuleVersion = '0.2.32'
6666
}
6767
)
6868

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.6.9] - 2025-10-21
9+
10+
### Changed
11+
12+
- General code cleanup/improvements
13+
- Add Bluesky post action to release workflow
14+
- Increased Required Modules version:
15+
- Diagrammer.Core v0.2.32
16+
- NetApp.Ontap v9.17.1.2509
17+
- AsBuiltReport.Core v1.5.0
18+
- Refactor Get-NetAppOntapAPI to handle Unix platform and improve error handling in Invoke-AsBuiltReport.NetApp.ONTAP
19+
20+
### Fixed
21+
22+
- Fix issue where cluster replication diagram generation fails if no replication relationships are found.
23+
- Fix issue where certain sections of the report may not render correctly on Unix-based systems.
24+
- Close [#58](https://github.com/AsBuiltReport/AsBuiltReport.NetApp.ONTAP/issues/58)
25+
826
## [0.6.8] - 2025-08-18
927

1028
### Added

README.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@
2222
<a href="https://twitter.com/AsBuiltReport" alt="Twitter">
2323
<img src="https://img.shields.io/twitter/follow/AsBuiltReport.svg?style=social"/></a>
2424
</p>
25-
<p align="center">
26-
<a href='https://ko-fi.com/F1F8DEV80' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
27-
</p>
2825

2926
# NetApp ONTAP Arrays AsBuiltReport
3027

@@ -51,7 +48,7 @@ Below are the instructions on how to install, configure and generate a NetApp ON
5148
The ONTAP Storage As Built Report supports the following ONTAP versions;
5249

5350
- ONTAP 9.x
54-
- Tested on v9.5, 9.7, 9.8, 9.9.1, 9.10.1, 9.11.1, 9.12.1, 9.13.1, 9.14.1, 9.15.1, 9.16.1
51+
- Tested on v9.5, 9.7, 9.8, 9.9.1, 9.10.1, 9.11.1, 9.12.1, 9.13.1, 9.14.1, 9.15.1, 9.16.1, 9.17.1
5552

5653
### **PowerShell**
5754

@@ -68,10 +65,10 @@ Each of the following modules will be automatically installed by following the [
6865
These modules may also be manually installed.
6966

7067
| Module Name | Minimum Required Version | PS Gallery | GitHub |
71-
|--------------------|:------------------------:|:---------------------------------------------------------------------:|:---------------------------------------------------------------------------:|
72-
| PScribo | 0.10.0 | [Link](https://www.powershellgallery.com/packages/PScribo) | [Link](https://github.com/iainbrighton/PScribo/tree/master) |
68+
| ------------------ | :----------------------: | :-------------------------------------------------------------------: | :-------------------------------------------------------------------------: |
69+
| PScribo | 0.10.0 | [Link](https://www.powershellgallery.com/packages/PScribo) | [Link](https://github.com/iainbrighton/PScribo/tree/master) |
7370
| AsBuiltReport.Core | 1.4.0 | [Link](https://www.powershellgallery.com/packages/AsBuiltReport.Core) | [Link](https://github.com/AsBuiltReport/AsBuiltReport.Core/releases/latest) |
74-
| Netapp.ONTAP | 9.15.1.2407 | [Link](https://www.powershellgallery.com/packages/NetApp.ONTAP) | |
71+
| Netapp.ONTAP | 9.17.1.2509 | [Link](https://www.powershellgallery.com/packages/NetApp.ONTAP) | |
7572

7673
## :package: Module Installation
7774

@@ -137,21 +134,21 @@ The **Report** schema provides configuration of the NetApp ONTAP report informat
137134
### Options
138135

139136
The **Options** schema allows certain options within the report to be toggled on or off.
140-
| Sub-Schema | Setting | Default | Description |
141-
| --------------------- | ------------ | ------- | -------------------------------------------------- |
142-
| Exclude: Vserver | Array List | Empty | Allow to filter on Vserver Name |
143-
| Exclude: MetroCluster | true / false | false | Allow to filter automatically all Vserver with -mc |
144-
| DiagramColumnSize | int | 3 | Set the diagram node table size |
145-
| DiagramTheme | string | White | Set the diagram theme (Black/White/Neon) |
146-
| DiagramWaterMark | string | empty | Set the diagram watermark |
147-
| DiagramType | true / false | true | Toggle to enable/disable the export of individual diagram diagrams |
148-
| EnableDiagrams | true / false | false | Toggle to enable/disable infrastructure diagrams |
149-
| EnableDiagramsDebug | true / false | false | Toggle to enable/disable diagram debug option |
150-
| EnableDiagramSignature | true / false | false | Toggle to enable/disable diagram signature (bottom right corner) |
151-
| ExportDiagrams | true / false | true | Toggle to enable/disable diagram export option |
152-
| ExportDiagramsFormat | string array | png | Set the format used to export the infrastructure diagram (dot, png, pdf, svg) |
153-
| SignatureAuthorName | string | empty | Set the signature author name |
154-
| SignatureCompanyName | string | empty | Set the signature company name |
137+
| Sub-Schema | Setting | Default | Description |
138+
| ---------------------- | ------------ | ------- | ----------------------------------------------------------------------------- |
139+
| Exclude: Vserver | Array List | Empty | Allow to filter on Vserver Name |
140+
| Exclude: MetroCluster | true / false | false | Allow to filter automatically all Vserver with -mc |
141+
| DiagramColumnSize | int | 3 | Set the diagram node table size |
142+
| DiagramTheme | string | White | Set the diagram theme (Black/White/Neon) |
143+
| DiagramWaterMark | string | empty | Set the diagram watermark |
144+
| DiagramType | true / false | true | Toggle to enable/disable the export of individual diagram diagrams |
145+
| EnableDiagrams | true / false | false | Toggle to enable/disable infrastructure diagrams |
146+
| EnableDiagramsDebug | true / false | false | Toggle to enable/disable diagram debug option |
147+
| EnableDiagramSignature | true / false | false | Toggle to enable/disable diagram signature (bottom right corner) |
148+
| ExportDiagrams | true / false | true | Toggle to enable/disable diagram export option |
149+
| ExportDiagramsFormat | string array | png | Set the format used to export the infrastructure diagram (dot, png, pdf, svg) |
150+
| SignatureAuthorName | string | empty | Set the signature author name |
151+
| SignatureCompanyName | string | empty | Set the signature company name |
155152

156153
### InfoLevel
157154

@@ -204,3 +201,5 @@ PS C:\> New-AsBuiltReport -Report NetApp.ONTAP -Target 192.168.7.60 -Username 'a
204201
205202
```
206203
## :x: Known Issues
204+
205+
- Issues with ASA v1/v2 hardware model. [#56](https://github.com/AsBuiltReport/AsBuiltReport.NetApp.ONTAP/issues/56)

Samples/Sample NetApp As-Built Report.html

Lines changed: 448 additions & 1827 deletions
Large diffs are not rendered by default.

Src/Private/Export-AbrOntapDiagram.ps1

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function Export-AbrOntapDiagram {
4848
'LogoName' = 'AsBuiltReport_LOGO'
4949
'SignatureLogoName' = 'Abr_LOGO_Footer'
5050
'WaterMarkText' = $Options.DiagramWaterMark
51-
'Direction' = &{
51+
'Direction' = & {
5252
if ($MainDiagramLabel -eq 'Cluster Replication Diagram') {
5353
'left-to-right'
5454
} else {
@@ -114,17 +114,22 @@ function Export-AbrOntapDiagram {
114114
}
115115
}
116116
try {
117-
$DiagramParams.Remove('Format')
118-
$DiagramParams.Add('Format', "base64")
117+
if ($PSVersionTable.Platform -ne 'Unix') {
118+
$DiagramParams.Remove('Format')
119+
$DiagramParams.Add('Format', "base64")
119120

120-
$Graph = $DiagramObject
121-
$Diagram = New-Diagrammer @DiagramParams -InputObject $Graph
122-
if ($Diagram) {
123-
if ((Get-DiaImagePercent -GraphObj $Diagram).Width -gt 600) { $ImagePrty = 40 } else { $ImagePrty = 30 }
124-
Section -Style Heading2 $MainDiagramLabel {
125-
Image -Base64 $Diagram -Text "NetApp Ontap Diagram" -Percent $ImagePrty -Align Center
126-
Paragraph "Image preview: Opens the image in a new tab to view it at full resolution." -Tabs 2
121+
$Graph = $DiagramObject
122+
$Diagram = New-Diagrammer @DiagramParams -InputObject $Graph
123+
if ($Diagram) {
124+
if ((Get-DiaImagePercent -GraphObj $Diagram).Width -gt 600) { $ImagePrty = 40 } else { $ImagePrty = 30 }
125+
Section -Style Heading2 $MainDiagramLabel {
126+
Image -Base64 $Diagram -Text "NetApp Ontap Diagram" -Percent $ImagePrty -Align Center
127+
Paragraph "Image preview: Opens the image in a new tab to view it at full resolution." -Tabs 2
128+
}
127129
}
130+
} else {
131+
Write-PScriboMessage -IsWarning -Message "PSCribo Images embedding is not supported on PowerShell Core running on Linux or MacOS."
132+
128133
}
129134
} catch {
130135
Write-PScriboMessage -IsWarning -Message "Unable to generate the Ontap Diagram: $($_.Exception.Message)"

Src/Private/Get-AbrOntapClusterReplicationDiagram.ps1

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ function Get-AbrOntapClusterReplicationDiagram {
55
.DESCRIPTION
66
77
.NOTES
8-
Version: 0.6.8
8+
Version: 0.6.9
99
Author: Jonathan Colon
1010
Twitter: @jcolonfzenpr
1111
Github: rebelinux
@@ -199,12 +199,14 @@ function Get-AbrOntapClusterReplicationDiagram {
199199
$Num++
200200
}
201201

202-
if ($ClusterReplicaInfo) {
202+
if ($ClusterReplicaInfo -and $NodeReplicaSum) {
203203
try {
204204
$ClusterReplicaNodeObj = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $NodeReplicaSum -Align "Center" -iconType "Ontap_Node" -columnSize $NodeSumColumnSize -IconDebug $IconDebug -MultiIcon -AditionalInfo $NodeAdditionalInfo -Subgraph -SubgraphIconType "Ontap_Node_Icon" -SubgraphLabel $ClusterReplicaInfo.ClusterName -SubgraphLabelPos "top" -SubgraphTableStyle "dashed,rounded" -TableBorderColor "#71797E" -TableBorder "1" -SubgraphLabelFontsize 22 -fontSize 18
205205
} catch {
206206
Write-PScriboMessage -IsWarning $_.Exception.Message
207207
}
208+
} else {
209+
Write-PScriboMessage -IsWarning "Unable to create Cluster Replication Node. No Cluster Management Object found."
208210
}
209211

210212
if ($ClusterReplicaNodeObj) {
@@ -238,9 +240,11 @@ function Get-AbrOntapClusterReplicationDiagram {
238240

239241
$PeerVserverPeerSubGraphObj = Add-DiaHTMLSubGraph -ImagesObj $Images -TableArray $PeerVserverPeerObj -Align 'Center' -IconDebug $IconDebug -Label "Peer Storage VMs" -LabelPos 'top' -TableStyle "dashed,rounded" -TableBorderColor $Edgecolor -TableBorder "1" -columnSize $PeerVserverPeerObjColumnSize -fontSize 18 -IconType "Ontap_SVM_Icon"
240242

241-
if ($PeerVserverPeerSubGraphObj) {
243+
if ($PeerVserverPeerSubGraphObj -and $RemoteClusterName) {
242244
Node "$($RemoteClusterName)PeerVservers" @{Label = $PeerVserverPeerSubGraphObj; shape = 'plain'; fillColor = 'transparent'; fontsize = 14 }
243245
Edge -From $RemoteClusterName -To "$($RemoteClusterName)PeerVservers" @{minlen = 2; color = '#71797E'; style = 'filled'; arrowhead = 'box'; arrowtail = 'box' }
246+
} else {
247+
Write-PScriboMessage -IsWarning "Unable to create Peer Vserver Node. No Peer Vserver Object found."
244248
}
245249
} catch {
246250
Write-PScriboMessage -IsWarning $_.Exception.Message

Src/Private/Get-NetAppOntapAPI.ps1

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ function Get-NetAppOntapAPI {
2626
)
2727

2828
begin {
29-
#region Workaround for SelfSigned Cert an force TLS 1.2
30-
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type) {
31-
$certCallback = @"
29+
if ($PSVersionTable.Platform -ne 'Unix') {
30+
#region Workaround for SelfSigned Cert an force TLS 1.2
31+
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type) {
32+
$certCallback = @"
3233
using System;
3334
using System.Net;
3435
using System.Net.Security;
@@ -54,11 +55,12 @@ function Get-NetAppOntapAPI {
5455
}
5556
}
5657
"@
57-
Add-Type $certCallback
58+
Add-Type $certCallback
59+
}
60+
[ServerCertificateValidationCallback]::Ignore()
61+
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
62+
#endregion Workaround for SelfSigned Cert an force TLS 1.2
5863
}
59-
[ServerCertificateValidationCallback]::Ignore()
60-
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
61-
#endregion Workaround for SelfSigned Cert an force TLS 1.2
6264

6365
$username = $Credential.UserName
6466
$password = $Credential.GetNetworkCredential().Password
@@ -73,19 +75,19 @@ function Get-NetAppOntapAPI {
7375
}
7476
}
7577

76-
Process {
77-
Try {
78+
process {
79+
try {
7880
if ($PSVersionTable.PSEdition -eq 'Core') {
7981
$response = Invoke-RestMethod -Method Get -Uri ($api + $uri) -Headers $headers -SkipCertificateCheck
8082

8183
} else {
8284
$response = Invoke-RestMethod -Method Get -Uri ($api + $uri) -Headers $headers
8385
}
8486
$response.records
85-
} Catch {
87+
} catch {
8688
Write-Verbose -Message $_
8789
}
8890
}
8991

90-
End {}
92+
end {}
9193
}

Src/Public/Invoke-AsBuiltReport.NetApp.ONTAP.ps1

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@ function Invoke-AsBuiltReport.NetApp.ONTAP {
2121
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "", Scope = "Function")]
2222
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingWriteHost", "", Scope = "Function")]
2323

24+
#Requires -RunAsAdministrator
2425

2526
# Do not remove or add to these parameters
2627
param (
2728
[String[]] $Target,
2829
[PSCredential] $Credential
2930
)
3031

31-
#Requires -Version 5.1
32-
#Requires -PSEdition Desktop
3332
#Requires -RunAsAdministrator
3433

3534
if ($psISE) {

0 commit comments

Comments
 (0)