[Erp5-report] r45384 luke - in /slapos/trunk/util/slapos.tool.grid: ./ src/slapos/tool/grid/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Apr 13 15:38:45 CEST 2011
Author: luke
Date: Wed Apr 13 15:38:45 2011
New Revision: 45384
URL: http://svn.erp5.org?rev=45384&view=rev
Log:
- provide own, slapos compatible wrappers for supervisor
Modified:
slapos/trunk/util/slapos.tool.grid/setup.py
slapos/trunk/util/slapos.tool.grid/src/slapos/tool/grid/svcbackend.py
Modified: slapos/trunk/util/slapos.tool.grid/setup.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.grid/setup.py?rev=45384&r1=45383&r2=45384&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.grid/setup.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.grid/setup.py [utf8] Wed Apr 13 15:38:45 2011
@@ -40,6 +40,7 @@ setup(
slapgrid-sr = %(name)s.slapgrid:runSoftwareRelease
slapgrid-cp = %(name)s.slapgrid:runComputerPartition
slapgrid-ur = %(name)s.slapgrid:runUsageReport
- slapgrid-supervisor = supervisor.supervisorctl:main
+ slapgrid-supervisorctl = %(name)s.svcbackend:supervisorctl
+ slapgrid-supervisord = %(name)s.svcbackend:supervisord
""" % dict(name=name),
)
Modified: slapos/trunk/util/slapos.tool.grid/src/slapos/tool/grid/svcbackend.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.grid/src/slapos/tool/grid/svcbackend.py?rev=45384&r1=45383&r2=45384&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.grid/src/slapos/tool/grid/svcbackend.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.grid/src/slapos/tool/grid/svcbackend.py [utf8] Wed Apr 13 15:38:45 2011
@@ -31,6 +31,8 @@ import logging
import os
import sys
import xmlrpclib
+from optparse import OptionParser
+import ConfigParser
def getSupervisorRPC(socket):
@@ -80,3 +82,52 @@ def launchSupervisord(socket, configurat
log_message = 'Supervisord unknown problem: %s' % result
logger.info(log_message)
+
+def getOptionDict(*argument_tuple):
+ usage = """
+Typical usage:
+ * %prog CONFIGURATION_FILE [arguments passed to supervisor]
+
+""".strip()
+
+ parser = OptionParser(usage=usage)
+ # Parses arguments
+ if argument_tuple == ():
+ # No arguments given to entry point : we parse sys.argv.
+ (argument_option_instance, argument_list) = parser.parse_args()
+ else:
+ (argument_option_instance, argument_list) = \
+ parser.parse_args(list(argument_tuple))
+ if len(argument_list) == 0:
+ parser.error("Configuration file is obligatory. Consult documentation by "
+ "calling with -h.")
+ configuration_file = argument_list[0]
+ if not os.path.exists(configuration_file):
+ parser.error("Could not read configuration file : %s" \
+ % configuration_file)
+ slapgrid_configuration = ConfigParser.SafeConfigParser()
+ slapgrid_configuration.read(configuration_file)
+ # Merges the two dictionnaries
+ option_dict = dict(slapgrid_configuration.items("slapos"))
+ # Supervisord configuration location
+ if not option_dict.get('supervisord_configuration_path'):
+ option_dict['supervisord_configuration_path'] = \
+ os.path.join(option_dict['instance_root'], 'etc', 'supervisord.conf')
+ # Supervisord socket
+ if not option_dict.get('supervisord_socket'):
+ option_dict['supervisord_socket'] = \
+ os.path.join(option_dict['instance_root'], 'supervisord.socket')
+ return option_dict, argument_list[1:]
+
+
+def supervisorctl(*argument_tuple):
+ option_dict, args = getOptionDict(*argument_tuple)
+ import supervisor.supervisorctl
+ supervisor.supervisorctl.main(args=['-c',
+ option_dict['supervisord_configuration_path']] + args)
+
+def supervisord(*argument_tuple):
+ option_dict, dummy = getOptionDict(*argument_tuple)
+ dummy = dummy
+ launchSupervisord(option_dict['supervisord_socket'],
+ option_dict['supervisord_configuration_path'])
More information about the Erp5-report
mailing list