def change_service_state(client, name, state, logger=None): """ Starts/stops/restarts a service :param client: SSHClient on which to connect and change service state :param name: Name of the service :param state: State to put the service in :param logger: LogHandler Object """ action = None # Enable service before changing the state status = ServiceManager.is_enabled(name, client=client) if status is False: if logger is not None: logger.debug(' {0:<15} - Enabling service {1}'.format( client.ip, name)) ServiceManager.enable_service(name, client=client) status = ServiceManager.get_service_status(name, client=client) if status is False and state in ['start', 'restart']: if logger is not None: logger.debug(' {0:<15} - Starting service {1}'.format( client.ip, name)) ServiceManager.start_service(name, client=client) action = 'started' elif status is True and state == 'stop': if logger is not None: logger.debug(' {0:<15} - Stopping service {1}'.format( client.ip, name)) ServiceManager.stop_service(name, client=client) action = 'stopped' elif status is True and state == 'restart': if logger is not None: logger.debug(' {0:<15} - Restarting service {1}'.format( client.ip, name)) ServiceManager.restart_service(name, client=client) action = 'restarted' if action is None: print ' [{0}] {1} already {2}'.format( client.ip, name, 'running' if status is True else 'halted') else: logger.debug(' {0:<15} - Service {1} {2}'.format( client.ip, name, action)) print ' [{0}] {1} {2}'.format(client.ip, name, action)
def change_service_state(client, name, state, logger=None): """ Starts/stops/restarts a service :param client: SSHClient on which to connect and change service state :param name: Name of the service :param state: State to put the service in :param logger: LogHandler Object """ action = None # Enable service before changing the state status = ServiceManager.is_enabled(name, client=client) if status is False: if logger is not None: logger.debug(' {0:<15} - Enabling service {1}'.format(client.ip, name)) ServiceManager.enable_service(name, client=client) status = ServiceManager.get_service_status(name, client=client) if status is False and state in ['start', 'restart']: if logger is not None: logger.debug(' {0:<15} - Starting service {1}'.format(client.ip, name)) ServiceManager.start_service(name, client=client) action = 'started' elif status is True and state == 'stop': if logger is not None: logger.debug(' {0:<15} - Stopping service {1}'.format(client.ip, name)) ServiceManager.stop_service(name, client=client) action = 'stopped' elif status is True and state == 'restart': if logger is not None: logger.debug(' {0:<15} - Restarting service {1}'.format(client.ip, name)) ServiceManager.restart_service(name, client=client) action = 'restarted' if action is None: print ' [{0}] {1} already {2}'.format(client.ip, name, 'running' if status is True else 'halted') else: logger.debug(' {0:<15} - Service {1} {2}'.format(client.ip, name, action)) print ' [{0}] {1} {2}'.format(client.ip, name, action)