Пример #1
0
    def succeeded(self, reply):
        """
        Notification (reply) indicating an RMI succeeded.
        This information is relayed to the task coordinator.
        :param reply: A successful reply object.
        :type reply: gofer.rmi.async.Succeeded
        """
        log.info(_('Task RMI (succeeded): %(r)s'), {'r': reply})

        call_context = dict(reply.any)
        action = call_context.get('action')
        task_id = call_context['task_id']
        result = dict(reply.retval)

        TaskStatusManager.set_task_succeeded(task_id, result=result, timestamp=reply.timestamp)

        if action == 'bind':
            if result['succeeded']:
                ReplyHandler._bind_succeeded(task_id, call_context)
            else:
                ReplyHandler._bind_failed(task_id, call_context)
            return
        if action == 'unbind':
            if result['succeeded']:
                ReplyHandler._unbind_succeeded(call_context)
            else:
                ReplyHandler._unbind_failed(task_id, call_context)
            return
Пример #2
0
    def succeeded(self, reply):
        """
        Notification (reply) indicating an RMI succeeded.
        This information is relayed to the task coordinator.
        :param reply: A successful reply object.
        :type reply: gofer.rmi.async.Succeeded
        """
        log.info('Task RMI (succeeded)\n%s', reply)

        call_context = dict(reply.any)
        action = call_context.get('action')
        task_id = call_context['task_id']
        result = dict(reply.retval)

        TaskStatusManager.set_task_succeeded(task_id, result)

        if action == 'bind':
            if result['succeeded']:
                ReplyHandler._bind_succeeded(task_id, call_context)
            else:
                ReplyHandler._bind_failed(task_id, call_context)
            return
        if action == 'unbind':
            if result['succeeded']:
                ReplyHandler._unbind_succeeded(call_context)
            else:
                ReplyHandler._unbind_failed(task_id, call_context)
            return
Пример #3
0
 def POST(self, uuid):
     """
     Agent (asynchronous) RMI call back.
     Update the related task by ID.
     """
     body = self.params()
     _LOG.info('agent (%s) reply:\n%s', uuid, body)
     task_id = body['any']
     if body['status'] == 200:
         result = body['reply']
         TaskStatusManager.set_task_succeeded(task_id, result)
     else:
         raised = body['exception']
         traceback = raised['xstate']['trace']
         TaskStatusManager.set_task_failed(task_id, traceback)
     return self.ok({})
Пример #4
0
Файл: agent.py Проект: omps/pulp
 def POST(self, uuid):
     """
     Agent (asynchronous) RMI call back.
     Update the related task by ID.
     """
     body = self.params()
     _LOG.info('agent (%s) reply:\n%s', uuid, body)
     task_id = body['any']
     if body['status'] == 200:
         result = body['reply']
         TaskStatusManager.set_task_succeeded(task_id, result)
     else:
         raised = body['exception']
         traceback = raised['xstate']['trace']
         TaskStatusManager.set_task_failed(task_id, traceback)
     return self.ok({})
Пример #5
0
    def test_set_succeeded(self, mock_update, mock_date):
        task_id = 'test'
        result = 'done'
        now = '1234'

        mock_date.return_value = now

        # test

        TaskStatusManager.set_task_succeeded(task_id, result)

        # validation

        delta = {
            'state': constants.CALL_FINISHED_STATE,
            'finish_time': now,
            'result': result
        }

        mock_update.assert_called_with(task_id=task_id, delta=delta)
Пример #6
0
    def test_set_succeeded(self, mock_update, mock_date):
        task_id = 'test'
        result = 'done'
        now = '1234'

        mock_date.return_value = now

        # test

        TaskStatusManager.set_task_succeeded(task_id, result)

        # validation

        delta = {
            'state': constants.CALL_FINISHED_STATE,
            'finish_time': now,
            'result': result
        }

        mock_update.assert_called_with(task_id=task_id, delta=delta)
    def test_set_succeeded_with_timestamp(self, get_collection):
        task_id = 'test'
        result = 'done'
        timestamp = '1234'

        collection = mock.Mock()
        get_collection.return_value = collection

        # test
        TaskStatusManager.set_task_succeeded(task_id, result=result, timestamp=timestamp)

        # validation
        select = {
            'task_id': task_id
        }
        update = {
            '$set': {
                'finish_time': timestamp,
                'state': constants.CALL_FINISHED_STATE,
                'result': result
            }
        }
        collection.update.assert_called_once_with(select, update, safe=True)