[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] merge



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID 463bda1677151dd4b588c838a2cd2f5ad2669c82
# Parent  c630278d41933d11940e8f0893e7d11642de405f
# Parent  2773c39df9a6e3f2ca66f5f0fc0d408ced65f369
merge
---
 tools/python/xen/xend/xenstore/xstransact.py |    3 ++-
 tools/python/xen/xend/xenstore/xswatch.py    |   11 ++++++++++-
 tools/python/xen/xm/new.py                   |    6 ++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff -r c630278d4193 -r 463bda167715 
tools/python/xen/xend/xenstore/xstransact.py
--- a/tools/python/xen/xend/xenstore/xstransact.py      Wed Nov 29 12:41:30 
2006 +0000
+++ b/tools/python/xen/xend/xenstore/xstransact.py      Wed Nov 29 12:43:11 
2006 +0000
@@ -11,11 +11,12 @@ class xstransact:
 class xstransact:
 
     def __init__(self, path = ""):
-        assert path is not None
         
         self.in_transaction = False # Set this temporarily -- if this
                                     # constructor fails, then we need to
                                     # protect __del__.
+
+        assert path is not None
         self.path = path.rstrip("/")
         self.transaction = xshandle().transaction_start()
         self.in_transaction = True
diff -r c630278d4193 -r 463bda167715 tools/python/xen/xend/xenstore/xswatch.py
--- a/tools/python/xen/xend/xenstore/xswatch.py Wed Nov 29 12:41:30 2006 +0000
+++ b/tools/python/xen/xend/xenstore/xswatch.py Wed Nov 29 12:43:11 2006 +0000
@@ -5,6 +5,7 @@
 # Public License.  See the file "COPYING" in the main directory of
 # this archive for more details.
 
+import errno
 import threading
 from xen.xend.xenstore.xsutil import xshandle
 
@@ -65,7 +66,15 @@ def watchMain():
             watch = we[1]
             res = watch.fn(we[0], *watch.args, **watch.kwargs)
             if not res:
-                watch.unwatch()
+                try:
+                    watch.unwatch()
+                except RuntimeError, exn:
+                    if exn.args[0] == errno.ENOENT:
+                        # The watch has already been unregistered -- that's
+                        # fine.
+                        pass
+                    else:
+                        raise
         except:
             log.exception("read_watch failed")
             # Ignore this exception -- there's no point throwing it
diff -r c630278d4193 -r 463bda167715 tools/python/xen/xm/new.py
--- a/tools/python/xen/xm/new.py        Wed Nov 29 12:41:30 2006 +0000
+++ b/tools/python/xen/xm/new.py        Wed Nov 29 12:43:11 2006 +0000
@@ -58,6 +58,12 @@ def main(argv):
     if not opts:
         return
 
+    if type(config) == str:
+        try:
+            config = sxp.parse(file(config))[0]
+        except IOError, exn:
+            raise OptionError("Cannot read file %s: %s" % (config, exn[1]))
+
     if opts.vals.dryrun:
         PrettyPrint.prettyprint(config)
     else:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.