コード例 #1
0
ファイル: mixins.py プロジェクト: UPCnet/gummanager.libs
    def start(self, instance_name, padded=False):
        if not padded:
            progress_log('Starting instance')
        status = self.get_status(instance_name)

        process_name = self.process_name(instance_name)
        supervisor = SupervisorControl(self.config)

        if status['status'] == 'unknown':
            padded_log('Unknown {} status ...')
        elif status['status'] == 'not found':
            supervisor.load(process_name)
        else:
            padded_log('Process stopped, starting ...')
            supervisor.start(process_name)

        padded_log('Waiting for process "{}" to start...'.format(process_name))

        retries = 10
        status = self.get_status(instance_name)

        while retries > 0 or status['status'] != 'running':
            sleep(0.5)
            status = self.get_status(instance_name)
            retries -= 1

        if status['status'] == 'running':
            padded_success('Process "{}" started'.format(process_name))
            return True
        elif status['status'] in ['fatal', 'backoff']:
            padded_error('Process "{}" not started, an error occurred'.format(process_name))
            return False
        else:
            padded_error('Process "{}" not started'.format(process_name))
            return False
コード例 #2
0
ファイル: mixins.py プロジェクト: UPCnet/gummanager.libs
    def stop(self, instance_name, padded=False):
        if not padded:
            progress_log('Stopping instance')

        process_name = self.process_name(instance_name)
        supervisor = SupervisorControl(self.config)

        supervisor.stop(process_name)

        padded_log('Waiting for "{}" instance to stop...'.format(instance_name))

        retries = 10
        status = self.get_status(instance_name)

        while retries > 0 or status['status'] != 'stopped':
            sleep(0.5)
            status = self.get_status(instance_name)
            retries -= 1

        status = self.get_status(instance_name)
        if status['status'].lower() == 'stopped':
            padded_success('Instance "{}" stopped'.format(instance_name))
            return True
        else:
            padded_error('Instance "{}" still active'.format(instance_name))
            return False
コード例 #3
0
ファイル: mixins.py プロジェクト: UPCnet/gummanager.libs
    def get_status(self, instance_name):
        process_name = self.process_name(instance_name)
        supervisor = SupervisorControl(self.config)

        status = supervisor.status(process_name)
        result_status = OrderedDict()
        result_status['name'] = instance_name
        result_status['server'] = 'http://{}:{}'.format(self.config.server, self.config.supervisor.port)
        result_status['status'] = status['status'].lower()
        result_status['pid'] = status['pid']

        result_status['uptime'] = status['uptime']
        return result_status