def Run(self, args):
    service = tags.TagKeysService()
    messages = tags.TagMessages()

    if args.RESOURCE_NAME.find('tagKeys/') == 0:
      tag_key = args.RESOURCE_NAME
    else:
      tag_key = tag_utils.GetTagKeyFromNamespacedName(
          args.RESOURCE_NAME).name

    get_iam_policy_req = (
        messages.CloudresourcemanagerTagKeysGetIamPolicyRequest(
            resource=tag_key))
    policy = service.GetIamPolicy(get_iam_policy_req)
    condition = iam_util.ValidateAndExtractConditionMutexRole(args)
    iam_util.AddBindingToIamPolicyWithCondition(messages.Binding, messages.Expr,
                                                policy, args.member, args.role,
                                                condition)

    set_iam_policy_request = messages.SetIamPolicyRequest(policy=policy)
    request = messages.CloudresourcemanagerTagKeysSetIamPolicyRequest(
        resource=tag_key, setIamPolicyRequest=set_iam_policy_request)
    result = service.SetIamPolicy(request)
    iam_util.LogSetIamPolicy(tag_key, 'TagKey')
    return result
Beispiel #2
0
  def Run(self, args):
    service = tags.TagKeysService()
    messages = tags.TagMessages()

    tag_parent = args.parent

    list_request = messages.CloudresourcemanagerTagKeysListRequest(
        parent=tag_parent)
    response = service.List(list_request)
    return response.tagKeys
Beispiel #3
0
    def Run(self, args):
        service = tags.TagKeysService()
        messages = tags.TagMessages()

        if args.RESOURCE_NAME.find('tagKeys/') == 0:
            tag_key = args.RESOURCE_NAME
        else:
            tag_key = tag_utils.GetTagKeyFromNamespacedName(
                args.RESOURCE_NAME).name

        get_request = messages.CloudresourcemanagerTagKeysGetRequest(
            name=tag_key)
        return service.Get(get_request)
Beispiel #4
0
    def Run(self, args):
        service = tags.TagKeysService()
        messages = tags.TagMessages()

        if args.RESOURCE_NAME.find('tagKeys/') == 0:
            tag_key = args.RESOURCE_NAME
        else:
            tag_key = tag_utils.GetTagKeyFromNamespacedName(
                args.RESOURCE_NAME).name

        policy = iam_util.ParsePolicyFile(args.POLICY_FILE, messages.Policy)
        policy.version = iam_util.MAX_LIBRARY_IAM_SUPPORTED_VERSION

        set_iam_policy_request = messages.SetIamPolicyRequest(policy=policy)

        request = messages.CloudresourcemanagerTagKeysSetIamPolicyRequest(
            resource=tag_key, setIamPolicyRequest=set_iam_policy_request)
        result = service.SetIamPolicy(request)
        iam_util.LogSetIamPolicy(tag_key, 'TagKey')
        return result
Beispiel #5
0
    def Run(self, args):
        service = tags.TagKeysService()
        messages = tags.TagMessages()

        if args.RESOURCE_NAME.find('tagKeys/') == 0:
            tag_key = args.RESOURCE_NAME
        else:
            tag_key = tag_utils.GetTagKeyFromNamespacedName(
                args.RESOURCE_NAME).name

        delete_request = messages.CloudresourcemanagerTagKeysDeleteRequest(
            name=tag_key)

        op = service.Delete(delete_request)

        if args.async_:
            return op

        return operations.WaitForOperation(
            op,
            'Waiting for TagKey [{}] to be deleted'.format(tag_key),
            service=service)
Beispiel #6
0
    def Run(self, args):
        service = tags.TagKeysService()
        messages = tags.TagMessages()

        short_name = args.short_name
        tag_parent = args.parent
        description = args.description

        tag_key = messages.TagKey(shortName=short_name,
                                  parent=tag_parent,
                                  description=description)
        create_req = messages.CloudresourcemanagerTagKeysCreateRequest(
            tagKey=tag_key)
        op = service.Create(create_req)

        if args.async_:
            return op

        return operations.WaitForOperation(
            op,
            "Waiting for TagKey [{}] to be created".format(short_name),
            service=service)