Nutanix CE の REST API v2 で Protection Domain のスナップショットを作成してみます。
API v2 での Protection Domain のスナップショットは、
POST /protection_domains/{name}/oob_schedules で作成できます。
/snapshots は VM 単位のスナップショット作成なので、ここでは利用しません。
今回の環境は下記です。
- Nutanix CE ce-2018.05.01-stable の Prism Element に実行。
- Protection Domain「pd01」を作成して、VM を追加ずみ。
- 今回も Python 2.7.5 を使用。
- Python の requests をインストール。
CentOS / Oracle Linux の RPM であれば python-requests。
環境準備
Protection Domain「pd01」を作成して、VM 「vm01」「vm02」を追加ずみです。
スクリプトの準備
下記のようなスクリプトを作成します。
作成した直後にスナップショット情報を取得していますが、未完了の状態で情報取得しようとするとエラーになったりするので、今回は seconds_to_wait_snapshot_report の秒数を待機してから情報取得しています。
下記のような Prism へのログイン情報を記載したファイルを作成しておきます。
実行例
スクリプトの引数で、スナップショットを作成する Protection Domain の名前を指定します。
$ python create_pd-snapshot.py ../prism-config.json pd01 { "entities": [ { "oob_schedule_ids": [ 466 ], "nfs_files": [], "consistency_groups": [ "vm01", "vm02" ], "size_in_bytes": 3653632, "state": "AVAILABLE", "located_remote_site_name": null, "volume_groups": [], "snapshot_expiry_time_usecs": 3690324803668290, "protection_domain_name": "pd01", "snapshot_create_time_usecs": 1542841156668290, "snapshot_id": "470", "exclusive_usage_in_bytes": -1, "remote_site_names": [], "vms": [ { "vm_name": "vm02", "vm_power_state_on_recovery": "Powered On", "consistency_group": "vm02", "vm_files": [ "/st-container-01/.acropolis/vmdisk/53360633-9d77-49f1-bcde-6a6779875382", "/st-container-01/.acropolis/vmdisk/9f477036-8afa-4a7d-93e8-ead9432d49ab" ], "related_entity_uuids": [], "app_consistent_snapshots": false, "vm_recoverability": [], "vm_handle": 407, "vm_id": "8efc9f6b-f278-455a-8d5b-269ba3e14777" }, { "vm_name": "vm01", "vm_power_state_on_recovery": "Powered On", "consistency_group": "vm01", "vm_files": [ "/st-container-01/.acropolis/vmdisk/398a4501-44ed-44ac-9c57-363d9b355147", "/st-container-01/.acropolis/vmdisk/91d6f661-119d-422a-a791-db1a21aed969" ], "related_entity_uuids": [], "app_consistent_snapshots": false, "vm_recoverability": [], "vm_handle": 438, "vm_id": "885074b9-d128-4a25-86c7-9b08bf5850c4" } ], "snapshot_uuid": "b9a62d61-8e52-4e0a-a710-af204dcda4f5" } ], "metadata": { "grand_total_entities": 1, "total_entities": 1, "sort_criteria": "", "filter_criteria": "" } }
Prism でもスナップショットが表示されます。
以上。