def create_attach_xml(update_xmlfile, source_iso, disk_type, target_bus, target_dev, disk_mode=""): """ Create a xml file to update a device. :param update_xmlfile : path/file to save device XML :param source_iso : disk's source backing file. :param disk_type: disk's device type: cdrom or floppy :param target_bus: disk's target bus :param target_dev: disk's target device name :param disk_mode: readonly or shareable """ try: _file = open(source_iso, 'wb') _file.seek((1024 * 1024) - 1) _file.write(str(0)) _file.close() except IOError: raise error.TestFail("Create source_iso failed!") disk_class = VMXML.get_device_class('disk') disk = disk_class(type_name='file') # Static definition for comparison in check_attach() disk.device = disk_type disk.driver = dict(name='qemu') disk.source = disk.new_disk_source(attrs={'file': source_iso}) disk.target = dict(bus=target_bus, dev=target_dev) if disk_mode == "readonly": disk.readonly = True if disk_mode == "shareable": disk.share = True disk.xmltreefile.write() shutil.copyfile(disk.xml, update_xmlfile)
def create_attach_xml(update_xmlfile, disk_type, target_bus, target_dev, source_iso="", disk_mode=""): """ Create a xml file to update a device. :param update_xmlfile : path/file to save device XML :param source_iso : disk's source backing file. :param disk_type: disk's device type: cdrom or floppy :param target_bus: disk's target bus :param target_dev: disk's target device name :param disk_mode: readonly or shareable """ if source_iso: libvirt.create_local_disk("iso", source_iso) disk_class = VMXML.get_device_class('disk') disk = disk_class(type_name='file') # Static definition for comparison in check_attach() disk.device = disk_type disk.target = dict(bus=target_bus, dev=target_dev) if source_iso: disk.driver = dict(name='qemu') disk.source = disk.new_disk_source(attrs={'file': source_iso}) if disk_mode == "readonly": disk.readonly = True if disk_mode == "shareable": disk.share = True disk.xmltreefile.write() shutil.copyfile(disk.xml, update_xmlfile)
def create_attach_xml(update_xmlfile, source_iso, target_bus, target_dev): """ Create a xml file to update a device. :param update_xmlfile : path/file to save device XML :param source_iso : disk's source backing file. :param target_bus : disk's target bus :param target_dev : disk's target device name """ try: _file = open(source_iso, 'wb') _file.seek((1024 * 1024) - 1) _file.write(str(0)) _file.close() except IOError: raise error.TestFail("Create source_iso failed!") disk_class = VMXML.get_device_class('disk') disk = disk_class(type_name='file') # Static definition for comparison in check_attach() disk.device = 'cdrom' disk.driver = dict(name='file') disk.source = disk.new_disk_source(attrs={'file': source_iso}) disk.target = dict(bus=target_bus, dev=target_dev) disk.readonly = True disk.xmltreefile.write() shutil.copyfile(disk.xml, update_xmlfile)
def create_attach_xml(params, test, update_xmlfile, source_iso, disk_type, target_bus, target_dev, disk_mode="", disk_alias=None): """ Create a xml file to update a device. :param parameters from cfg file :param update_xmlfile : path/file to save device XML :param source_iso : disk's source backing file. :param disk_type: disk's device type: cdrom or floppy :param target_bus: disk's target bus :param target_dev: disk's target device name :param disk_mode: readonly or shareable :param disk_alias: disk's alias name """ slice_test = "yes" == params.get("disk_slice", "no") try: if slice_test: libvirt.create_local_disk("file", source_iso, size="1", disk_format="qcow2", extra="-o preallocation=full") else: with open(source_iso, 'wb') as _file: _file.seek((1024 * 1024) - 1) _file.write(str(0).encode()) except IOError: test.fail("Create source_iso failed!") disk_class = VMXML.get_device_class('disk') disk = disk_class(type_name='file') # Static definition for comparison in check_attach()` disk.device = disk_type disk.driver = dict(name='qemu') disk_source = disk.new_disk_source(**{"attrs": {'file': source_iso}}) # Add slice field involved in source if slice_test: slice_size_param = process.run("du -b %s" % source_iso).stdout_text.strip() slice_size = re.findall(r'[0-9]+', slice_size_param) slice_size = ''.join(slice_size) disk_source.slices = disk.new_slices( **{"slice_type": "storage", "slice_offset": "0", "slice_size": slice_size}) disk.source = disk_source disk.target = dict(bus=target_bus, dev=target_dev) if disk_mode == "readonly": disk.readonly = True if disk_mode == "shareable": disk.share = True if disk_alias: disk.alias = dict(name=disk_alias) disk.xmltreefile.write() shutil.copyfile(disk.xml, update_xmlfile)
def create_attach_xml(test, update_xmlfile, source_iso, disk_type, target_bus, target_dev, disk_mode="", disk_alias=None): """ Create a xml file to update a device. :param update_xmlfile : path/file to save device XML :param source_iso : disk's source backing file. :param disk_type: disk's device type: cdrom or floppy :param target_bus: disk's target bus :param target_dev: disk's target device name :param disk_mode: readonly or shareable :param disk_alias: disk's alias name """ try: with open(source_iso, 'wb') as _file: _file.seek((1024 * 1024) - 1) _file.write(str(0).encode()) except IOError: test.fail("Create source_iso failed!") disk_class = VMXML.get_device_class('disk') disk = disk_class(type_name='file') # Static definition for comparison in check_attach() disk.device = disk_type disk.driver = dict(name='qemu') disk.source = disk.new_disk_source(attrs={'file': source_iso}) disk.target = dict(bus=target_bus, dev=target_dev) if disk_mode == "readonly": disk.readonly = True if disk_mode == "shareable": disk.share = True if disk_alias: disk.alias = dict(name=disk_alias) disk.xmltreefile.write() shutil.copyfile(disk.xml, update_xmlfile)