Public/Get-3PARCpgs.ps1
Function Get-3PARCpgs { <# .SYNOPSIS Retrieve informations about CPGs .DESCRIPTION This function will retrieve informations about CPGs. You need to have an active session with the array. .NOTES Written by Erwan Quelin under Apache licence .LINK https://github.com/equelin/3PAR-Powershell .EXAMPLE Get-3PARCpgs List all the CPGs .EXAMPLE Get-3PARCpgs -Name 'SSD-RAID1' Retrieve information about the CPG named SSD-RAID1 #> [CmdletBinding()] Param( [Parameter(Mandatory = $false,ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True,HelpMessage = 'CPG Name')] [String]$name ) Begin { # Test if connection exist Check-3PARConnection #Request $data = Send-3PARRequest -uri '/cpgs' -type 'GET' # Results $dataPS = ($data.content | ConvertFrom-Json).members $dataCount = ($data.content | ConvertFrom-Json).total # Add custom type to the resulting oject for formating purpose [array]$AlldataPS = Format-Result -dataPS $dataPS -TypeName '3PAR.Cpgs' Write-Verbose "Total number of CPG(s): $($dataCount)" } Process { #Write result + Formating If ($name) { Write-Verbose "Return result(s) with the filter: $($name)" return $AlldataPS | Where-Object -FilterScript {$_.Name -like $name} } else { Write-Verbose "Return result(s) without any filter" return $AlldataPS } } } |