def testParseWaiterNameHttp(self): args = argparse.Namespace() url = ( 'https://runtimeconfig.googleapis.com/v1beta1/projects/other-proj' '/configs/other-config/waiters/my-waiter') resource = util.ParseWaiterName(url, args) self.assertEqual(resource.projectsId, 'other-proj') self.assertEqual(resource.configsId, 'other-config') self.assertEqual(resource.Name(), 'my-waiter')
def Run(self, args): """Run 'runtime-configs waiters wait'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The requested waiter, after waiting for it to succeed or fail. Raises: HttpException: An http error response was received while executing api request. OperationTimeoutError: If the waiter doesn't complete in time. """ waiter_resource = util.ParseWaiterName(args.name, args) result = util.WaitForWaiter(waiter_resource, max_wait=args.max_wait) if util.IsFailedWaiter(result): self.exit_code = 2 # exit with code 2 if the result waiter failed. return util.FormatWaiter(result)
def Run(self, args): """Run 'runtime-configs waiters delete'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Raises: HttpException: An http error response was received while executing api request. """ waiter_client = util.WaiterClient() messages = util.Messages() waiter_resource = util.ParseWaiterName(args.name, args) waiter_client.Delete( messages.RuntimeconfigProjectsConfigsWaitersDeleteRequest( name=waiter_resource.RelativeName(), )) log.DeletedResource(waiter_resource)
def Run(self, args): """Run 'runtime-configs waiters describe'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The requested waiter. Raises: HttpException: An http error response was received while executing api request. """ waiter_client = util.WaiterClient() messages = util.Messages() waiter_resource = util.ParseWaiterName(args.name, args) result = waiter_client.Get( messages.RuntimeconfigProjectsConfigsWaitersGetRequest( name=waiter_resource.RelativeName(), )) return util.FormatWaiter(result)
def Run(self, args): """Run 'runtime-configs waiters create'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The associated waiter operation. Raises: HttpException: An http error response was received while executing api request. """ waiter_client = util.WaiterClient() messages = util.Messages() waiter_resource = util.ParseWaiterName(args.name, args) project = waiter_resource.projectsId config = waiter_resource.configsId success = messages.EndCondition(cardinality=messages.Cardinality( path=args.success_cardinality_path, number=args.success_cardinality_number, )) if args.failure_cardinality_path: failure = messages.EndCondition(cardinality=messages.Cardinality( path=args.failure_cardinality_path, number=args.failure_cardinality_number, )) else: failure = None result = waiter_client.Create( messages.RuntimeconfigProjectsConfigsWaitersCreateRequest( parent=util.ConfigPath(project, config), waiter=messages.Waiter( name=waiter_resource.RelativeName(), timeout='{0}s'.format(args.timeout), success=success, failure=failure, ))) log.CreatedResource(waiter_resource) if args. async: # In async mode, we return the current waiter representation. # The waiter resource exists immediately after creation; the # operation resource returned from CreateWaiter only tracks the # waiting process. self._async_resource = waiter_resource request = (waiter_client.client.MESSAGES_MODULE. RuntimeconfigProjectsConfigsWaitersGetRequest( name=waiter_resource.RelativeName())) result = waiter_client.Get(request) else: self._async_resource = None result = util.WaitForWaiter(waiter_resource) if util.IsFailedWaiter(result): self.exit_code = 2 # exit with code 2 if the result waiter failed. return util.FormatWaiter(result)
def testParseWaiterName(self): args = argparse.Namespace(config_name='foo') resource = util.ParseWaiterName('bar', args) self.assertEqual(resource.projectsId, 'test-project') self.assertEqual(resource.configsId, 'foo') self.assertEqual(resource.Name(), 'bar')