예제 #1
0
    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)
예제 #2
0
    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))
예제 #3
0
    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)
예제 #4
0
 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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
  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)
예제 #8
0
    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))