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 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)