Src/Private/Get-AbrOntapDiskType.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
function Get-AbrOntapDiskType { <# .SYNOPSIS Used by As Built Report to retrieve NetApp ONTAP disk type information from the Cluster Management Network .DESCRIPTION .NOTES Version: 0.6.3 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux .EXAMPLE .LINK #> [CmdletBinding()] param ( ) begin { Write-PscriboMessage "Collecting ONTAP disk type per node information." } process { try { $NodeDiskContainerType = Get-NcDisk -Controller $Array | ForEach-Object{ $_.DiskRaidInfo.ContainerType } | Group-Object if ($NodeDiskContainerType) { $DiskType = foreach ($DiskContainers in $NodeDiskContainerType) { try { [PSCustomObject] @{ 'Container' = $DiskContainers.Name 'Disk Count' = $DiskContainers | Select-Object -ExpandProperty Count } } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } } if ($Healthcheck.Storage.DiskStatus) { $DiskType | Where-Object { $_.'Container' -like 'broken' } | Set-Style -Style Critical -Property 'Disk Count' } $TableParams = @{ Name = "Disk Container Type - $($ClusterInfo.ClusterName)" List = $false ColumnWidths = 50, 50 } if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } $DiskType | Table @TableParams } $Node = Get-NcNode | Where-Object {$_.IsNodeHealthy -eq "True"} if ($Node -and (Confirm-NcAggrSpareLow | Where-Object {$_.Value -eq "True"})) { $OutObj = foreach ($Item in $Node) { try { $DiskSpareLow = Confirm-NcAggrSpareLow -Node $Item.Node [PSCustomObject] @{ 'Node' = $Item.Node 'Aggregate Spare Low' = $DiskSpareLow.Value.ToString().Replace("True", "Yes").Replace("False","No") } } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } } if ($Healthcheck.Storage.DiskStatus) { $OutObj | Where-Object { $_.'Aggregate Spare Low' -like 'Yes' } | Set-Style -Style Critical -Property 'Node','Aggregate Spare Low' } $TableParams = @{ Name = "HealthCheck - Aggregate Disk Spare Low - $($ClusterInfo.ClusterName)" List = $false ColumnWidths = 50, 50 } if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams } } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } } end {} } |