VirtualFuel: Add temp_dir and vm_name attributes 05/15005/2
authorJosep Puigdemont <josep.puigdemont@enea.com>
Wed, 4 May 2016 12:27:23 +0000 (14:27 +0200)
committerJosep Puigdemont <josep.puigdemont@gmail.com>
Wed, 15 Jun 2016 16:20:42 +0000 (16:20 +0000)
These two variables are defined in one of the methods right now. They
will be useful to other methods too, so we add them as attributes to the
object here.

Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
deploy/environments/virtual_fuel.py

index cb3bc6c..966bb91 100644 (file)
@@ -25,6 +25,12 @@ class VirtualFuel(ExecutionEnvironment):
     def __init__(self, storage_dir, pxe_bridge, dha_file, root_dir):
         super(VirtualFuel, self).__init__(storage_dir, dha_file, root_dir)
         self.pxe_bridge = pxe_bridge
+        self.temp_dir = tempfile.mkdtemp()
+        self.vm_name = self.dha.get_node_property(self.fuel_node_id,
+                                                  'libvirtName')
+
+    def __del__(self):
+        delete(self.temp_dir)
 
     def set_vm_nic(self, temp_vm_file):
         with open(temp_vm_file) as f:
@@ -46,23 +52,20 @@ class VirtualFuel(ExecutionEnvironment):
             vm_xml.write(f, pretty_print=True, xml_declaration=True)
 
     def create_vm(self):
-        temp_dir = tempfile.mkdtemp()
-        vm_name = self.dha.get_node_property(self.fuel_node_id, 'libvirtName')
         vm_template = '%s/%s' % (self.root_dir,
                                  self.dha.get_node_property(
                                      self.fuel_node_id, 'libvirtTemplate'))
         check_file_exists(vm_template)
-        disk_path = '%s/%s.raw' % (self.storage_dir, vm_name)
+        disk_path = '%s/%s.raw' % (self.storage_dir, self.vm_name)
         disk_sizes = self.dha.get_disks()
         disk_size = disk_sizes['fuel']
         exec_cmd('qemu-img create -f qcow2 %s %s' % (disk_path, disk_size))
-        temp_vm_file = '%s/%s' % (temp_dir, vm_name)
+        temp_vm_file = '%s/%s' % (self.temp_dir, self.vm_name)
         exec_cmd('cp %s %s' % (vm_template, temp_vm_file))
         self.set_vm_nic(temp_vm_file)
         vm_definition_overwrite = self.dha.get_vm_definition('fuel')
-        self.define_vm(vm_name, temp_vm_file, disk_path,
+        self.define_vm(self.vm_name, temp_vm_file, disk_path,
                        vm_definition_overwrite)
-        delete(temp_dir)
 
     def setup_environment(self):
         check_if_root()