# -*- coding: utf-8 -*- # ***************************************************************************** # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Module authors: # Markus Zolliker # # ***************************************************************************** """start/stop/list of services this code is currently used: - from NICOS to start and stop frappy servers - from a script allowing to start/stop/list (and more) multiple frappy and nicos servers """ from servicemanager.base import ServiceManager, ServiceDown, UsageError, get_config from servicemanager.nicosman import NicosManager from servicemanager.seaman import SeaManager from servicemanager.frappyman import FrappyManager class SewebManager(ServiceManager): group = 'seweb' services = ('',) USAGE = """ Usage: seaweb list [] seaweb start seaweb restart seaweb stop is one of %s """ all = NicosManager, FrappyManager, SeaManager, SewebManager def run(group, arglist): try: parser = get_config() defaults = parser['DEFAULT'] managers = {cls.group: cls() for cls in all if cls.group + '_command' in defaults} serv = managers[group] args = dict(action='gui', ins=serv.main_ins) extra = [] for arg in arglist: if hasattr(serv, 'do_' + arg): args['action'] = arg elif arg in serv.services: args['service'] = arg elif arg in serv.info: args['ins'] = arg else: extra.append(arg) try: serv.action(args['action'], *serv.treat_args(args, extra)) except AttributeError: raise except UsageError as e: serv.do_help() print('ERROR:', str(e))