def Run(self, args): """Run 'runtime-configs list'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Yields: The list of runtime-config resources. Raises: HttpException: An http error response was received while executing api request. """ config_client = util.ConfigClient() messages = util.Messages() project = util.Project() request = messages.RuntimeconfigProjectsConfigsListRequest( parent=util.ProjectPath(project), ) page_size = args.page_size or self.DEFAULT_PAGE_SIZE results = list_pager.YieldFromList( config_client, request, field='configs', batch_size_attribute='pageSize', limit=args.limit, batch_size=page_size, ) for result in results: yield util.FormatConfig(result)
def testListCustomPageSize(self): expected_request = self.messages.RuntimeconfigProjectsConfigsListRequest( parent='projects/{0}'.format(self.Project()), pageSize=55, ) configs = [ self.messages.RuntimeConfig( name='projects/{0}/configs/foobar1'.format(self.Project()), description='first config', ), self.messages.RuntimeConfig( name='projects/{0}/configs/foobar2'.format(self.Project()), description='second config', ), ] wrapped_result = self.messages.ListConfigsResponse( configs=configs, nextPageToken=None, ) self.config_client.List.Expect(expected_request, wrapped_result) got_result = self.RunRuntimeConfig('list --page-size 55') self.assertEqual([util.FormatConfig(c) for c in configs], list(got_result))
def Run(self, args): """Run 'runtime-configs update'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The updated runtime-config resource. Raises: HttpException: An http error response was received while executing api request. """ config_client = util.ConfigClient() messages = util.Messages() config_resource = util.ParseConfigName(args.name) result = config_client.Update( messages.RuntimeConfig( name=config_resource.RelativeName(), description=args.description, )) log.UpdatedResource(config_resource) return util.FormatConfig(result)
def testFormatConfig(self): config = MESSAGE_MODULE.RuntimeConfig( name='projects/my-project/configs/my-config', description='foobar') munged_config = { 'atomicName': 'projects/my-project/configs/my-config', 'name': 'my-config', 'description': 'foobar', } self.assertEqual(util.FormatConfig(config), munged_config)
def testUpdateWithEmptyDescription(self): config_name = 'projects/{0}/configs/foobar'.format(self.Project()) expected_request = self.messages.RuntimeConfig( name=config_name, description='', ) wanted_result = self.messages.RuntimeConfig(name=config_name, ) self.config_client.Update.Expect(expected_request, wanted_result) got_result = self.RunRuntimeConfig('update foobar --description=""') self.assertEqual(util.FormatConfig(wanted_result), got_result)
def testCreateWithoutDescription(self): project_name = 'projects/{0}'.format(self.Project()) config_name = 'projects/{0}/configs/foobar'.format(self.Project()) expected_request = self.messages.RuntimeconfigProjectsConfigsCreateRequest( parent=project_name, runtimeConfig=self.messages.RuntimeConfig(name=config_name, ), ) wanted_result = self.messages.RuntimeConfig(name=config_name, ) self.config_client.Create.Expect(expected_request, wanted_result) got_result = self.RunRuntimeConfig('create foobar') self.assertEqual(util.FormatConfig(wanted_result), got_result)
def testDescribe(self): config_name = 'projects/{0}/configs/foobar'.format(self.Project()) expected_request = self.messages.RuntimeconfigProjectsConfigsGetRequest( name=config_name, ) wanted_result = self.messages.RuntimeConfig( name=config_name, description='baz baz', ) self.config_client.Get.Expect(expected_request, wanted_result) got_result = self.RunRuntimeConfig('describe foobar') self.assertEqual(util.FormatConfig(wanted_result), got_result)
def testList(self): # Tests a list request with two pages. configs = [ self.messages.RuntimeConfig( name='projects/{0}/configs/foobar1'.format(self.Project()), description='first config', ), self.messages.RuntimeConfig( name='projects/{0}/configs/foobar2'.format(self.Project()), description='second config', ), ] request_1 = self.messages.RuntimeconfigProjectsConfigsListRequest( parent='projects/{0}'.format(self.Project()), pageSize=self.DEFAULT_PAGE_SIZE, ) request_2 = self.messages.RuntimeconfigProjectsConfigsListRequest( parent='projects/{0}'.format(self.Project()), pageSize=self.DEFAULT_PAGE_SIZE, pageToken='foobar', ) wrapped_result_1 = self.messages.ListConfigsResponse( configs=configs[:1], nextPageToken='foobar', ) wrapped_result_2 = self.messages.ListConfigsResponse( configs=configs[1:], nextPageToken=None, ) self.config_client.List.Expect(request_1, wrapped_result_1) self.config_client.List.Expect(request_2, wrapped_result_2) got_result = self.RunRuntimeConfig('list') self.assertEqual([util.FormatConfig(c) for c in configs], list(got_result))