[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