X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=tools%2FOVF_converter%2Fformat_converter%2Fconverter.py;h=ca2a3691ea636aa526da729a0a96cfb08e54fbf7;hb=2c002c9c68830ec7bea8aed0bda88f53f14efcb5;hp=3c647a9b38842ced0e8454a55cf45f5af1495688;hpb=647737739a8e18290c9380035f00eac10d6367d5;p=osm%2Fdevops.git diff --git a/tools/OVF_converter/format_converter/converter.py b/tools/OVF_converter/format_converter/converter.py index 3c647a9b..ca2a3691 100644 --- a/tools/OVF_converter/format_converter/converter.py +++ b/tools/OVF_converter/format_converter/converter.py @@ -33,6 +33,8 @@ from command_progress import CommandProgressbar MODULE_DIR = os.path.dirname(__file__) OVF_TEMPLATE_PATH = os.path.join(os.path.dirname(MODULE_DIR), "ovf_template/template.xml") +IDE_CDROM_XML_PATH = os.path.join(os.path.dirname(MODULE_DIR), + "ovf_template/ide_cdrom.xml") OS_INFO_FILE_PATH = os.path.join(os.path.dirname(MODULE_DIR), "config/os_type.yaml") DISK_CONTROLLER_INFO_FILE_PATH = os.path.join(os.path.dirname(MODULE_DIR), @@ -62,7 +64,7 @@ class OVFConverter(object): def __init__(self, source_img_path, output_location=None, output_ovf_name=None, memory=None, cpu=None, disk=None, os_type=None, - disk_controller=None, + disk_controller=None, cdrom=None, options={'subformat':'streamOptimized'}): """ Constructor to initialize object of class OVFConverter @@ -126,6 +128,7 @@ class OVFConverter(object): self.memory = str(memory) if memory is not None else None self.cpu = str(cpu) if cpu is not None else None self.os_type=str(os_type).strip() if os_type else None + self.cdrom = cdrom if self.os_type: self.osID , self.osType = self.__get_osType() @@ -363,8 +366,14 @@ class OVFConverter(object): resource_subtype.getparent().remove(resource_subtype) if "resourceSubType" in self.disk_controller_info: resource_subtype.text = self.disk_controller_info["resourceSubType"] - - #Save output OVF + if self.cdrom: + last_item = list(virtualHardwareSection.iterfind('xmlns:Item',nsmap))[-1] + ide_cdrom_items_etree = ET.parse(IDE_CDROM_XML_PATH) + ide_cdrom_items = list(ide_cdrom_items_etree.iterfind('Item')) + for item in ide_cdrom_items: + last_item.addnext(item) + + # Save output OVF OVF_tree.write(self.output_path, xml_declaration=True,encoding='utf-8', method="xml" )