def snap_ls(by_name, ident): name = cache.get_name(by_name, ident) rs = hvclient.get_vm(name) vms = hvclient.parse_result(rs) cache.update_cache(vms) cache_vms = cache.list_vms() printer.print_list_vms(cache_vms, name) rs_snaps = hvclient.list_vm_snaps(name) snaps = hvclient.parse_result(rs_snaps) printer.print_vm_snaps(snaps, name, vms['ParentSnapshotName'])
def snap_create(by_name, ident, snap_name, snap_type): name = cache.get_name(by_name, ident) rs = hvclient.get_snapsshot_type(name) current_snap_type = hvclient.parse_result(rs)["CheckpointType"] if current_snap_type != hvclient.SNAP_TYPES[snap_type]: rs = hvclient.set_snapshot_type(name, snap_type) hvclient.parse_result(rs) rs = hvclient.create_vm_snapshot(name, snap_name) hvclient.parse_result(rs)
def connect(by_name, ident): name = cache.get_name(by_name, ident) vm_cache = cache.get_vm_by_name(name) vm_name = vm_cache['Name'] vm_index = vm_cache['index'] vm_id = vm_cache['Id'] rs = hvclient.get_vm(vm_name) vm = hvclient.parse_result(rs) cache.update_cache(vm) if vm['State'] not in [2, 9]: rs = hvclient.start_vm(vm_name) hvclient.parse_result(rs) sleep(5) hvclient.connect(vm_id, vm_name, vm_index)
def snap_delete(by_name, r, ident, snap_name): name = cache.get_name(by_name, ident) rs = hvclient.remove_vm_snapshot(name, snap_name, r) hvclient.parse_result(rs)
def snap_restore(by_name, ident, snap_name): name = cache.get_name(by_name, ident) rs = hvclient.restore_vm_snap(name, snap_name) hvclient.parse_result(rs)
def start(ctx, by_name, ident): name = cache.get_name(by_name, ident) ctx.invoke(list_vms, sync=False, name=name) rs = hvclient.start_vm(name) hvclient.parse_result(rs) ctx.invoke(list_vms, sync=True, name=name)
def get_switch(by_name, ident): name = cache.get_name(by_name, ident) rs = hvclient.get_switch(name) switch = hvclient.parse_result(rs) printer.print_vm_switch(switch)
def set_switch(by_name, ident, switch_name): name = cache.get_name(by_name, ident) rs = hvclient.set_switch(name, switch_name) hvclient.parse_result(rs)
def save(ctx, by_name, ident): name = cache.get_name(by_name, ident) ctx.invoke(list_vms, sync=False, name=name) rs = hvclient.save_vm(name) hvclient.parse_result(rs) ctx.invoke(list_vms, sync=True, name=name)
def test_get_by_index(self): self.fill_cache() vm_name = cache.get_name(by_name=False, ident='1') self.assertEqual(vm_name, 'vm 03')