def test_create_vm_twice(self): """Create virtual machine twice; raise AlreadExists.""" vm = SpokeVMStorageXen(self.hv_uri) vm.create(self.vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces) self.assertRaises(error.AlreadyExists, vm.create, self.vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces) vm.conn.close()
def test_create_vm_twice(self): """Create virtual machine twice; raise AlreadExists.""" vm = SpokeVMStorageXen(self.hv_uri) vm.create(self.vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces) self.assertRaises(error.AlreadyExists, vm.create, self.vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces) vm.conn.close()
def test_get_all_vms(self): """Retrieve a virtual machine; return a vm object.""" vm = SpokeVMStorageXen(self.hv_uri) vm_name = 'test2ndvm' vm.create(vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces) data = vm.get()['data'] # UUID is different each time so we need to strip it out ruuid = re.compile(r'<uuid.*?uuid>\n ') out = ruuid.sub('', data[0]) result = [out, data[1]] expected_result = ["<domain type='test'>\n <name>test</name>\n <memory unit='KiB'>8388608</memory>\n <currentMemory unit='KiB'>2097152</currentMemory>\n <vcpu>2</vcpu>\n <os>\n <type arch='i686'>hvm</type>\n <boot dev='hd'/>\n </os>\n <clock offset='utc'/>\n <on_poweroff>destroy</on_poweroff>\n <on_reboot>restart</on_reboot>\n <on_crash>destroy</on_crash>\n <devices>\n </devices>\n</domain>\n", "<domain type='test'>\n <name>test2ndvm</name>\n <uuid>00000000-0000-0000-0000-000000000001</uuid>\n <memory unit='KiB'>262144</memory>\n <currentMemory unit='KiB'>262144</currentMemory>\n <vcpu>1</vcpu>\n <bootloader>/usr/sbin/pypxeboot</bootloader>\n <bootloader_args>--udhcpc=/usr/local/pkg/udhcp/sbin/udhcpc --interface=eth3 mac=02:00:00:01:00:00 --label=install-aethernet</bootloader_args>\n <os>\n <type arch='i686'>hvm</type>\n </os>\n <clock offset='utc'/>\n <on_poweroff>destroy</on_poweroff>\n <on_reboot>restart</on_reboot>\n <on_crash>restart</on_crash>\n <devices>\n <emulator>/usr/lib/xen/bin/qemu-dm</emulator>\n <disk type='block' device='disk'>\n <driver name='phy'/>\n <source dev='/dev/vg01/test2ndvm'/>\n <target dev='hda' bus='ide'/>\n <address type='drive' controller='0' bus='0' target='0' unit='0'/>\n </disk>\n <disk type='block' device='disk'>\n <driver name='phy'/>\n <source dev='/dev/vg02/test2ndvm'/>\n <target dev='hdb' bus='ide'/>\n <address type='drive' controller='0' bus='0' target='0' unit='1'/>\n </disk>\n <controller type='ide' index='0'/>\n <interface type='bridge'>\n <mac address='02:00:00:01:00:00'/>\n <source bridge='eth3'/>\n <script path='vif-bridge'/>\n <target dev='vif-1.0'/>\n </interface>\n <interface type='bridge'>\n <mac address='02:00:00:01:01:00'/>\n <source bridge='eth0'/>\n <script path='vif-bridge'/>\n <target dev='vif-1.1'/>\n </interface>\n <console type='pty'>\n <target type='xen' port='0'/>\n </console>\n <input type='mouse' bus='ps2'/>\n <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>\n <listen type='address' address='0.0.0.0'/>\n </graphics>\n <video>\n <model type='cirrus' vram='9216' heads='1'/>\n </video>\n </devices>\n</domain>\n"] self.assertEquals(result, expected_result)
def test_get_all_vms(self): """Retrieve a virtual machine; return a vm object.""" vm = SpokeVMStorageXen(self.hv_uri) vm_name = 'test2ndvm' vm.create(vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces) data = vm.get()['data'] # UUID is different each time so we need to strip it out ruuid = re.compile(r'<uuid.*?uuid>\n ') out = ruuid.sub('', data[0]) result = [out, data[1]] expected_result = [ "<domain type='test'>\n <name>test</name>\n <memory unit='KiB'>8388608</memory>\n <currentMemory unit='KiB'>2097152</currentMemory>\n <vcpu>2</vcpu>\n <os>\n <type arch='i686'>hvm</type>\n <boot dev='hd'/>\n </os>\n <clock offset='utc'/>\n <on_poweroff>destroy</on_poweroff>\n <on_reboot>restart</on_reboot>\n <on_crash>destroy</on_crash>\n <devices>\n </devices>\n</domain>\n", "<domain type='test'>\n <name>test2ndvm</name>\n <uuid>00000000-0000-0000-0000-000000000001</uuid>\n <memory unit='KiB'>262144</memory>\n <currentMemory unit='KiB'>262144</currentMemory>\n <vcpu>1</vcpu>\n <bootloader>/usr/sbin/pypxeboot</bootloader>\n <bootloader_args>--udhcpc=/usr/local/pkg/udhcp/sbin/udhcpc --interface=eth3 mac=02:00:00:01:00:00 --label=install-aethernet</bootloader_args>\n <os>\n <type arch='i686'>hvm</type>\n </os>\n <clock offset='utc'/>\n <on_poweroff>destroy</on_poweroff>\n <on_reboot>restart</on_reboot>\n <on_crash>restart</on_crash>\n <devices>\n <emulator>/usr/lib/xen/bin/qemu-dm</emulator>\n <disk type='block' device='disk'>\n <driver name='phy'/>\n <source dev='/dev/vg01/test2ndvm'/>\n <target dev='hda' bus='ide'/>\n <address type='drive' controller='0' bus='0' target='0' unit='0'/>\n </disk>\n <disk type='block' device='disk'>\n <driver name='phy'/>\n <source dev='/dev/vg02/test2ndvm'/>\n <target dev='hdb' bus='ide'/>\n <address type='drive' controller='0' bus='0' target='0' unit='1'/>\n </disk>\n <controller type='ide' index='0'/>\n <interface type='bridge'>\n <mac address='02:00:00:01:00:00'/>\n <source bridge='eth3'/>\n <script path='vif-bridge'/>\n <target dev='vif-1.0'/>\n </interface>\n <interface type='bridge'>\n <mac address='02:00:00:01:01:00'/>\n <source bridge='eth0'/>\n <script path='vif-bridge'/>\n <target dev='vif-1.1'/>\n </interface>\n <console type='pty'>\n <target type='xen' port='0'/>\n </console>\n <input type='mouse' bus='ps2'/>\n <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>\n <listen type='address' address='0.0.0.0'/>\n </graphics>\n <video>\n <model type='cirrus' vram='9216' heads='1'/>\n </video>\n </devices>\n</domain>\n" ] self.assertEquals(result, expected_result)
def test_create_vm(self): """Create a virtual machine object; return True.""" vm = SpokeVMStorageXen(self.hv_uri) self.assertTrue( vm.create(self.vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces)) vm.conn.close()
def test_create_vm(self): """Create a virtual machine object; return True.""" vm = SpokeVMStorageXen(self.hv_uri) self.assertTrue(vm.create(self.vm_name, self.vm_uuid, self.vm_mem, self.vm_cpu, self.vm_family, self.vm_storage_layout, self.vm_network_layout, self.vm_install, self.vm_disks, self.vm_interfaces)) vm.conn.close()
def store_create(vm_family, vm_name, vm_uuid, vm_mem, vm_cpu, vm_storage_layout, vm_network_layout, vm_install=False): try: conf = _spoke_config(_salt_config('config')) hv_uri = conf.get('VM', 'hv_uri') vms = SpokeVMStorageXen(hv_uri) result = vms.create(vm_name, vm_uuid, vm_mem, vm_cpu, vm_family, vm_storage_layout, vm_network_layout, vm_install) except error.SpokeError as e: result = common.handle_error(e) return result
def store_create(vm_family, vm_name, vm_uuid, vm_mem, vm_cpu, vm_storage_layout, vm_network_layout, vm_install=False): from spoke.lib.vm_storage import SpokeVMStorageXen vms = SpokeVMStorageXen(hv_uri) try: result = vms.create(vm_name, vm_uuid, vm_mem, vm_cpu, vm_family, vm_storage_layout, vm_network_layout, vm_install) except error.SpokeError as e: result = common.handle_error(e) return result
mc.fail(e.msg, e.exit_code) if request['action'] == 'create': vm_name = request['data']['hostname'] vm_uuid = request['data']['uuid'] vm_mem = request['data']['mem'] vm_cpu = request['data']['cpu'] vm_family = request['data']['family'] vm_storage_layout = request['data']['storage_layout'] vm_network_layout = request['data']['network_layout'] try: vm_install = request['data']['install'] except KeyError: vm_install = None try: mc.data = vm.create(vm_name, vm_uuid, vm_mem, vm_cpu, vm_family, vm_storage_layout, vm_network_layout, vm_install) except error.SpokeError, e: mc.fail(e.msg, e.exit_code) elif request['action'] == 'search': try: vm_name = request['data']['hostname'] except KeyError: vm_name = None try: mc.data = vm.get(vm_name) except error.SpokeError, e: mc.fail(e.msg, e.exit_code) elif request['action'] == 'delete': vm_name = request['data']['hostname'] try: mc.data = vm.delete(vm_name)