[Supervisor-checkins] r846 - in supervisor/trunk/src/supervisor: . tests

Mike Naberezny mike at maintainable.com
Sun Apr 19 15:07:08 EDT 2009


Author: Mike Naberezny <mike at maintainable.com>
Date: Sun Apr 19 15:07:08 2009
New Revision: 846

Log:
- Allow get_server_proxy() to return a proxy with no namespace.
- Reinstall get_supervisor() helper because it is very convenient.



Modified:
   supervisor/trunk/src/supervisor/supervisorctl.py
   supervisor/trunk/src/supervisor/tests/test_supervisorctl.py

Modified: supervisor/trunk/src/supervisor/supervisorctl.py
==============================================================================
--- supervisor/trunk/src/supervisor/supervisorctl.py	(original)
+++ supervisor/trunk/src/supervisor/supervisorctl.py	Sun Apr 19 15:07:08 2009
@@ -116,7 +116,7 @@
                       'restart','start','stop','version','clear',
                       'fg','open','quit','remove','shutdown','status',
                       'tail','help']
-        self.info=self.get_server_proxy().getAllProcessInfo()
+        self.info=self.get_supervisor().getAllProcessInfo()
         cmd.Cmd.__init__(self, completekey, stdin, stdout)
         for name, factory, kwargs in self.options.plugin_factories:
             plugin = factory(self, **kwargs)
@@ -191,15 +191,20 @@
     def output(self, stuff):
         if stuff is not None:
             self.stdout.write(stuff + '\n')
+    
+    def get_supervisor(self):
+        return self.get_server_proxy('supervisor')
 
-    def get_server_proxy(self, namespace='supervisor'):
+    def get_server_proxy(self, namespace=None):
         proxy = self.options.getServerProxy()
-        proxy_for_namespace = getattr(proxy, namespace)
-        return proxy_for_namespace
+        if namespace is None:
+            return proxy
+        else:
+            return getattr(proxy, namespace)
 
     def upcheck(self):
         try:
-            supervisor = self.get_server_proxy()
+            supervisor = self.get_supervisor()
             api = supervisor.getVersion() # deprecated
             from supervisor import rpcinterface
             if api != rpcinterface.API_VERSION:
@@ -451,7 +456,7 @@
                     self.ctl.output('Error: bad argument %s' % modifier)
                     return
 
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
 
         if bytes is None:
             return self._tailf('/logtail/%s/%s' % (name, channel))
@@ -518,7 +523,7 @@
         else:
             bytes = 1600
 
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
 
         try:
             output = supervisor.readLog(-bytes, 0)
@@ -565,7 +570,7 @@
         if not self.ctl.upcheck():
             return
         
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
 
         names = arg.strip().split()
 
@@ -592,7 +597,7 @@
                      "processes.")
 
     def do_pid(self, arg):
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         pid = supervisor.getPID()
         self.ctl.output(str(pid))
 
@@ -621,7 +626,7 @@
             return
 
         names = arg.strip().split()
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
 
         if not names:
             self.ctl.output("Error: start requires a process name")
@@ -681,7 +686,7 @@
             return
 
         names = arg.strip().split()
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
 
         if not names:
             self.ctl.output('Error: stop requires a process name')
@@ -748,7 +753,7 @@
         else:
             really = 1
         if really:
-            supervisor = self.ctl.get_server_proxy()
+            supervisor = self.ctl.get_supervisor()
             try:
                 supervisor.shutdown()
             except xmlrpclib.Fault, e:
@@ -768,7 +773,7 @@
         else:
             really = 1
         if really:
-            supervisor = self.ctl.get_server_proxy()
+            supervisor = self.ctl.get_supervisor()
             try:
                 supervisor.restart()
             except xmlrpclib.Fault, e:
@@ -814,7 +819,7 @@
         return template % formatted
 
     def do_avail(self, arg):
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         try:
             configinfo = supervisor.getAllConfigInfo()
         except xmlrpclib.Fault, e:
@@ -828,7 +833,7 @@
         self.ctl.output("avail\t\t\tDisplay all configured processes")
 
     def do_reread(self, arg):
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         try:
             result = supervisor.reloadConfig()
         except xmlrpclib.Fault, e:
@@ -847,7 +852,7 @@
     def do_add(self, arg):
         names = arg.strip().split()
 
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         for name in names:
             try:
                 supervisor.addProcessGroup(name)
@@ -871,7 +876,7 @@
     def do_remove(self, arg):
         names = arg.strip().split()
 
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         for name in names:
             try:
                 result = supervisor.removeProcessGroup(name)
@@ -895,7 +900,7 @@
         def log(name, message):
             self.ctl.output("%s: %s" % (name, message))
 
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         try:
             result = supervisor.reloadConfig()
         except xmlrpclib.Fault, e:
@@ -957,7 +962,7 @@
             self.help_clear()
             return
 
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
 
         if 'all' in names:
             results = supervisor.clearAllProcessLogs()
@@ -1000,7 +1005,7 @@
     def do_version(self, arg):
         if not self.ctl.upcheck():
             return
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         self.ctl.output(supervisor.getSupervisorVersion())
 
     def help_version(self):
@@ -1020,7 +1025,7 @@
             self.ctl.output('Error: too many process names supplied')
             return
         program = args[0]
-        supervisor = self.ctl.get_server_proxy()
+        supervisor = self.ctl.get_supervisor()
         try:
             info = supervisor.getProcessInfo(program)
         except xmlrpclib.Fault, msg:

Modified: supervisor/trunk/src/supervisor/tests/test_supervisorctl.py
==============================================================================
--- supervisor/trunk/src/supervisor/tests/test_supervisorctl.py	(original)
+++ supervisor/trunk/src/supervisor/tests/test_supervisorctl.py	Sun Apr 19 15:07:08 2009
@@ -100,6 +100,31 @@
         self.assertEqual(results, None)
         self.assertEqual(helpval, 'foo helped')
 
+    def test_get_supervisor_returns_serverproxy_supervisor_namespace(self):
+        options = DummyClientOptions()
+        controller = self._makeOne(options)
+
+        proxy = controller.get_supervisor()
+        expected = options.getServerProxy().supervisor
+        self.assertEqual(proxy, expected)
+
+    def test_get_server_proxy_with_no_args_returns_serverproxy(self):
+        options = DummyClientOptions()
+        controller = self._makeOne(options)
+
+        proxy = controller.get_server_proxy()
+        expected = options.getServerProxy()
+        self.assertEqual(proxy, expected)
+
+    def test_get_server_proxy_with_namespace_returns_that_namespace(self):
+        options = DummyClientOptions()
+        controller = self._makeOne(options)
+
+        proxy = controller.get_server_proxy('system')
+        expected = options.getServerProxy().system
+        self.assertEqual(proxy, expected)
+
+
 class TestControllerPluginBase(unittest.TestCase):
     def _getTargetClass(self):
         from supervisor.supervisorctl import ControllerPluginBase
@@ -526,7 +551,7 @@
                           'inuse': False, 'autostart': False,
                           'process_prio': 999, 'group_prio': 999 }]
 
-        plugin.ctl.get_server_proxy = lambda : FakeSupervisor()
+        plugin.ctl.get_supervisor = lambda : FakeSupervisor()
         plugin.ctl.output = calls.append
         result = plugin.do_avail('')
         self.assertEqual(result, None)
@@ -752,7 +777,7 @@
 
     def test_maintail_readlog_error_nofile(self):
         plugin = self._makeOne()
-        supervisor_rpc = plugin.ctl.get_server_proxy()
+        supervisor_rpc = plugin.ctl.get_supervisor()
         from supervisor import xmlrpc
         supervisor_rpc._readlog_error = xmlrpc.Faults.NO_FILE
         result = plugin.do_maintail('-100')
@@ -761,7 +786,7 @@
 
     def test_maintail_readlog_error_failed(self):
         plugin = self._makeOne()
-        supervisor_rpc = plugin.ctl.get_server_proxy()
+        supervisor_rpc = plugin.ctl.get_supervisor()
         from supervisor import xmlrpc
         supervisor_rpc._readlog_error = xmlrpc.Faults.FAILED
         result = plugin.do_maintail('-100')
@@ -840,10 +865,15 @@
     def upcheck(self):
         return True
 
-    def get_server_proxy(self, namespace="supervisor"):
+    def get_supervisor(self):
+        return self.get_server_proxy('supervisor')
+
+    def get_server_proxy(self, namespace=None):
         proxy = self.options.getServerProxy()
-        proxy_for_namespace = getattr(proxy, namespace)
-        return proxy_for_namespace  
+        if namespace is None:
+            return proxy
+        else:
+            return getattr(proxy, namespace)
 
     def output(self, data):
         self.stdout.write(data + '\n')


More information about the Supervisor-checkins mailing list