PowerStore: como usar a API Rest do PowerStore

Résumé: Este artigo apresenta uma introdução à API REST do PowerStore, incluindo exemplos práticos de uso e erros comuns.

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

Várias ferramentas podem ser usadas para testar REST APIs, inclusive Postman, HTTPiee cURL. Neste artigo: cURL é usado para todos os exemplos porque está prontamente disponível na maioria dos sistemas operacionais por padrão.

Utilização da API REST

  • Integridade do nó
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

Exemplo de saída:

{"id":"00b941ceea9243f0a36e85abe9504214","name":"BaseEnclosure-NodeB","type":"Node","lifecycle_state":"Healthy"}, 
{"id":"2877d096fd2a4cc4b3b8af97f21c1c24","name":"BaseEnclosure-NodeA","type":"Node","lifecycle_state":"Healthy"}
  • Estados de replicação 
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

Exemplo de saída:

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

Exemplo de saída:

{"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."}
  • Eventos de auditoria
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

A saída pode ser enorme e precisar de filtragem. Por exemplo, para visualizar eventos relacionados ao administrador do usuário. TRI

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

Exemplo de saída:

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

Exemplo de saída:

{"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"}
  • Métricas de desempenho:
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 '.'

Exemplo de saída:

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

Erros comuns com a API REST:

Adição de .-v" ao seu curl para mostrar o erro. 

 

  • Exemplo 1: Credencial incorreta
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:
  • Exemplo 2: O Httpd não está em execução
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
  • Exemplo 3: sintaxe incorreta sem tipo de conteúdo
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."}]}]}]}

Links úteis:

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.