NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix REST API v2 で VM 名から VM UUID を取得してみる。(Python)

Nutanix REST API で AHV 上の VM を操作するときに、VM の UUID を指定する必要があります。以前に REST API v3 + jq コマンドで UUID を取得してみましたが、今回は REST API v2 + Python で、VM 名から UUID を取得してみます。

スクリプトのサンプル

今回も、Prism のログイン情報を記載したファイルを用意しておきます。

gist.github.com

VM の UUID を取得するサンプルスクリプトです。VM 名が重複する場合は、VM の情報も表示してみます。

gist.github.com

スクリプトの実行

下記のような環境で、VM の UUID を取得します。「vm01」は 1台、VM 名が重複している「vm02」は 3台あります。

f:id:gowatana:20181211020952p:plain

最後の引数は、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 名は重複しないほうがいいかなと思います。

以上。

©2019 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。