def _Create(self, args, var_resource, value): variable_client = util.VariableClient() messages = util.Messages() project = var_resource.projectsId config = var_resource.configsId result = variable_client.Create( messages.RuntimeconfigProjectsConfigsVariablesCreateRequest( parent=util.ConfigPath(project, config), variable=messages.Variable( name=var_resource.RelativeName(), value=value if not args.is_text else None, text=value if args.is_text else None, ))) log.CreatedResource(var_resource) return util.FormatVariable(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 testConfigPath(self): self.assertEqual('projects/my-project/configs/my-config', util.ConfigPath('my-project', 'my-config'))