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 test_parse_error_response(self): rs = namedtuple('Response', ['status_code', 'std_err', 'std_out']) rs.status_code = 1 rs.std_err = 'err' rs.std_out = 'out' with self.assertRaises(SystemExit) as cm: hvclient.parse_result(rs) self.assertEqual(cm.exception.code, 1)
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 test_parse_empty_response(self): rs = namedtuple('Response', ['status_code', 'std_err', 'std_out']) rs.status_code = 0 rs.std_err = 'err' rs.std_out = '' self.assertIsNone(hvclient.parse_result(rs))
def test_parse_result(self): rs = namedtuple('Response', ['status_code', 'std_err', 'std_out']) rs.status_code = 0 rs.std_err = 'err' rs.std_out = bytearray(get_vm_response.encode('latin-1')) self.assertEqual(hvclient.parse_result(rs), loads(get_vm_response))
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 list_vms(sync, name, rem): if sync or cache.need_update(): rs = hvclient.get_vm(name) vms = hvclient.parse_result(rs) if rem: cache.remove_cache() cache.update_cache(vms) cache_vms = cache.list_vms() printer.print_list_vms(cache_vms, name)
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 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 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 list_switches(): rs = hvclient.list_switches() switches = hvclient.parse_result(rs) printer.print_switches(switches)
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 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 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)