# This is the VMWare OS name os_type_ignore = vs_node.prop("osType") elif vs_node.name == "VirtualHardwareSection": _parse_hw_section(vm, node_list(vs_node), file_refs, disk_section) elif vs_node.name == "AnnotationSection": for an_node in node_list(vs_node): if an_node.name == "Annotation": desc = an_node.content vm.name = name vm.description = desc vm.validate() return vm @staticmethod def export(vm): """ Export a configuration file as a string. @vm vm configuration instance Raises ValueError if configuration is not suitable. """ raise NotImplementedError formats.register_parser(ovf_parser)
out = image_template % { "boot_template": boot_xml, "name" : vmname, "description" : escape(vm.description), "nr_vcpus" : vm.nr_vcpus, # Mb to Kb "memory" : int(vm.memory) * 1024, "interface" : interface, "storage" : "".join(storage), } return out @staticmethod def export_file(vm, output_file): """ Export a configuration file. @vm vm configuration instance @output_file Output file Raises ValueError if configuration is not suitable, or another exception on failure to write the output file. """ output = virtimage_parser.export(vm) outfile = open(output_file, "w") outfile.writelines(output) outfile.close() formats.register_parser(virtimage_parser)
"vm_nr_vcpus": vm.nr_vcpus, "vm_memory": long(vm.memory) } vmx_out = _VMX_MAIN_TEMPLATE % vmx_dict vmx_out_template.append(vmx_out) disk_out_template = [] for devid, disk in sorted(vm.disks.items()): bus, dev_nr = devid if bus.lower() != "ide": logging.debug("Disk bus '%s' not yet supported. Skipping." % \ bus.lower()) continue dev = "%d:%d" % (dev_nr / 2, dev_nr % 2) disk_dict = {"dev": dev, "disk_filename": disk.path} disk_out = _VMX_IDE_TEMPLATE % disk_dict disk_out_template.append(disk_out) eth_out_template = [] if len(vm.netdevs): for devnum in vm.netdevs: eth_dict = {"dev": devnum} eth_out = _VMX_ETHERNET_TEMPLATE % eth_dict eth_out_template.append(eth_out) return "".join(vmx_out_template + disk_out_template + eth_out_template) formats.register_parser(vmx_parser)
vmx_out_template.append(vmx_out) disk_out_template = [] for devid, disk in sorted(vm.disks.items()): bus, dev_nr = devid if bus.lower() != "ide": logging.debug("Disk bus '%s' not yet supported. Skipping.", bus.lower()) continue dev = "%d:%d" % (dev_nr / 2, dev_nr % 2) disk_dict = { "dev": dev, "disk_filename" : disk.path } disk_out = _VMX_IDE_TEMPLATE % disk_dict disk_out_template.append(disk_out) eth_out_template = [] if len(vm.netdevs): for devnum in vm.netdevs: eth_dict = { "dev" : devnum } eth_out = _VMX_ETHERNET_TEMPLATE % eth_dict eth_out_template.append(eth_out) return "".join(vmx_out_template + disk_out_template + eth_out_template) formats.register_parser(vmx_parser)