def testParseCreateTaskArgs_Oidc(self): expected_config = _BETA_MESSAGES_MODULE.Task() schedule_time = self.schedule_time expected_config.scheduleTime = schedule_time http_method = _BETA_MESSAGES_MODULE.HttpRequest.HttpMethodValueValuesEnum( 'POST') expected_config.httpRequest = (_BETA_MESSAGES_MODULE.HttpRequest( httpMethod=http_method, url='http://somehost.com/paths/a/', oidcToken=_BETA_MESSAGES_MODULE.OidcToken( serviceAccountEmail='*****@*****.**', audience='some-audience'))) args = self.parser.parse_args([ '--schedule-time={}'.format(schedule_time), '--method=POST', 'my-task', '--queue=queue_name', '--url=http://somehost.com/paths/a/', '[email protected]', '--oidc-token-audience=some-audience' ]) actual_config = parsers.ParseCreateTaskArgs( args, constants.HTTP_TASK, _BETA_MESSAGES_MODULE, release_track=base.ReleaseTrack.BETA) self.assertEqual(actual_config, expected_config)
def testParseCreateTaskArgs_AllArgs_PayloadFile(self): expected_config = _BETA_MESSAGES_MODULE.Task() schedule_time = self.schedule_time expected_config.scheduleTime = schedule_time http_method = _BETA_MESSAGES_MODULE.HttpRequest.HttpMethodValueValuesEnum( 'POST') expected_config.httpRequest = (_BETA_MESSAGES_MODULE.HttpRequest( headers=encoding.DictToAdditionalPropertyMessage( { 'header1': 'value1', 'header2': 'value2' }, _BETA_MESSAGES_MODULE.HttpRequest.HeadersValue), httpMethod=http_method, body=b'body', url='http://somehost.com/paths/a/')) self.Touch(self.temp_path, 'body.txt', contents='body') payload_file = os.path.join(self.temp_path, 'body.txt') args = self.parser.parse_args([ '--schedule-time={}'.format(schedule_time), '--body-file={}'.format(payload_file), '--method=POST', 'my-task', '--queue=queue_id', '--url=http://somehost.com/paths/a/', '--header=header1:value1', '--header=header2:value2', ]) actual_config = parsers.ParseCreateTaskArgs( args, constants.HTTP_TASK, _BETA_MESSAGES_MODULE, release_track=base.ReleaseTrack.BETA) self.assertEqual(actual_config, expected_config)
def testParseCreateTaskArgs_AllArgs_PayloadFile(self): expected_config = _MESSAGES_MODULE.Task() schedule_time = self.schedule_time expected_config.scheduleTime = schedule_time http_method = (_MESSAGES_MODULE.AppEngineHttpRequest. HttpMethodValueValuesEnum('POST')) expected_config.appEngineHttpRequest = ( _MESSAGES_MODULE.AppEngineHttpRequest( appEngineRouting=_MESSAGES_MODULE.AppEngineRouting( service='abc'), headers=encoding.DictToAdditionalPropertyMessage( { 'header1': 'value1', 'header2': 'value2' }, _MESSAGES_MODULE.AppEngineHttpRequest.HeadersValue), httpMethod=http_method, body=b'body', relativeUri='/paths/a/')) self.Touch(self.temp_path, 'body.txt', contents='body') payload_file = os.path.join(self.temp_path, 'body.txt') args = self.parser.parse_args([ '--schedule-time={}'.format(schedule_time), '--body-file={}'.format(payload_file), '--method=POST', 'my-task', '--queue=queue_id', '--relative-uri=/paths/a/', '--header=header1:value1', '--header=header2:value2', '--routing=service:abc' ]) actual_config = parsers.ParseCreateTaskArgs(args, constants.APP_ENGINE_TASK, _MESSAGES_MODULE) self.assertEqual(actual_config, expected_config)
def Run(self, args): tasks_client = tasks.Tasks() queue_ref = parsers.ParseQueue(args.queue) task_ref = parsers.ParseTask(args.id, queue_ref) if args.id else None task_config = parsers.ParseCreateTaskArgs( args, constants.APP_ENGINE_QUEUE, tasks_client.api.messages) create_response = tasks_client.Create( queue_ref, task_ref, schedule_time=task_config.scheduleTime, app_engine_http_request=task_config.appEngineHttpRequest) log.CreatedResource(create_response.name, 'task') return create_response
def Run(self, args): tasks_client = tasks.Tasks() queue_ref = parsers.ParseQueue(args.queue, args.location) task_ref = parsers.ParseTask(args.id, queue_ref) if args.id else None task_config = parsers.ParseCreateTaskArgs(args, constants.PULL_QUEUE, tasks_client.api.messages) create_response = tasks_client.Create( queue_ref, task_ref, schedule_time=task_config.scheduleTime, pull_message=task_config.pullMessage) log.CreatedResource(create_response.name, 'task') return create_response
def Run(self, args): api = GetApiAdapter(self.ReleaseTrack()) tasks_client = api.tasks queue_ref = parsers.ParseQueue(args.queue, args.location) task_ref = parsers.ParseTask(args.task, queue_ref) if args.task else None task_config = parsers.ParseCreateTaskArgs( args, constants.PULL_QUEUE, api.messages, is_alpha=True) create_response = tasks_client.Create( queue_ref, task_ref, schedule_time=task_config.scheduleTime, pull_message=task_config.pullMessage) log.CreatedResource(create_response.name, 'task') return create_response
def Run(self, args): api = GetApiAdapter(self.ReleaseTrack()) tasks_client = api.tasks queue_ref = parsers.ParseQueue(args.queue, args.location) task_ref = parsers.ParseTask(args.task, queue_ref) if args.task else None task_config = parsers.ParseCreateTaskArgs(args, constants.PUSH_QUEUE, api.messages) create_response = tasks_client.Create( queue_ref, task_ref, schedule_time=task_config.scheduleTime, app_engine_http_request=task_config.appEngineHttpRequest) log.CreatedResource(create_response.name, 'task') return create_response
def testParseCreateTaskArgs_RepeatedHeadersKey(self): expected_config = _MESSAGES_MODULE.Task() expected_config.appEngineHttpRequest = ( _MESSAGES_MODULE.AppEngineHttpRequest( headers=encoding.DictToAdditionalPropertyMessage( {'header': 'value2'}, _MESSAGES_MODULE.AppEngineHttpRequest.HeadersValue))) args = self.parser.parse_args([ 'my-task', '--queue=queue_id', '--header=header:value1', '--header=header:value2' ]) actual_config = parsers.ParseCreateTaskArgs(args, constants.APP_ENGINE_TASK, _MESSAGES_MODULE) self.assertEqual(actual_config, expected_config)
def testParseCreateTaskArgs_AllArgs_PayloadContent(self): expected_config = _ALPHA_MESSAGES_MODULE.Task() schedule_time = self.schedule_time expected_config.scheduleTime = schedule_time expected_config.pullMessage = _ALPHA_MESSAGES_MODULE.PullMessage( tag='tag', payload=b'payload') args = self.parser.parse_args([ '--schedule-time={}'.format(schedule_time), '--tag=tag', '--payload-content=payload', '--queue=queue_id', 'my-task' ]) actual_config = parsers.ParseCreateTaskArgs( args, constants.PULL_TASK, _ALPHA_MESSAGES_MODULE, release_track=base.ReleaseTrack.ALPHA) self.assertEqual(actual_config, expected_config)
def testParseCreateTaskArgs_RepeatedHeadersKey(self): expected_config = _BETA_MESSAGES_MODULE.Task() expected_config.httpRequest = (_BETA_MESSAGES_MODULE.HttpRequest( headers=encoding.DictToAdditionalPropertyMessage( {'header': 'value2'}, _BETA_MESSAGES_MODULE.HttpRequest.HeadersValue), url='http://somehost.com/paths/a/')) args = self.parser.parse_args([ 'my-task', '--queue=queue_id', '--header=header:value1', '--header=header:value2', '--url=http://somehost.com/paths/a/' ]) actual_config = parsers.ParseCreateTaskArgs( args, constants.HTTP_TASK, _BETA_MESSAGES_MODULE, release_track=base.ReleaseTrack.BETA) self.assertEqual(actual_config, expected_config)
def testParseCreateTaskArgs_AllArgs_PayloadFile(self): expected_config = _ALPHA_MESSAGES_MODULE.Task() schedule_time = self.schedule_time expected_config.scheduleTime = schedule_time expected_config.pullMessage = _ALPHA_MESSAGES_MODULE.PullMessage( tag='tag', payload=b'payload') self.Touch(self.temp_path, 'payload.txt', contents='payload') payload_file = os.path.join(self.temp_path, 'payload.txt') args = self.parser.parse_args([ '--schedule-time={}'.format(schedule_time), '--tag=tag', '--queue=queue_name', 'my-task', '--payload-file={}'.format(payload_file) ]) actual_config = parsers.ParseCreateTaskArgs( args, constants.PULL_TASK, _ALPHA_MESSAGES_MODULE, release_track=base.ReleaseTrack.ALPHA) self.assertEqual(actual_config, expected_config)
def Run(self, args): if self.ReleaseTrack() == base.ReleaseTrack.ALPHA: # This functionality doesn't exist in the alpha API so use beta. api_release_track = base.ReleaseTrack.BETA else: api_release_track = self.ReleaseTrack() api = GetApiAdapter(api_release_track) tasks_client = api.tasks queue_ref = parsers.ParseQueue(args.queue, args.location) task_ref = parsers.ParseTask(args.task, queue_ref) if args.task else None task_config = parsers.ParseCreateTaskArgs( args, constants.HTTP_TASK, api.messages, release_track=api_release_track) create_response = tasks_client.Create( queue_ref, task_ref, schedule_time=task_config.scheduleTime, http_request=task_config.httpRequest) log.CreatedResource(create_response.name, 'task') return create_response