VM 名のリストをもとに、Nutanix REST API v2 で VM の停止 / 起動をしてみます。
今回の環境は下記です。
- Nutanix CE ce-2018.05.01-stable の Prism Element に実行。
- 今回も Python 2.7.5 を使用。
- Python の requests をインストール。
CentOS / Oracle Linux の RPM であれば python-requests。 - VM 名は重複なし。
スクリプトの準備
スクリプトは下記。
Prism への接続情報を、ファイルに記載しておきます。
対象 VM 名のリストを用意しておきます。
vm_list.txt
vm01 vm02
実行例
パワーオン。
$ python ./set_vm_power-state.py ./prism-config.json ./vm_list.txt ON Change VM State: ON vm01 Change VM State: ON vm02 Task UUID: 386ccf7c-ed23-4f69-90ff-4cc6a93022a0 VM Name: vm02 Task UUID: f2632df6-8da1-49b2-8565-874404ec37ba VM Name: vm01 -- VM: vm01 TASK UUID: f2632df6-8da1-49b2-8565-874404ec37ba operation_type: VmChangePowerState start_time_usecs: 1541930351518478 last_updated_time_usecs:1541930355022321 percentage_complete: 100 progress_status: Succeeded -- VM: vm02 TASK UUID: 386ccf7c-ed23-4f69-90ff-4cc6a93022a0 operation_type: VmChangePowerState start_time_usecs: 1541930351341673 last_updated_time_usecs:1541930353948868 percentage_complete: 100 progress_status: Succeeded
パワーオフ。
※シャットダウンの場合は「OFF」ではなく「ACPI_SHUTDOWN」
$ python ./set_vm_power-state.py ./prism-config.json ./vm_list.txt OFF Change VM State: OFF vm01 Change VM State: OFF vm02 Task UUID: ff15f257-29c9-4ef9-bf5c-a5f3fdc8aa80 VM Name: vm02 Task UUID: bdc1950d-c480-4682-854a-594c95bd8c5d VM Name: vm01 -- VM: vm01 TASK UUID: bdc1950d-c480-4682-854a-594c95bd8c5d operation_type: VmChangePowerState start_time_usecs: 1541930430981585 last_updated_time_usecs:1541930433186548 percentage_complete: 100 progress_status: Succeeded -- VM: vm02 TASK UUID: ff15f257-29c9-4ef9-bf5c-a5f3fdc8aa80 operation_type: VmChangePowerState start_time_usecs: 1541930430755213 last_updated_time_usecs:1541930433065641 percentage_complete: 100 progress_status: Succeeded
失敗した場合の例。
$ python ./set_vm_power-state.py ./prism-config.json ./vm_list.txt OFF Change VM State: OFF vm01 Change VM State: OFF vm02 Task UUID: 8dc8eef9-0f2e-4870-a537-9a4d6b65cc1d VM Name: vm02 Task UUID: 4e3188c7-3756-417d-a9ec-67f575f5c6b3 VM Name: vm01 -- VM: vm01 TASK UUID: 4e3188c7-3756-417d-a9ec-67f575f5c6b3 operation_type: VmChangePowerState start_time_usecs: 1541930477463769 last_updated_time_usecs:1541930478064583 percentage_complete: 100 progress_status: Failed error_code: 17 error_detail: Cannot complete request in state InvalidState: Cannot complete request in state Off -- VM: vm02 TASK UUID: 8dc8eef9-0f2e-4870-a537-9a4d6b65cc1d operation_type: VmChangePowerState start_time_usecs: 1541930477095506 last_updated_time_usecs:1541930477715682 percentage_complete: 100 progress_status: Failed error_code: 17 error_detail: Cannot complete request in state InvalidState: Cannot complete request in state Off
以上。