PowerStore : Utilisation de l’API REST PowerStore

요약: Cet article fournit une introduction à l’API REST PowerStore, y compris des exemples d’utilisation pratique et des erreurs courantes.

이 문서는 다음에 적용됩니다. 이 문서는 다음에 적용되지 않습니다. 이 문서는 특정 제품과 관련이 없습니다. 모든 제품 버전이 이 문서에 나와 있는 것은 아닙니다.

지침

Plusieurs outils peuvent être utilisés pour tester les API REST, notamment Postman, HTTPie et cURL. Dans cet article, cURL est utilisé pour tous les exemples, car elle est facilement disponible sur la plupart des systèmes d’exploitation par défaut.
 
Utilisation courante de l’API Rest :

 

Intégrité du nœud :
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

Exemples de sortie :

{"id » :"00b941ceea9243f0a36e85abe9504214 »,"name » :"BaseEnclosure-NodeB »,"type » :"Node »,"lifecycle_state » :"Healthy"},
{"id » :"2877d096fd2a4cc4b3b8af97f21c1c24 »,"name » :"BaseEnclosure-NodeA »,"type » :"Node »,"lifecycle_state » :"Healthy"}

 

État de la réplication :
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

Exemples de sortie :

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

 

Alerte système :
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

Exemples de sortie :

{"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 » :"Toutes les connexions de données du système distant Ghost sont déconnectées."},
{"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 » :"Witness Metro configuré pour la ressource HyperV-Node1 est engagé."}

 

Événements d’audit :
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

Le résultat peut être énorme et nécessiter un filtre. Par exemple, pour afficher les événements liés à l’administrateur de l’utilisateur. 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

Exemples de sortie :

{"id » :"111540 »,"type » :"Config »,"timestamp » :"2026-03-11T20:25:57.267124+00:00 »,"username » :"admin »,"resource_type » :"host »,"resource_action » :"delete »,"message_l10n » :"Suppression réussie de l’hôte avec le nom : Thors 183.24 (iSCSI) et l’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 » :"Suppression réussie des métadonnées avec les clés : [] associées à la ressource avec le type : host et l’ID : c698f28b-49ac-4268-a9c7-c6da66bdfbc8. »,"client_address » :"10.158.49.47"}

 

Liste de 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

Exemples de sortie :
{"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"}

 

Metrics de performances :
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 '.'

Exemples de sortie :


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

 

Erreurs courantes avec l’API Rest :

Ajoutez « -v » à votre commande curl pour afficher l’erreur. 

Exemple 1 : informations d’identification incorrectes.

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 : 0

Exemple 2 : httpd n’est pas en cours d’exécution.

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...
* Échec de la connexion au port 443 xx.xx.xx.xx à partir du port 59124 de xx.xx.xx.xx : expiration du délai de
connexion* Échec de la connexion au port 443 xx.xx.xx après 31 939 ms : Impossible de se connecter au serveur
* Fermeture de la connexion #0
curl : (28) Échec de la connexion au port 443 xx.xx.xx après 31 939 ms : Impossible de se connecter au serveur

Exemple 3 : syntaxe incorrecte sans type de contenu.

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 » :"Erreur »,"code » :"0xE04040030001 »,"message_l10n » :"Échec de la validation : L’en-tête Request-Content-Type '[application/x-www-form-urlencoded]' ne correspond à aucun type autorisé. Doit être l’une des suivantes : [application/json]., Un corps de demande est requis mais aucun n’a été trouvé.. »,"arguments » :[{"delimiter » : », « ,"messages » :[{"severity » :"Erreur »,"code » :"validation.request.contentType.notAllowed »,"message_l10n » :"L’en-tête Request-Content-Type '[application/x-www-form-urlencoded]' ne correspond à aucun type autorisé. Doit être l’un des suivants : [application/json]. »,"arguments » :["[application/x-www-form-urlencoded] »,"[application/json]"]},{"severity » :"Erreur »,"code » :"validation.request.body.missing »,"message_l10n » :"Un corps de demande est requis mais aucun n’a été trouvé."}]}]}]}]}

 

Liens utiles :

https://dl.dell.com/content/manual55475248-dell-powerstore-rest-api-developers-guide.pdf?language=en-us

https://< PWST_CLUSTER_IP>/swaggerui/

 

해당 제품

PowerStore, PowerStoreOS
문서 속성
문서 번호: 000490125
문서 유형: How To
마지막 수정 시간: 31 7월 2026
버전:  2
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.