Unify the “--backend-parameters” option
[ganeti-local] / lib / hypervisor / hv_kvm.py
index 56925bc..fd51ae5 100644 (file)
@@ -55,22 +55,22 @@ class KVMHypervisor(hv_base.BaseHypervisor):
     constants.HV_KERNEL_ARGS: hv_base.NO_CHECK,
     constants.HV_ACPI: hv_base.NO_CHECK,
     constants.HV_SERIAL_CONSOLE: hv_base.NO_CHECK,
-    constants.HV_VNC_BIND_ADDRESS: \
-    (False, lambda x: (utils.IsValidIP(x) or utils.IsAbsNormPath(x)),
-     "the VNC bind address must be either a valid IP address or an absolute"
-     " pathname", None, None),
+    constants.HV_VNC_BIND_ADDRESS:
+      (False, lambda x: (utils.IsValidIP(x) or utils.IsNormAbsPath(x)),
+       "the VNC bind address must be either a valid IP address or an absolute"
+       " pathname", None, None),
     constants.HV_VNC_TLS: hv_base.NO_CHECK,
     constants.HV_VNC_X509: hv_base.OPT_DIR_CHECK,
     constants.HV_VNC_X509_VERIFY: hv_base.NO_CHECK,
     constants.HV_CDROM_IMAGE_PATH: hv_base.OPT_FILE_CHECK,
-    constants.HV_BOOT_ORDER: \
-    hv_base.ParamInSet(True, constants.HT_KVM_VALID_BO_TYPES),
-    constants.HV_NIC_TYPE: \
-    hv_base.ParamInSet(True, constants.HT_KVM_VALID_NIC_TYPES),
-    constants.HV_DISK_TYPE: \
-    hv_base.ParamInSet(True, constants.HT_KVM_VALID_DISK_TYPES),
-    constants.HV_USB_MOUSE: \
-    hv_base.ParamInSet(False, constants.HT_KVM_VALID_MOUSE_TYPES),
+    constants.HV_BOOT_ORDER:
+      hv_base.ParamInSet(True, constants.HT_KVM_VALID_BO_TYPES),
+    constants.HV_NIC_TYPE:
+      hv_base.ParamInSet(True, constants.HT_KVM_VALID_NIC_TYPES),
+    constants.HV_DISK_TYPE:
+      hv_base.ParamInSet(True, constants.HT_KVM_VALID_DISK_TYPES),
+    constants.HV_USB_MOUSE:
+      hv_base.ParamInSet(False, constants.HT_KVM_VALID_MOUSE_TYPES),
     }
 
   _MIGRATION_STATUS_RE = re.compile('Migration\s+status:\s+(\w+)',
@@ -86,7 +86,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
     hv_base.BaseHypervisor.__init__(self)
     # Let's make sure the directories we need exist, even if the RUN_DIR lives
     # in a tmpfs filesystem or has been otherwise wiped out.
-    dirs = [(dir, constants.RUN_DIRS_MODE) for dir in self._DIRS]
+    dirs = [(dname, constants.RUN_DIRS_MODE) for dname in self._DIRS]
     utils.EnsureDirs(dirs)
 
   def _InstancePidAlive(self, instance_name):
@@ -177,8 +177,10 @@ class KVMHypervisor(hv_base.BaseHypervisor):
     # mounted noexec sometimes, so we'll have to find another place.
     (tmpfd, tmpfile_name) = tempfile.mkstemp()
     tmpfile = os.fdopen(tmpfd, 'w')
-    tmpfile.write(script.getvalue())
-    tmpfile.close()
+    try:
+      tmpfile.write(script.getvalue())
+    finally:
+      tmpfile.close()
     os.chmod(tmpfile_name, 0755)
     return tmpfile_name
 
@@ -210,11 +212,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
 
     cmdline_file = "/proc/%s/cmdline" % pid
     try:
-      fh = open(cmdline_file, 'r')
-      try:
-        cmdline = fh.read()
-      finally:
-        fh.close()
+      cmdline = utils.ReadFile(cmdline_file)
     except EnvironmentError, err:
       raise errors.HypervisorError("Failed to list instance %s: %s" %
                                    (instance_name, err))
@@ -641,7 +639,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
           time.sleep(2)
 
     utils.KillProcess(pid)
-    self._RemoveInstanceRuntimeFiles(pidfile, instance.name)
+    self._RemoveInstanceRuntimeFiles(pidfile, instance_name)
 
   def GetNodeInfo(self):
     """Return information about the node.