PowerStore: PowerStore Rest API gebruiken

Résumé: Dit artikel bevat een inleiding tot de PowerStore REST API, inclusief praktische gebruiksvoorbeelden en veelvoorkomende fouten.

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Instructions

Er kunnen verschillende tools worden gebruikt om te testen REST API's, waaronder Postman, HTTPieEn... cURL. In dit artikel, cURL wordt voor alle voorbeelden gebruikt, omdat het standaard direct beschikbaar is op de meeste besturingssystemen.

Common Rest API-gebruik:

  • Knooppuntstatus:
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

Voorbeeld van uitvoer:

{"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

Voorbeeld van uitvoer:

{"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"}
  • Systeemmeldingen
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

Voorbeeld van uitvoer:

{"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."}
  • Auditgebeurtenissen:
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

De output kan enorm zijn en moet worden gefilterd. Als u bijvoorbeeld gebeurtenissen wilt weergeven die gerelateerd zijn aan het gebruikersbeheer. Probeer:

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

Voorbeeld van uitvoer:

{"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"}
  • Lijst met snapshots:
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

Voorbeeld van uitvoer:

{"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"}
  • Prestatiestatistieken:
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 '.'

Voorbeeld van uitvoer:

{
  "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"
}

Veelvoorkomende fouten met REST API:

Toegevoegd: .-v" aan uw curl om de fout weer te geven. 

 

  • Voorbeeld 1: Verkeerde referentie
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:
  • Voorbeeld 2: Httpd wordt niet uitgevoerd
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
  • Voorbeeld 3: Verkeerde syntaxis zonder inhoudstype
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."}]}]}]}

Nuttige links:

Produits concernés

PowerStore, PowerStoreOS
Propriétés de l’article
Numéro d’article: 000490125
Type d’article: How To
Dernière modification: 31 Jul 2026
Version:  2
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.