Skip to content

Commit c45d751

Browse files
authored
Merge pull request #65 from AsBuiltReport/dev
v0.6.11 public release
2 parents ce216a6 + 7531559 commit c45d751

File tree

72 files changed

+826
-202
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+826
-202
lines changed

.github/Dependabot.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Dependabot configuration for AsBuiltReport.Core
2+
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
3+
4+
version: 2
5+
updates:
6+
# Monitor GitHub Actions
7+
- package-ecosystem: "github-actions"
8+
directory: "/"
9+
schedule:
10+
interval: "weekly"
11+
day: "monday"
12+
labels:
13+
- "dependencies"
14+
- "github-actions"
15+
commit-message:
16+
prefix: "ci"
17+
include: "scope"
18+
open-pull-requests-limit: 5
19+
20+
# Monitor PowerShell modules (via manifest)
21+
- package-ecosystem: "nuget"
22+
directory: "/"
23+
schedule:
24+
interval: "weekly"
25+
day: "monday"
26+
labels:
27+
- "dependencies"
28+
- "powershell"
29+
commit-message:
30+
prefix: "deps"
31+
include: "scope"
32+
open-pull-requests-limit: 5
33+
ignore:
34+
# PScribo updates should be reviewed manually
35+
- dependency-name: "PScribo"
36+
update-types: ["version-update:semver-major"]

AsBuiltReport.NetApp.ONTAP.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
},
1616
"EnableDiagrams": true,
1717
"EnableDiagramDebug": false,
18+
"DisableDiagramMainLogo": false,
1819
"DiagramTheme": "White",
1920
"DiagramWaterMark": "",
2021
"ExportDiagrams": false,
@@ -87,7 +88,8 @@
8788
"NTP": true,
8889
"DNS": true,
8990
"EMS": true,
90-
"Backup": true
91+
"Backup": true,
92+
"Web": true
9193
},
9294
"Security": {
9395
"Users": true,

AsBuiltReport.NetApp.ONTAP.psd1

Lines changed: 2 additions & 2 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.10'
15+
ModuleVersion = '0.6.11'
1616

1717
# Supported PSEditions
1818
# CompatiblePSEditions = @()
@@ -27,7 +27,7 @@
2727
#CompanyName = 'Unknown'
2828

2929
# Copyright statement for this module
30-
Copyright = '(c) 2024 Jonathan Colon Feliciano. All rights reserved.'
30+
Copyright = '(c) 2025 Jonathan Colon Feliciano. All rights reserved.'
3131

3232
# Description of the functionality provided by this module
3333
Description = 'A PowerShell module to generate an as built report on the configuration of NetApp ONTAP.'

CHANGELOG.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,21 @@ 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.10] - Unreleased
8+
## [0.6.11] - 2025-11-07
9+
10+
### Added
11+
12+
- Add Health Check best practices for general Ontap configurations
13+
- Add sponsorship information
14+
- Add Dependabot configuration for module dependencies
15+
16+
### Changed
17+
18+
- Update health check messages to use "in" instead of "on" for consistency in reporting
19+
- Refactor Get-AbrOntapNodeAggrDiagram to handle aggregate state correctly
20+
- Refactor Get-AbrOntapNodeAggrDiagram to handle used space calculation correctly
21+
22+
## [0.6.10] - 2025-10-27
923

1024
### Added
1125

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ The **Options** schema allows certain options within the report to be toggled on
142142
| DiagramTheme | string | White | Set the diagram theme (Black/White/Neon) |
143143
| DiagramWaterMark | string | empty | Set the diagram watermark |
144144
| DiagramType | true / false | true | Toggle to enable/disable the export of individual diagram diagrams |
145+
| DisableDiagramMainLogo | true / false | false | Toggle to enable/disable the main logo in diagrams |
145146
| EnableDiagrams | true / false | false | Toggle to enable/disable infrastructure diagrams |
146147
| EnableDiagramsDebug | true / false | false | Toggle to enable/disable diagram debug option |
147148
| EnableDiagramSignature | true / false | false | Toggle to enable/disable diagram signature (bottom right corner) |

Src/Private/Export-AbrOntapDiagram.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ function Export-AbrOntapDiagram {
5656
'top-to-bottom'
5757
}
5858
}
59+
'DisableMainDiagramLogo' = $Options.DisableDiagramMainLogo
5960
}
6061

6162
if ($Options.DiagramTheme -eq 'Black') {

Src/Private/Get-AbrOntapCluster.ps1

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function Get-AbrOntapCluster {
4343
'Overall System Health' = switch ([string]::IsNullOrEmpty($ClusterDiag.Status)) {
4444
$true { '--' }
4545
$false { $ClusterDiag.Status.ToUpper() }
46-
Default { 'Unknown' }
46+
default { 'Unknown' }
4747
}
4848
}
4949
if ($Healthcheck.Cluster.Summary) {
@@ -60,6 +60,15 @@ function Get-AbrOntapCluster {
6060
$TableParams['Caption'] = "- $($TableParams.Name)"
6161
}
6262
$ClusterSummary | Table @TableParams
63+
if ($Healthcheck.Cluster.Summary -and ($ClusterSummary | Where-Object { $_.'Overall System Health' -notlike 'OK' })) {
64+
Paragraph "Health Check:" -Bold -Underline
65+
BlankLine
66+
Paragraph {
67+
Text "Best Practice:" -Bold
68+
Text "The overall system health is not OK. It is recommended to investigate the issue further to ensure the cluster is functioning properly."
69+
}
70+
BlankLine
71+
}
6372
}
6473
} catch {
6574
Write-PScriboMessage -IsWarning $_.Exception.Message

Src/Private/Get-AbrOntapClusterASUP.ps1

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function Get-AbrOntapClusterASUP {
2424

2525
process {
2626
try {
27-
$AutoSupport = Get-NcAutoSupportConfig -Controller $Array
27+
$AutoSupport = Get-NcAutoSupportConfig -Controller $Array -ErrorAction Continue
2828
if ($AutoSupport) {
2929
$Outobj = @()
3030
foreach ($NodesAUTO in $AutoSupport) {
@@ -51,6 +51,15 @@ function Get-AbrOntapClusterASUP {
5151
$TableParams['Caption'] = "- $($TableParams.Name)"
5252
}
5353
$Outobj | Table @TableParams
54+
if ($Healthcheck.Cluster.AutoSupport -and ($Outobj | Where-Object { $_.'Enabled' -like 'No' })) {
55+
Paragraph "Health Check:" -Bold -Underline
56+
BlankLine
57+
Paragraph {
58+
Text "Best Practice:" -Bold
59+
Text "AutoSupport is disabled on one or more nodes. It is recommended to enable AutoSupport to ensure proactive monitoring and issue resolution."
60+
}
61+
BlankLine
62+
}
5463
} catch {
5564
Write-PScriboMessage -IsWarning $_.Exception.Message
5665
}

Src/Private/Get-AbrOntapClusterDiagram.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ function Get-AbrOntapClusterDiagram {
119119

120120
foreach ($Node in $NodeSum) {
121121
# $ClusterHa = $ClusterHaObj | Where-Object { $_.Name -eq $Node.Node }
122-
$ClusterHa = Get-NcClusterHa -Node $Node.Node -Controller $Array
122+
$ClusterHa = try { Get-NcClusterHa -Node $Node.Node -Controller $Array } catch { Write-PScriboMessage -IsWarning $_.Exception.Message }
123123

124124
$NodeMgmtAddress = Get-NcNetInterface -Controller $Array | Where-Object { $_.Role -eq 'node_mgmt' -and $_.HomeNode -eq $Node.Node } | Select-Object -ExpandProperty Address
125125
$NodeInterClusterAddress = Get-NcNetInterface -Controller $Array | Where-Object { $_.Role -eq 'intercluster' -and $_.HomeNode -eq $Node.Node } | Select-Object -ExpandProperty Address
@@ -141,7 +141,7 @@ function Get-AbrOntapClusterDiagram {
141141
"Mgmt" = switch ([string]::IsNullOrEmpty($NodeMgmtAddress)) {
142142
$true { "Unknown" }
143143
$false { $NodeMgmtAddress }
144-
Default { "Unknown" }
144+
default { "Unknown" }
145145
}
146146
}
147147
}

Src/Private/Get-AbrOntapClusterHA.ps1

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ function Get-AbrOntapClusterHA {
3131
$ClusterHa = Get-NcClusterHa -Node $Nodes.Node -Controller $Array
3232
[PSCustomObject] @{
3333
'Name' = $Nodes.Node
34-
'Partner' = Switch ([string]::IsNullOrEmpty($ClusterHa.Partner)) {
34+
'Partner' = switch ([string]::IsNullOrEmpty($ClusterHa.Partner)) {
3535
'True' { '-' }
3636
'False' { $ClusterHa.Partner }
3737
default { 'Unknwon' }
3838
}
3939
'TakeOver Possible' = ConvertTo-TextYN $ClusterHa.TakeoverPossible
40-
'TakeOver State' = Switch ([string]::IsNullOrEmpty($ClusterHa.TakeoverState)) {
40+
'TakeOver State' = switch ([string]::IsNullOrEmpty($ClusterHa.TakeoverState)) {
4141
'True' { '-' }
4242
'False' { $ClusterHa.TakeoverState }
4343
default { 'Unknwon' }
@@ -51,7 +51,8 @@ function Get-AbrOntapClusterHA {
5151
}
5252
if ($Healthcheck.Cluster.HA) {
5353
$NodeSummary | Where-Object { $_.'TakeOver State' -like 'in_takeover' } | Set-Style -Style Warning -Property 'TakeOver State'
54-
$NodeSummary | Where-Object { $_.'HA State' -notlike 'connected' } | Set-Style -Style Warning -Property 'HA State'
54+
$NodeSummary | Where-Object { $_.'HA Mode' -eq 'non_ha' -and $_.'HA State' -notlike 'connected' } | Set-Style -Style Warning -Property 'HA State'
55+
$NodeSummary | Where-Object { $_.'TakeOver Possible' -eq 'No' } | Set-Style -Style Warning -Property 'TakeOver Possible'
5556
}
5657

5758
$TableParams = @{
@@ -63,6 +64,31 @@ function Get-AbrOntapClusterHA {
6364
$TableParams['Caption'] = "- $($TableParams.Name)"
6465
}
6566
$NodeSummary | Table @TableParams
67+
if ($Healthcheck.Cluster.HA -and (($NodeSummary | Where-Object { $_.'TakeOver State' -like 'in_takeover' } ) -or ($NodeSummary | Where-Object { $_.'HA Mode' -ne 'non_ha' -and $_.'HA State' -notlike 'connected' }) -or ($NodeSummary | Where-Object { $_.'TakeOver Possible' -eq 'No' }))) {
68+
Paragraph "Health Check:" -Bold -Underline
69+
BlankLine
70+
if ($NodeSummary | Where-Object { $_.'TakeOver State' -like 'in_takeover' }) {
71+
Paragraph {
72+
Text "Best Practice:" -Bold
73+
Text "One or more nodes are currently in takeover state. It is recommended to investigate the cause of the takeover and ensure that the affected node is restored to normal operation as soon as possible."
74+
}
75+
BlankLine
76+
}
77+
if ($NodeSummary | Where-Object { $_.'TakeOver Possible' -eq 'No' }) {
78+
Paragraph {
79+
Text "Best Practice:" -Bold
80+
Text "One or more nodes have takeover capability disabled. It is recommended to enable storage failover capability to ensure high availability in case of node failures."
81+
}
82+
BlankLine
83+
}
84+
if ($NodeSummary | Where-Object { $_.'HA Mode' -ne 'non_ha' -and $_.'HA State' -notlike 'connected' }) {
85+
Paragraph {
86+
Text "Best Practice:" -Bold
87+
Text "One or more nodes are operating in HA mode and are not connected. It is recommended to verify the HA configuration and connectivity to ensure high availability is properly set up."
88+
}
89+
BlankLine
90+
}
91+
}
6692
}
6793
} catch {
6894
Write-PScriboMessage -IsWarning $_.Exception.Message

0 commit comments

Comments
 (0)