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ユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。