def test_get_vm_power_status(self): """Retrieve virtual machine power status; return power status object.""" vm_name = 'test' vm = SpokeVMPowerXen(self.hv_uri, vm_name) result = vm.get()['data'][0]['state'] expected_result = 'On' self.assertEquals(result, expected_result)
def power_modify(vm_name, state): from spoke.lib.vm_power import SpokeVMPowerXen vmp = SpokeVMPowerXen(hv_uri, vm_name) try: result = vmp.modify(state) except error.SpokeError as e: result = common.handle_error(e) return result
def power_search(vm_name): from spoke.lib.vm_power import SpokeVMPowerXen vmp = SpokeVMPowerXen(hv_uri, vm_name) try: result = vmp.get() except error.SpokeError as e: result = common.handle_error(e) return result
def power_modify(vm_name, state): try: conf = _spoke_config(_salt_config('config')) hv_uri = conf.get('VM', 'hv_uri') vmp = SpokeVMPowerXen(hv_uri, vm_name) result = vmp.modify(state) except error.SpokeError as e: result = common.handle_error(e) return result
def power_delete(vm_name, force=False): try: conf = _spoke_config(_salt_config('config')) hv_uri = conf.get('VM', 'hv_uri') vmp = SpokeVMPowerXen(hv_uri, vm_name) result = vmp.delete(force=force) except error.SpokeError as e: result = common.handle_error(e) return result
def test_force_poweroff_vm(self): """Force power off a running virtual machine object; return True""" vm_name = 'test' vm = SpokeVMPowerXen(self.hv_uri, vm_name) self.assertTrue(vm.delete(force=True))
def test_poweroff_stopped_vm(self): """Power off a non-running virtual machine object; raise VMStopped""" vm_name = 'test' vm = SpokeVMPowerXen(self.hv_uri, vm_name) vm.delete() self.assertRaises(error.VMStopped, vm.delete)
import spoke.lib.mc_helper as mc # TODO This only works for Xen until we can hide VM Storage types in the vm_storage module from spoke.lib.vm_power import SpokeVMPowerXen config_file = '/usr/local/pkg/spoke/etc/spoke.conf' config = config.setup(config_file) if __name__ == '__main__': log = logger.setup('main', verbose=False, quiet=True) mc = mc.MCollectiveAction() request = mc.request() try: hv_uri = config.get('VM', 'hv_uri') vm_name = request['data']['hostname'] vmp = SpokeVMPowerXen(hv_uri, vm_name) except error.SpokeError, e: mc.fail(e.msg, e.exit_code) if request['action'] == 'search': try: mc.data = vmp.get() except error.SpokeError, e: mc.fail(e.msg, e.exit_code) elif request['action'] == 'on': try: mc.data = vmp.create() except error.SpokeError, e: mc.fail(e.msg, e.exit_code) elif request['action'] == 'off': try:
def test_poweroff_vm(self): """Power off a running virtual machine object; return True""" vm_name = 'test' vm = SpokeVMPowerXen(self.hv_uri, vm_name) self.assertTrue(vm.delete)
def test_poweron_vm_twice(self): """Power on a running virtual machine object; raise VMRunning""" vm_name = 'test' vm = SpokeVMPowerXen(self.hv_uri, vm_name) self.assertRaises(error.VMRunning, vm.create)