X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=deploy%2Fenvironments%2Fvirtual_fuel.py;h=b1a76e47942691957b0863322c6a03e245b88389;hb=9de079ed1b09d3fa0fcaae017ff31515b38e6be1;hp=f9f9f7ab957a32ff4e51a759318c6190c2c75361;hpb=e9838d6a94d3b49c8a85d42fbf5cddc69af6cdc5;p=fuel.git diff --git a/deploy/environments/virtual_fuel.py b/deploy/environments/virtual_fuel.py index f9f9f7ab9..b1a76e479 100644 --- a/deploy/environments/virtual_fuel.py +++ b/deploy/environments/virtual_fuel.py @@ -54,28 +54,38 @@ class VirtualFuel(ExecutionEnvironment): self.dha.get_node_property( self.fuel_node_id, 'libvirtTemplate')) check_file_exists(self.vm_template) + with open(self.vm_template) as f: + self.vm_xml = etree.parse(f) + + self.temp_vm_file = '%s/%s' % (self.temp_dir, self.vm_name) + self.update_vm_template_file() def __del__(self): delete(self.temp_dir) - def set_vm_nic(self, temp_vm_file): - with open(temp_vm_file) as f: - vm_xml = etree.parse(f) - interfaces = vm_xml.xpath('/domain/devices/interface') + def update_vm_template_file(self): + with open(self.temp_vm_file, "wc") as f: + self.vm_xml.write(f, pretty_print=True, xml_declaration=True) + + def del_vm_nics(self): + interfaces = self.vm_xml.xpath('/domain/devices/interface') for interface in interfaces: interface.getparent().remove(interface) + + def add_vm_nic(self, bridge): interface = etree.Element('interface') interface.set('type', 'bridge') source = etree.SubElement(interface, 'source') - source.set('bridge', self.pxe_bridge) + source.set('bridge', bridge) model = etree.SubElement(interface, 'model') model.set('type', 'virtio') - devices = vm_xml.xpath('/domain/devices') + + devices = self.vm_xml.xpath('/domain/devices') if devices: device = devices[0] device.append(interface) - with open(temp_vm_file, 'w') as f: - vm_xml.write(f, pretty_print=True, xml_declaration=True) + else: + err('No devices!') def create_volume(self, pool, name, su, img_type='qcow2'): log('Creating image using Libvirt volumes in pool %s, name: %s' % @@ -114,11 +124,14 @@ class VirtualFuel(ExecutionEnvironment): disk_size = disk_sizes['fuel'] disk_path = self.create_image(disk_path, disk_size) - temp_vm_file = '%s/%s' % (self.temp_dir, self.vm_name) - exec_cmd('cp %s %s' % (self.vm_template, temp_vm_file)) - self.set_vm_nic(temp_vm_file) + self.del_vm_nics() + for bridge in self.pxe_bridge: + self.add_vm_nic(bridge) + self.update_vm_template_file() + vm_definition_overwrite = self.dha.get_vm_definition('fuel') - self.define_vm(self.vm_name, temp_vm_file, disk_path, + + self.define_vm(self.vm_name, self.temp_vm_file, disk_path, vm_definition_overwrite) def setup_environment(self):