diff options
author | Josep Puigdemont <josep.puigdemont@enea.com> | 2016-05-20 10:23:45 +0200 |
---|---|---|
committer | Josep Puigdemont <josep.puigdemont@enea.com> | 2016-06-17 10:24:58 +0200 |
commit | 2a9e72d95200161ec27e8f199a76c6ec1f88bff1 (patch) | |
tree | 3e640cb4dcc8842b4bcabcd04b4ae85543e2f948 | |
parent | dc7f16e0fa9545021b2673e18eff421221ba06c0 (diff) |
virtual_fuel: prepare class to allow multiple bridges
The VirtualFuel class has now two new methods:
del_vm_nics: Deletes all interfaces from the VM.
add_vm_nic: Adds a NIC to the VM, attached to the specified bridge.
The following method has been deleted:
set_vm_nic: implemented with the two new methods
Apart from the deleted method, no functionality has been changed.
This is just a small but necessary step towards adding support for
configuring more than one NIC in the fuel VM.
Change-Id: I9f02c8163dfb9768510e78d5d5e77a0bb43306fb
Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
-rw-r--r-- | deploy/environments/virtual_fuel.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/deploy/environments/virtual_fuel.py b/deploy/environments/virtual_fuel.py index 2fac98b25..5a86c9711 100644 --- a/deploy/environments/virtual_fuel.py +++ b/deploy/environments/virtual_fuel.py @@ -67,22 +67,25 @@ class VirtualFuel(ExecutionEnvironment): with open(self.temp_vm_file, "wc") as f: self.vm_xml.write(f, pretty_print=True, xml_declaration=True) - def set_vm_nic(self): + 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 = self.vm_xml.xpath('/domain/devices') if devices: device = devices[0] device.append(interface) - - self.update_vm_template_file() + 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' % @@ -121,11 +124,13 @@ 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() + self.del_vm_nics() + self.add_vm_nic(self.pxe_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): |