In my previous post, I explained how to connect and authenticate with ScaleIO REST API, and use Invoke-RestMethod. In this article, I will explain how to query selected statistics/ properties with POST method.
First, you have to define the set of properties that you would like to query, and then pass it to "invoke-restmethod". You can get the list of available properties of the respective object from the ScaleIO REST API Reference Guide.
Example 1: Query and collect MDM cluster information
Here I am collecting the below-mentioned properties of "MDMCluster" object.
#selected properties to query
$param1 = @'
{
"properties":["name", "clusterMode", "master", "clusterState", "virtualIps"]
}
'@
#invoke-restmethod with respective uri
$MDM_cluster_stats = (Invoke-RestMethod -Uri "https://192.168.11.15:443/api/instances/System/queryMdmCluster " -Body $param1 -ContentType "application/json" -Headers $ScaleIOAuthHeaders -Method Post)
#organize output in a hash table
$mdm_props = @{
'Cluster name' = ($MDM_cluster_stats).name
'Mode' = ($MDM_cluster_stats).clusterMode
'Cluster state' = ($MDM_cluster_stats).clusterState
'Master MDM IP' = ($MDM_cluster_stats.master).managementIPs[0]
'Cluster VIP01' = ($MDM_cluster_stats).virtualIps[0]
'Cluster VIP02' = ($MDM_cluster_stats).virtualIps[1]
}
Write-Output $mdm_props
#sample output screenshot given below
Example 2: Query and collect overall ScaleIO system capacity details
Here I am collecting some properties of "System Statistics" object. $param2 = @'
{
"properties":["maxCapacityInKb", "capacityInUseInKb", "spareCapacityInKb", "failedCapacityInKb", "degradedFailedCapacityInKb"]
}
'@
#invoke-restmethod with respective uri
$system_overall_stats = (Invoke-RestMethod -uri "https://192.168.11.15:443/api/types/System/instances/action/querySelectedStatistics " -Body $param2 -ContentType "application/json" -Headers $ScaleIOAuthHeaders -Method Post)
#organize output in a hash table
$system_capacity_props = @{
"System max capacity (TB)" = (($system_overall_stats.maxCapacityInKb)/1024/1024/1024)
"System capacity in use (TB)" = (($system_overall_stats.capacityInUseInKb)/1024/1024/1024)
"System spare capacity (TB)" = (($system_overall_stats.spareCapacityInKb)/1024/1024/1024)
"System failed capacity (TB)" = (($system_overall_stats.failedCapacityInKb)/1024/1024/1024)
"System degraded failed capacity (TB)" = (($system_overall_stats.degradedFailedCapacityInKb)/1024/1024/1024)
}
Write-Output $system_capacity_props
#sample output screenshot given below