XenServerのAPIを使ってみる

XenServerのAPIについて調べていたら、どうやらPython版のXMLAPIのラッパークラスがあるみたいだったのでちょっと試してみた。
Developing Products
XenAPI.pyを拾ってきて使う。
とりあえず動いてるVMの名前を一覧表示してみる。

# coding:utf-8
import XenAPI

def main(url, username, password):
    session = XenAPI.Session(url)
    session.xenapi.login_with_password(username, password)
    # 全ホスト取得
    hosts = session.xenapi.host.get_all()
    for host in hosts:
        record_host = session.xenapi.host.get_record(host)
        for vm in record_host['resident_VMs']:
            record_vm = session.xenapi.VM.get_record(vm)
            # 管理ドメイン以外を表示
            if not record_vm['is_control_domain']:
                print record_vm['name_label']

if __name__ == '__main__':
    import sys
    main(*sys.argv[1:4])
$ python tests.py http://192.168.11.100/ root hogefuga
debian01-sandbox
debian04-php
debian02-py
ubuntu03-py

ちなみにXenCenterで見た場合はこんな感じ。

いろいろできそうなよかん!