[Et-mgmt-commits-list] [SCM] virt-factory branch, master now at v0.0.3-182-g1e6a53e

Scott Seago sseago at redhat.com
Tue Aug 21 19:43:47 UTC 2007


Hello,

This is an automated email from the git hooks/update script, it was
generated because a ref change was pushed to the repository.

Updating branch, master,
       via  1e6a53ed663baa1096a60dd84c8366d162ac862b (commit)
      from  40a6b62aefb18b3e94775236e4c5de2047b36660 (commit)

- Log -----------------------------------------------------------------
commit 1e6a53ed663baa1096a60dd84c8366d162ac862b
Author: Scott Seago <sseago at redhat.com>
Date:   Tue Aug 21 15:43:36 2007 -0400

    node connection to virt-factory server works now, as long as it's not initialized in __init__. methods that use the connection need to call init_qpid before referencing self.server
-----------------------------------------------------------------------

Diffstat:
 nodes/modules/test.py    |   10 ++++++++--
 nodes/modules/web_svc.py |   19 +++++++++++++------
 nodes/nodes/server.py    |    3 ++-
 3 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/nodes/modules/test.py b/nodes/modules/test.py
index b5adc29..8bd7e76 100755
--- a/nodes/modules/test.py
+++ b/nodes/modules/test.py
@@ -10,7 +10,8 @@ class Test(web_svc.WebSvc):
     def __init__(self):
         self.methods = {
             "test_add": self.add,
-            "test_blippy": self.blippy
+            "test_blippy": self.blippy,
+            "test_qpid": self.qpid
         }
         web_svc.WebSvc.__init__(self)
 
@@ -20,7 +21,12 @@ class Test(web_svc.WebSvc):
     def blippy(self, foo):
         fh = open("/tmp/blippy","w+")
         fh.close()
-        return success(foo) 
+        return success(foo)
+
+    def qpid(self, puppet_node):
+        self.init_qpid()
+        info = self.server.puppet_node_info("UNSET", puppet_node)
+        return success(info)
 
 methods = Test()
 register_rpc = methods.register_rpc
diff --git a/nodes/modules/web_svc.py b/nodes/modules/web_svc.py
index 31e14a2..09e0f69 100755
--- a/nodes/modules/web_svc.py
+++ b/nodes/modules/web_svc.py
@@ -41,14 +41,18 @@ class WebSvc(object):
         self.logger.info("server: %s" % self.__target)
         self.__source = socket.gethostname()
         self.logger.info("client: %s" % self.__source)
-
+        self.server_initialized = False
+        
         # FIXME: disabling until hang can be removed
         # FIXME: this part should be Singletonized (TM)
 
-        #self.logger.info("connecting to QPID...")
-        #self.server = Server(client=self.__source, host=self.__target)
-        #self.logger.info("connected")
-
+    def init_qpid(self):
+        if not self.server_initialized:
+            self.logger.info("connecting to QPID...")
+            self.server = Server(client=self.__source, host=self.__target)
+            self.logger.info("connected")
+            self.server_initialized = True
+            
     def __get_file_data(self, fname):
         fileh = open(fname, "r")
         data = fileh.read()
@@ -59,6 +63,10 @@ class WebSvc(object):
         log = logger.Logger()
         self.logger = log.logger
 
+    def register_rpc(self, handlers):
+        for meth in self.methods:
+            handlers[meth] = self.methods[meth]
+
 class AuthWebSvc(WebSvc):
     def __init__(self):
         WebSvc.__init__(self)
@@ -74,7 +82,6 @@ class Server:
         # no crypto for now
         #cm = CertManager('/var/lib/virt-factory/qpidcert', client)
         cm = None
-
         self.rpc_interface = lookup_service("rpc", transport, host=host, server_name="busrpc.virt-factory", cert_mgr=cm, use_bridge=False)
         if self.rpc_interface == None:
             print "Lookup failed :("
diff --git a/nodes/nodes/server.py b/nodes/nodes/server.py
index eacf0d2..033085a 100755
--- a/nodes/nodes/server.py
+++ b/nodes/nodes/server.py
@@ -125,7 +125,8 @@ class VfApiMethod:
             rc = e
         except:
             self.rpc_interface.logger.debug("Not a virt-factory specific exception")
-            rc = self.__log_exc()
+            self.__log_exc()
+            rc = UncaughtException(traceback=traceback.format_exc())
             #raise
         rc = rc.to_datastruct()
         self.rpc_interface.logger.debug("Return code for %s: %s" % (self.__name, rc))

hooks/update
---
Git Source Code Management System
hooks/update refs/heads/master \
  40a6b62aefb18b3e94775236e4c5de2047b36660 \
  1e6a53ed663baa1096a60dd84c8366d162ac862b




More information about the Et-mgmt-commits-list mailing list