def _Dynamic_Add(self, request, response, request_id=None): """Add a single task to a queue. Must adhere to the '_Dynamic_' naming convention for stubbing to work. See taskqueue_service.proto for a full description of the RPC. Args: request: The taskqueue_service_pb.TaskQueueAddRequest. See taskqueue_service.proto. response: The taskqueue_service_pb.TaskQueueAddResponse. See taskqueue_service.proto. request_id: A string specifying the request ID. """ bulk_request = taskqueue_service_pb.TaskQueueBulkAddRequest() bulk_response = taskqueue_service_pb.TaskQueueBulkAddResponse() bulk_request.add_add_request().CopyFrom(request) self._Dynamic_BulkAdd(bulk_request, bulk_response, request_id) assert bulk_response.taskresult_size() == 1 result = bulk_response.taskresult(0).result() if result != taskqueue_service_pb.TaskQueueServiceError.OK: raise apiproxy_errors.ApplicationError(result) elif bulk_response.taskresult(0).has_chosen_task_name(): response.set_chosen_task_name( bulk_response.taskresult(0).chosen_task_name())
def __AddTasks(self, tasks, transactional, fill_request): """Internal implementation of adding tasks where tasks must be a list.""" if len(tasks) > MAX_TASKS_PER_ADD: raise TooManyTasksError( 'No more than %d tasks can be added in a single call' % MAX_TASKS_PER_ADD) request = taskqueue_service_pb.TaskQueueBulkAddRequest() response = taskqueue_service_pb.TaskQueueBulkAddResponse() task_names = set() for task in tasks: if task.name: if task.name in task_names: raise DuplicateTaskNameError( 'The task name %r is used more than once in the request' % task.name) task_names.add(task.name) if task.was_enqueued: raise BadTaskStateError('Task has already been enqueued.') fill_request(task, request.add_add_request(), transactional) try: apiproxy_stub_map.MakeSyncCall('taskqueue', 'BulkAdd', request, response) except apiproxy_errors.ApplicationError, e: raise self.__TranslateError(e.application_error, e.error_detail)
def _Dynamic_Add(self, request, response): bulk_request = taskqueue_service_pb.TaskQueueBulkAddRequest() bulk_response = taskqueue_service_pb.TaskQueueBulkAddResponse() bulk_request.add_add_request().CopyFrom(request) self._Dynamic_BulkAdd(bulk_request, bulk_response) assert bulk_response.taskresult_size() == 1 result = bulk_response.taskresult(0).result() if result != taskqueue_service_pb.TaskQueueServiceError.OK: raise apiproxy_errors.ApplicationError(result) elif bulk_response.taskresult(0).has_chosen_task_name(): response.set_chosen_task_name( bulk_response.taskresult(0).chosen_task_name())
def __AddTasks(self, tasks, transactional): """Internal implementation of .add() where tasks must be a list.""" request = taskqueue_service_pb.TaskQueueBulkAddRequest() response = taskqueue_service_pb.TaskQueueBulkAddResponse() task_names = set() for task in tasks: if task.name: if task.name in task_names: raise DuplicateTaskNameError( 'The task name %r is used more than once in the request' % task.name) task_names.add(task.name) self.__FillAddRequest(task, request.add_add_request(), transactional) try: apiproxy_stub_map.MakeSyncCall('taskqueue', 'BulkAdd', request, response) except apiproxy_errors.ApplicationError, e: raise self.__TranslateError(e.application_error, e.error_detail)