PowerStore: How to use PowerStore Rest API

概要: This article provides an introduction to the PowerStore REST API, including practical usage examples and common errors.

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

手順

Several tools can be used to test REST APIs, including Postman, HTTPie, and cURL. In this article, cURL is used for all examples because it is readily available on most operating systems by default.

Common Rest API usage:

  • Node Health:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node

Output examples:

{"id":"00b941ceea9243f0a36e85abe9504214","name":"BaseEnclosure-NodeB","type":"Node","lifecycle_state":"Healthy"}, 
{"id":"2877d096fd2a4cc4b3b8af97f21c1c24","name":"BaseEnclosure-NodeA","type":"Node","lifecycle_state":"Healthy"}
  • Replication State: 
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/replication_session?select=id,role,state,last_sync_timestamp,local_resource_id

Output examples:

{"id":"047e38ee-9aeb-4761-8ca5-393204fe6584","role":"Metro_Preferred","state":"OK","last_sync_timestamp":"2026-07-16T15:48:05.628263+00:00","local_resource_id":"d34bd80e-1d43-4692-ab37-e307bc92eb73"}, 
{"id":"26dd4105-a24f-4d82-b40b-20dcefbfe5df","role":"Source","state":"OK","last_sync_timestamp":"2026-07-16T15:31:54.64127+00:00","local_resource_id":"82c40277-dee4-46de-8559-920fe5f942cc"}, 
{"id":"414dba20-08b1-4d5e-a521-517a3b37473a","role":"Metro_Preferred","state":"OK","last_sync_timestamp":"2026-07-16T15:51:05.525764+00:00","local_resource_id":"eb970724-cc3e-4661-8d71-bec7f44baf10"}
  • System Alert:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/alert?select=id,event_code,severity,resource_type,generated_timestamp,state,description_l10n

Output examples:

{"id":"008abb47-e72d-4608-b915-b8c01328b64e","event_code":"0x01700304","severity":"Major","resource_type":"remote_system","generated_timestamp":"2026-05-11T01:51:01.280627+00:00","state":"ACTIVE","description_l10n":"All data connections from the remote system Ghost are disconnected."}, 
{"id":"01114811-82a9-484e-8cf9-3da50c0e3d7b","event_code":"0x01701801","severity":"Info","resource_type":"volume","generated_timestamp":"2026-07-14T02:15:34.764524+00:00","state":"CLEARED","description_l10n":"Metro witness configured for resource HyperV-Node1 is engaged."}
  • Audit Events:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/audit_event?select=id,type,timestamp,username,resource_type,resource_action,message_l10n,client_address

The output can be huge and need filtering. For example, to view events related to user admin. Try:

curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/audit_event?select=id,type,timestamp,username,resource_type,resource_action,message_l10n,client_address?username=eq.admin

Output examples:

{"id":"111540","type":"Config","timestamp":"2026-03-11T20:25:57.267124+00:00","username":"admin","resource_type":"host","resource_action":"delete","message_l10n":"Successfully deleted host with name: Thors 183.24 (iSCSI) and ID: c698f28b-49ac-4268-a9c7-c6da66bdfbc8.","client_address":"10.158.49.47"}, 
{"id":"111541","type":"Config","timestamp":"2026-03-11T20:25:57.337655+00:00","username":"admin","resource_type":"host","resource_action":"delete","message_l10n":"Successfully deleted metadata with keys: [] associated with the resource with type: host and ID: c698f28b-49ac-4268-a9c7-c6da66bdfbc8.","client_address":"10.158.49.47"}
  • Snapshot List:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/volume_snap_list_cma_view?select=id,name,source_timestamp,description,creation_timestamp

Output examples:

{"id":"24d7856d-d389-4f05-9752-ebb1de61a6d6","name":"Walid Snaps.PowerTriage-RHEL (Walid DO NOT DELETE).2026-07-15T00:00:00Z 189403910","source_timestamp":"2026-07-15T00:03:16.096762+00:00","description":"","creation_timestamp":"2026-07-15T00:03:16.096762+00:00"},
{"id":"2cfd727f-b09c-4895-8fd5-93850fd63698","name":"Daily-File.7DSL0M2-1-001.2026-07-14T00:08:08Z 281536767","source_timestamp":"2026-07-14T00:08:08.618343+00:00","description":null,"creation_timestamp":"2026-07-14T00:08:08.618343+00:00"}
  • Performance Metrics:
curl -H "Accept: application/json" -H "Content-Type: application/json" -u "admin:********" -X POST -k https://xx.xx.xx.xx/api/rest/metrics/generate  -d '{ "entity": "performance_metrics_by_appliance", "entity_id": "A1","interval": "One_Day" }'|jq '.'

Output examples:

{
  "appliance_id": "A1",
  "timestamp": "2026-07-15T00:00:00Z",
  "avg_read_latency": 172.76094,
  "avg_write_latency": 404.14536,
  "avg_mirror_write_latency": 924.59375,
  "avg_mirror_overhead_latency": 364.82297,
  "avg_latency": 273.2135,
  "avg_read_size": 91601.2,
  "avg_write_size": 6204.5635,
  "avg_io_size": 54527.355,
  "avg_read_iops": 9.996701,
  "avg_write_iops": 7.669595,
  "avg_mirror_write_iops": 0.024386574,
  "avg_total_iops": 17.666296,
  "avg_read_bandwidth": 915709.9,
  "avg_write_bandwidth": 47586.49,
  "avg_mirror_write_bandwidth": 190.67259,
  "avg_total_bandwidth": 963296.4,
  "avg_io_workload_cpu_utilization": 0.00399437453597784,
  "max_avg_read_latency": 401.14688,
  "max_avg_write_latency": 1679.9584,
  "max_avg_latency": 652.1067,
  "max_avg_mirror_write_latency": 3842,
  "max_avg_mirror_overhead_latency": 3319,
  "max_avg_read_size": 99656.45,
  "max_avg_write_size": 30189.037,
  "max_avg_io_size": 85726.97,
  "max_read_iops": 161.2,
  "max_write_iops": 680.6,
  "max_mirror_write_iops": 3.8,
  "max_total_iops": 834,
  "max_read_bandwidth": 8509440,
  "max_write_bandwidth": 8792986,
  "max_mirror_write_bandwidth": 22732.8,
  "max_total_bandwidth": 17252044,
  "max_io_workload_cpu_utilization": 0.2170485556125641,
  "repeat_count": 1,
  ...
  "response_definition": "performance_metrics_by_appliance_rollup",
  "entity": "performance_metrics_by_appliance"
}

Common errors with Rest API:

Adding "-v" to your curl command to show the error. 

 

  • Example 1: Wrong credential
curl -H "Accept: application/json"  -u "admin:wrong_password" -k https://10.241.219.160/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: SSOCustom realm="Cyclone Realm"
< content-type: application/json
< content-length:
  • Example 2: Httpd is not running
curl -v -H "Accept: application/json"  -u "admin:********" -k https://xx.xx.xx.xx/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node
*   Trying xx.xx.xx.xx:443...
* connect to xx.xx.xx.xx port 443 from xx.xx.xx.xx port 59124 failed: Connection timed out
* Failed to connect to xx.xx.xx.xx port 443 after 31939 ms: Could not connect to server
* closing connection #0
curl: (28) Failed to connect to xx.xx.xx.xx port 443 after 31939 ms: Could not connect to server
  • Example 3: Wrong syntax without content type
curl -v -H "Accept: application/json" -u "admin:********" -X POST -k https://xx.xx.xx.xx/api/rest/metrics/generate  -d '{ "entity": "performance_metrics_by_appliance", "entity_id": "A1","interval": "One_Day" }'
{"messages":[{"severity":"Error","code":"0xE04040030001","message_l10n":"Validation failed: Request Content-Type header '[application/x-www-form-urlencoded]' does not match any allowed types. Must be one of: [application/json]., A request body is required but none found..","arguments":[{"delimiter":", ","messages":[{"severity":"Error","code":"validation.request.contentType.notAllowed","message_l10n":"Request Content-Type header '[application/x-www-form-urlencoded]' does not match any allowed types. Must be one of: [application/json].","arguments":["[application/x-www-form-urlencoded]","[application/json]"]},{"severity":"Error","code":"validation.request.body.missing","message_l10n":"A request body is required but none found."}]}]}]}

Useful Links:

対象製品

PowerStore, PowerStoreOS
文書のプロパティ
文書番号: 000490125
文書の種類: How To
最終更新: 31 7月 2026
バージョン:  2
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。