PythonでESXi向けVM管理スクリプトを書いてみた(作成中)

#!/usr/bin/python

#CMD_DF = "df | fgrep \"datastore1\" | awk -F ' ' '{print $4}'"
CMD_DF = "df | fgrep \"ram\" | awk -F ' ' '{print $4}'"

import sys
import commands

while 1:
    # --- Check free space in datastore1 ---
    result = commands.getoutput(CMD_DF)
    if int(result) > (500*1024*1024*1024):
        print "FREE SPACE"
        sys.exit()

    print "NO FREE SPACE"

    # --- Find a oldest snapshot ---
    # Get all VMIDs
    str_vmid_list = ["1", "6", "7"]
    vmid_list = map(int, str_vmid_list)

    oldest_snapshot = (0,0,0)   # vmid, snapshot_id, snapshot_time

    for vmid in vmid_list:
        # Get snapshot information per VM
        str_ss_id = ["1", "4", "5"]
        ss_id = map(int, str_ss_id)
        str_ss_time = ["20111024123432", "71234567812345678", "81234567812345678"]
        ss_time = map(int, str_ss_time)
        snapshot_info = dict(zip(ss_id, ss_time))

        print snapshot_info
        # Except "Init Snapshot"
        if 1 in snapshot_info:
            del snapshot_info[1]

        print snapshot_info

        # Target snapshot is not exist
        if len(snapshot_info) <= 0:
            sys.exit()

        # Get a oldest snapshot
        old_snapshot = sorted(snapshot_info.items(), key=lambda x:x[1])
        print old_snapshot[0][0]
        if oldest_snapshot[0] == 0 or oldest_snapshot[2] > old_snapshot[0][1]:
            print oldest_snapshot
            oldest_snapshot = (vmid, old_snapshot[0][0], old_snapshot[0][1])

        print "\n"

    # Delete Snapshot
    print oldest_snapshot

    # DEBUG
    sys.exit()