Nutanix REST API で AHV 上の VM を操作するときに、VM の UUID を指定する必要があります。以前に REST API v3 + jq コマンドで UUID を取得してみましたが、今回は REST API v2 + Python で、VM 名から UUID を取得してみます。
スクリプトのサンプル
今回も、Prism のログイン情報を記載したファイルを用意しておきます。
VM の UUID を取得するサンプルスクリプトです。VM 名が重複する場合は、VM の情報も表示してみます。
スクリプトの実行
下記のような環境で、VM の UUID を取得します。「vm01」は 1台、VM 名が重複している「vm02」は 3台あります。
最後の引数は、UUID を取得したい VM の名前です。
VM 名が重複していない「vm01」です。
$ python get_vm-uuid.py ../prism-config.json vm01 vm_uuid: 3ef4bcac-624e-4ac0-9310-9006de173fe5
VM 名が 3台で重複している「vm02」です。
$ python get_vm-uuid.py ../prism-config.json vm02 vm_uuid: fd5931c4-ef00-4e3e-bab2-dbc7e34656a6 vm_uuid: 46a0b95e-ab0c-49bd-8047-c51d46e3a2dc vm_uuid: a485ba15-640e-42a7-848b-8f4a4a340ee8 VM: vm02 => 3 VMs [ { "vm_features": { "AGENT_VM": false, "VGA_CONSOLE": true }, "name": "vm02", "num_cores_per_vcpu": 1, "gpus_assigned": false, "num_vcpus": 1, "memory_mb": 2048, "power_state": "off", "ha_priority": 0, "allow_live_migrate": true, "timezone": "UTC", "vm_logical_timestamp": 1, "uuid": "fd5931c4-ef00-4e3e-bab2-dbc7e34656a6" }, { "vm_features": { "AGENT_VM": false, "VGA_CONSOLE": true }, "name": "vm02", "num_cores_per_vcpu": 1, "gpus_assigned": false, "num_vcpus": 1, "memory_mb": 2048, "power_state": "off", "ha_priority": 0, "allow_live_migrate": true, "timezone": "UTC", "vm_logical_timestamp": 1, "uuid": "46a0b95e-ab0c-49bd-8047-c51d46e3a2dc" }, { "vm_features": { "AGENT_VM": false, "VGA_CONSOLE": true }, "name": "vm02", "num_cores_per_vcpu": 1, "gpus_assigned": false, "num_vcpus": 1, "memory_mb": 2048, "power_state": "off", "ha_priority": 0, "allow_live_migrate": true, "timezone": "UTC", "vm_logical_timestamp": 1, "uuid": "a485ba15-640e-42a7-848b-8f4a4a340ee8" } ]
できることなら VM 名は重複しないほうがいいかなと思います。
以上。