예제 #1
0
 def send_task(self,
               task_name,
               queue,
               deployment_id=None,
               args=None,
               kwargs=None,
               timeout=10,
               execution_env=None):
     cloudify_context = test_utils.op_context(task_name,
                                              task_target=queue,
                                              plugin_name=PLUGIN_NAME,
                                              execution_env=execution_env,
                                              deployment_id=deployment_id)
     kwargs = kwargs or {}
     kwargs['__cloudify_context'] = cloudify_context
     handler = amqp_client.BlockingRequestResponseHandler(queue)
     client = amqp_client.get_client()
     client.add_handler(handler)
     with client:
         task = {'cloudify_task': {'kwargs': kwargs}}
         result = handler.publish(task,
                                  routing_key='operation',
                                  timeout=timeout)
     error = result.get('error')
     if error:
         raise deserialize_known_exception(error)
     else:
         return result.get('result')
예제 #2
0
def _send_amqp_task(agent, params, timeout):
    if not _validate_cloudify_amqp(agent):
        raise RecoverableError('Agent is not responding')

    task = {'cloudify_task': {'kwargs': params}}
    handler = amqp_client.BlockingRequestResponseHandler(agent['queue'])

    with _get_amqp_client(agent) as client:
        client.add_handler(handler)
        with client:
            result = handler.publish(task, routing_key='operation',
                                     timeout=timeout)
    error = result.get('error')
    if error:
        raise deserialize_known_exception(error)