示例#1
0
    def stop_task(self, context, task_id):
        unit = session.get_session()
        task_object = unit.query(models.Task).filter_by(id=task_id).first()
        task_object.status = 'Stopping'
        task_object.action = 'stop'
        with unit.begin():
            unit.add(task_object)

        rpc.cast(task_object.component_name, 'handle_task', task={
            'action': 'stop',
            'services': task_object.service_list,
            'id': task_object.id
        })
示例#2
0
    def create_task(self, context, service_list):
        unit = session.get_session()
        component_names = []
        tasks_list = []

        for service_name in service_list:
            cur_component = service_name.split('-')[0]
            if cur_component not in component_names:
                component_names.append(cur_component)

        for component in component_names:
            task_object = models.Task()
            task_object.status = 'Scheduled'

            task_object.service_list = service_list
            task_object.component_name = component
            task_object.action = 'start'

            component_service_list = []

            for service_name in service_list:
                if component in service_name:
                    component_service_list.append(component)

            rpc.cast(component, 'handle_task', task={
                'action': 'start',
                'services': component_service_list,
                'id': task_object.id
            })

            with unit.begin():
                unit.add(task_object)

            tasks_list.append(task_object.id)

        return {'task_id': tasks_list}