Example #1
0
def poweron_vm_by_vlanid(VLANID):
    global vmid
    vm_list = get_vms(vcip)
    for vm in vm_list:
        if vm['name'] == 'CentOS_' + str(VLANID):
            vmid = vm['vm']

    poweron_vm(vcip, vmid)
Example #2
0
def get_vm_id():
    vm_list = get_vms(vcip)

    vm_ids = []

    for vm in vm_list:
        try:  # 要防止没有虚拟机,或者名字里边没有kali_的情况
            if 'CentOS_' in vm['name']:
                # 对vm_name分片,取后面的数字放进list
                vm_ids.append(int(vm['name'].replace('CentOS_', '')))
        except Exception:
            pass

    return vm_ids
def recovery(vcip):
    # 删除所有name是CentOS_起始的虚拟机,先关机再删除
    try:
        for vm in get_vms(vcip):
            vm_name = vm['name']
            if 'CentOS_' in vm_name:
                poweroff_vm(vcip, vm['vm'])
                delete_vm(vcip, vm['vm'])

    # 依据虚拟机的名字删除所有的Port-Group
        for net in get_networks(vcip)['value']:
            net_name = net['name']
            if 'VLAN' in net_name:
                remove_pg(net_name)
            # 每次执行都等待一秒
            time.sleep(1)
    except Exception:
        pass
Example #4
0
                        user="******",
                        password="******",
                        host="192.168.10.122",
                        port="5432")
# 建立游标,用来执行数据库操作
cursor = conn.cursor()

# 执行SQL命令
cursor.execute("select vm_name from cloud_vm_data")

# 获取SELECT返回的元组
results = cursor.fetchall()
print(results)

# 获取虚拟机当前的电源状态
vm_now_state = {x['name']: x['power_state'] for x in get_vms(vcip)}
print(vm_now_state)

# 以字典的格式获取所有虚拟机的状态
write_db_state = {vm[0]: vm_now_state.get(vm[0], 'UNKOWN') for vm in results}
with open('crontab.log', 'a') as f:
    f.write(str(write_db_state))
print(write_db_state)

# 以key, value形式遍历字典,返回一个列表。
# 把虚拟机当前的电源状态写入到数据库
for vm, state in write_db_state.items():
    if state == 'POWERED_ON':
        cursor.execute(
            "update cloud_vm_data set vm_status = '电源已打开' WHERE vm_name = '%s'"
            % vm)
def get_vmhost_id(no):
    vm_list = get_vms(vcip)

    for x in vm_list:
        if x['name'] == 'CentOS_' + str(no):
            return x['vm']