[rhmessaging-commits] rhmessaging commits: r4274 - mgmt/newdata/cumin/python/cumin/grid.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Fri Sep 10 12:49:26 EDT 2010


Author: eallen
Date: 2010-09-10 12:49:25 -0400 (Fri, 10 Sep 2010)
New Revision: 4274

Modified:
   mgmt/newdata/cumin/python/cumin/grid/daemon.py
Log:
Fix BZ 534077: Use new rosemary methods to call Master.Start and Master.Stop

Modified: mgmt/newdata/cumin/python/cumin/grid/daemon.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/daemon.py	2010-09-10 15:27:03 UTC (rev 4273)
+++ mgmt/newdata/cumin/python/cumin/grid/daemon.py	2010-09-10 16:49:25 UTC (rev 4274)
@@ -1,7 +1,26 @@
 from cumin.objectframe import *
 from cumin.objectselector import *
 
-class DaemonStart(ObjectFrameTask):
+class DaemonFrameTask(ObjectFrameTask):
+    def get_master(self, system_name, invoc):
+        cls = self.app.model.com_redhat_grid.Master
+
+        conn = self.app.database.get_connection()
+        cursor = conn.cursor()
+
+        try:
+            master = cls.get_object(cursor, System=system_name)
+        finally:
+            conn.close()
+
+        if not master:
+            invoc.exception = Exception("Master daemon not running")
+            invoc.status = invoc.FAILED
+            invoc.end()
+
+        return master
+
+class DaemonStart(DaemonFrameTask):
     def __init__(self, app, frame, target):
         super(DaemonStart, self).__init__(app, frame)
 
@@ -15,14 +34,11 @@
     def do_invoke(self, invoc, daemon):
         system_name = daemon.System
 
-        try:
-            master = Master.select("System = '%s'" % system_name)[0]
-        except IndexError:
-            raise Exception("Master daemon not running")
+        master = self.get_master(system_name, invoc)
+        if master:
+            self.qmf_call(invoc, master, "Start", self.target)
 
-        master.Start(completion, self.target)
-
-class DaemonStop(ObjectFrameTask):
+class DaemonStop(DaemonFrameTask):
     def __init__(self, app, frame, target):
         super(DaemonStop, self).__init__(app, frame)
 
@@ -36,14 +52,30 @@
     def do_invoke(self, invoc, daemon):
         system_name = daemon.System
 
+        master = self.get_master(system_name, invoc)
+        if master:
+            self.qmf_call(invoc, master, "Stop", self.target)
+
+class DaemonSelectorTask(ObjectSelectorTask):
+    def get_master(self, system_name, invoc):
+        cls = self.app.model.com_redhat_grid.Master
+    
+        conn = self.app.database.get_connection()
+        cursor = conn.cursor()
+    
         try:
-            master = Master.select("System = '%s'" % system_name)[0]
-        except IndexError:
-            raise Exception("Master daemon not running")
+            master = cls.get_object(cursor, System=system_name)
+        finally:
+            conn.close()
+    
+        if not master:
+            invoc.exception = Exception("Master daemon not running")
+            invoc.status = invoc.FAILED
+            invoc.end()
+    
+        return master
 
-        master.Stop(completion, self.target)
-
-class DaemonSelectionStart(ObjectSelectorTask):
+class DaemonSelectionStart(DaemonSelectorTask):
     def __init__(self, app, selector, target):
         super(DaemonSelectionStart, self).__init__(app, selector)
 
@@ -57,17 +89,16 @@
     def do_invoke(self, invoc, daemon):
         system_name = daemon.System
 
-        try:
-            master = Master.select("System = '%s'" % system_name)[0]
-        except IndexError:
-            raise Exception("Master daemon not running")
+        master = self.get_master(system_name, invoc)
+        if master:
+            self.qmf_call(invoc, master, "Start", self.target)
 
-        master.Start(completion, self.target)
-
-class DaemonSelectionStop(ObjectSelectorTask):
+class DaemonSelectionStop(DaemonSelectorTask):
     def __init__(self, app, selector, target):
         super(DaemonSelectionStop, self).__init__(app, selector)
 
+        cls = app.model.com_redhat_grid.Master
+
         self.target = target
 
         self.name = "%s_%s" % (self.name, self.target)
@@ -78,9 +109,6 @@
     def do_invoke(self, invoc, daemon):
         system_name = daemon.System
 
-        try:
-            master = Master.select("System = '%s'" % system_name)[0]
-        except IndexError:
-            raise Exception("Master daemon not running")
-
-        master.Stop(completion, self.target)
+        master = self.get_master(system_name, invoc)
+        if master:
+            self.qmf_call(invoc, master, "Stop", self.target)



More information about the rhmessaging-commits mailing list