Src/Private/Get-AbrVxRailCluster.ps1
function Get-AbrVxRailCluster { <# .SYNOPSIS Used by As Built Report to retrieve Dell EMC VxRail cluster information from the VxRail Manager API .DESCRIPTION .NOTES Version: 0.1.1 Author: Tim Carman Twitter: @tpcarman Github: tpcarman .EXAMPLE .LINK #> [CmdletBinding()] param ( ) begin { Write-PscriboMessage "Collecting VxRail cluster information." } process { Write-PScriboMessage "Performing API reference call to path /system" $VxrSystem = Get-VxRailApi -Version 1 -Uri '/system' Write-PScriboMessage "Performing API reference call to path /vc/mode" $VxrVcMode = Get-VxRailApi -Version 1 -Uri '/vc/mode' if ($VxrSystem) { $VxrCluster = [PSCustomObject]@{ 'VxRail Manager' = $VxRailMgrHostName 'VxRail Version' = $VxrSystem.Version 'Cluster Type' = $TextInfo.ToTitleCase(($VxrSystem.cluster_type).ToLower()).replace('_', ' ') 'Number of Hosts' = $VxrSystem.number_of_host 'Health Status' = $VxrSystem.health 'vCenter Server' = $vCenterServer 'vCenter Version' = "$($vCenter.version)-$($vCenter.build)" 'vCenter Server Mode' = $TextInfo.ToTitleCase($VxrVcMode.vc_mode.ToLower()) 'PSC Mode' = $TextInfo.ToTitleCase($VxrVcMode.psc_mode.ToLower()) 'vCenter Server Connected' = Switch ($VxrSystem.vc_connected) { $true { 'Yes' } $false { 'No' } } 'External vCenter Server' = Switch ($VxrSystem.is_external_vc) { $true { 'Yes' } $false { 'No' } } 'Installation Date' = (ConvertFrom-epoch $VxrSystem.installed_time).ToLocalTime() } if ($Healthcheck.Cluster.HealthStatus) { $VxrCluster | Where-Object { $_.'Health Status' -eq 'Warning' } | Set-Style -Style Warning -Property 'Health Status' $VxrCluster | Where-Object { $_.'Health Status' -eq 'Error' } | Set-Style -Style Critical -Property 'Health Status' $VxrCluster | Where-Object { $_.'Health Status' -eq 'Critical' } | Set-Style -Style Critical -Property 'Health Status' } $TableParams = @{ Name = "VxRail Cluster Specifications - $($VxRailMgrHostName)" List = $true ColumnWidths = 50, 50 } if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } $VxrCluster | Table @TableParams } } end {} } |