Error handling for instance config file creation
authorAlexander Schreiber <als@google.com>
Thu, 20 Dec 2007 13:59:30 +0000 (13:59 +0000)
committerAlexander Schreiber <als@google.com>
Thu, 20 Dec 2007 13:59:30 +0000 (13:59 +0000)
Wrap error handling around creating the instance config file.

Reviewed-by: iustinp

lib/hypervisor.py

index 4ba7019..130c1e6 100644 (file)
@@ -347,9 +347,15 @@ class XenPvmHypervisor(XenHypervisor):
       config.write("extra = '%s'\n" % extra_args)
     # just in case it exists
     utils.RemoveFile("/etc/xen/auto/%s" % instance.name)
-    f = open("/etc/xen/%s" % instance.name, "w")
-    f.write(config.getvalue())
-    f.close()
+    try:
+      f = open("/etc/xen/%s" % instance.name, "w")
+      try:
+        f.write(config.getvalue())
+      finally:
+        f.close()
+    except IOError, err:
+      raise errors.OpExecError("Cannot write Xen instance confile"
+                               " file /etc/xen/%s: %s" % (instance.name, err))
     return True
 
   @staticmethod