Modules/stats.psm1
function Get-DDStats { [CmdletBinding()] param ( [CmdletBinding()] [Parameter(Mandatory = $true, ParameterSetName = 'file-systems')] [switch]$filesys, [Parameter(Mandatory = $true, ParameterSetName = 'file-systems')] [ValidateSet('active','archive','cloud','total')] [string]$tier, [Parameter(Mandatory = $false, ParameterSetName = 'file-systems')] [switch]$need_delta, [Parameter(Mandatory = $true, ParameterSetName = 'repl')] [switch]$repl, [Parameter(Mandatory = $true, ParameterSetName = 'capacity')] [switch]$capacity, [Parameter(Mandatory = $false, ParameterSetName = 'default')] [Parameter(Mandatory = $false, ParameterSetName = 'file-systems')] [Parameter(Mandatory = $false, ParameterSetName = 'repl')] [Parameter(Mandatory = $false, ParameterSetName = 'capacity')] [string] $SYSTEM_ID = $Global:DD_UUID, $body = @{} ) begin { $Response = @() $METHOD = "GET" } process { $apiver = "rest/v2.0" switch ($PsCmdlet.ParameterSetName) { 'default' { $uri = "dd-systems/$($SYSTEM_ID)/stats" } default { $uri = "dd-systems/$($SYSTEM_ID)/stats/$($PsCmdlet.ParameterSetName)" } 'file-systems'{ $apiver = "rest/v1.0" $body.Add('tier',$tier) $body.Add('need_delta',$need_delta.IsPresent) # $body = $body | ConvertTo-Json $uri = "dd-systems/$($SYSTEM_ID)/stats/$($PsCmdlet.ParameterSetName)" } } write-verbose ($body | Out-String) $parameters = @{ uri = $uri apiver = $apiver Method = $METHOD body = $body RequestMethod = "REST" Verbose = $PSBoundParameters['Verbose'] -eq $true } try { $Response += Invoke-DDapirequest @Parameters } catch { Get-DDWebException -ExceptionMessage $_ break } write-verbose ($response | Out-String) } end { switch ($PsCmdlet.ParameterSetName) { 'capacity' { $response.stats_capacity | Select-Object -Property *,@{N="collection_time";E={(Get-Date 01.01.1970)+([System.TimeSpan]::fromseconds($_.collection_epoch))}} -ExcludeProperty links, link, tier_capacity_usage -ExpandProperty tier_capacity_usage } 'file-systems' { $response #.stats_capacity | Select-Object -Property *,@{N="collection_time";E={(Get-Date 01.01.1970)+([System.TimeSpan]::fromseconds($_.collection_epoch))}} -ExcludeProperty links, link, tier_capacity_usage -ExpandProperty tier_capacity_usage } default { $response[-1].stats | Select-Object -ExcludeProperty links -ExpandProperty retention_info } } } } |