- def define_vm(self, vm_name, temp_vm_file, disk_path, number_cpus):
+ def overwrite_xml(self, vm_xml, vm_definition_overwrite):
+ if not vm_definition_overwrite:
+ return
+ for key, value in vm_definition_overwrite.iteritems():
+ if key == 'attribute_equlas':
+ continue
+ if key == 'value':
+ vm_xml.text = str(value)
+ return
+ if key == 'attribute':
+ for attr_key, attr_value in value.iteritems():
+ vm_xml.set(attr_key, str(attr_value))
+ return
+
+ if isinstance(value, dict):
+ only_when_attribute = value.get('attribute_equlas')
+ for xml_element in vm_xml.xpath(key):
+ if only_when_attribute:
+ for attr_key, attr_value in \
+ only_when_attribute.iteritems():
+ if attr_value != xml_element.get(attr_key):
+ continue
+ self.overwrite_xml(xml_element, value)
+
+ def define_vm(self, vm_name, temp_vm_file, disk_path,
+ vm_definition_overwrite):