diff --git a/lib/hypervisor.py b/lib/hypervisor.py index 4ba701920931a153e563169af1454345ff8b792f..130c1e6e3737787842e6cb05bc28fbf765520d67 100644 --- a/lib/hypervisor.py +++ b/lib/hypervisor.py @@ -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