Esempio n. 1
0
    def Run(self, args):
        project = properties.VALUES.core.project.Get(required=True)

        result = self.iam_client.projects_serviceAccounts.Create(
            self.messages.IamProjectsServiceAccountsCreateRequest(
                name=iam_util.ProjectToProjectResourceName(project),
                createServiceAccountRequest=self.messages.
                CreateServiceAccountRequest(
                    accountId=args.name,
                    serviceAccount=self.messages.ServiceAccount(
                        displayName=args.display_name))))
        log.CreatedResource(args.name, kind='service account')
        return result
Esempio n. 2
0
    def Run(self, args):
        if args.limit is not None:
            if args.limit < 1:
                raise exceptions.ToolException('Limit size must be >=1')

        project = properties.VALUES.core.project.Get(required=True)
        for item in list_pager.YieldFromList(
                self.iam_client.projects_serviceAccounts,
                self.messages.IamProjectsServiceAccountsListRequest(
                    name=iam_util.ProjectToProjectResourceName(project)),
                field='accounts',
                limit=args.limit,
                batch_size_attribute='pageSize'):
            yield item
Esempio n. 3
0
def _CreateServiceAccount(account_name, display_name, description):
  """Creates a service account with the provided name and display name."""
  project_ref = projects_util.ParseProject(properties.VALUES.core.project.Get())

  client, messages = iam_api_util.GetClientAndMessages()
  result = client.projects_serviceAccounts.Create(
      messages.IamProjectsServiceAccountsCreateRequest(
          name=iam_util.ProjectToProjectResourceName(project_ref.Name()),
          createServiceAccountRequest=messages.CreateServiceAccountRequest(
              accountId=account_name,
              serviceAccount=messages.ServiceAccount(
                  displayName=display_name,
                  description=description))))
  log.CreatedResource(account_name, kind='service account')
  return result
Esempio n. 4
0
    def ListServiceAccounts(self, project):
        """Lists all service accounts within a particular project.

    Args:
      project: The project string to search for the service account in.

    Returns:
      A list of service account message objects.
    """
        messages = self._iam_client.MESSAGES_MODULE

        response = self._iam_client.projects_serviceAccounts.List(
            messages.IamProjectsServiceAccountsListRequest(
                name=iam_util.ProjectToProjectResourceName(project)))

        return response.accounts
Esempio n. 5
0
  def Run(self, args):
    if args.limit is not None:
      if args.limit < 1:
        raise exceptions.InvalidArgumentException('Limit size must be >=1')

    project = properties.VALUES.core.project.Get(required=True)
    client, messages = util.GetClientAndMessages()
    for item in list_pager.YieldFromList(
        client.projects_serviceAccounts,
        messages.IamProjectsServiceAccountsListRequest(
            name=iam_util.ProjectToProjectResourceName(project)),
        field='accounts',
        limit=args.limit,
        batch_size_attribute='pageSize'):
      item.disabled = bool(item.disabled)
      yield item
Esempio n. 6
0
    def CreateServiceAccount(self, project, account_id):
        """Creates a service account within the provided project.

    Args:
      project: The project string to create a service account within.
      account_id: The string id to create the service account with.

    Returns:
      A string email of the service account.
    """
        messages = self._iam_client.MESSAGES_MODULE
        response = self._iam_client.projects_serviceAccounts.Create(
            messages.IamProjectsServiceAccountsCreateRequest(
                name=iam_util.ProjectToProjectResourceName(project),
                createServiceAccountRequest=messages.
                CreateServiceAccountRequest(accountId=account_id)))
        return response.email