Exemple #1
0
    def Run(self, args):
        labelkeys_service = labelmanager.LabelKeysService()
        labelmanager_messages = labelmanager.LabelManagerMessages()

        if args.IsSpecified('label_parent'):
            label_key = utils.GetLabelKeyFromDisplayName(
                args.LABEL_KEY_ID, args.label_parent)
        else:
            label_key = args.LABEL_KEY_ID

        get_iam_policy_req = (
            labelmanager_messages.LabelmanagerLabelKeysGetIamPolicyRequest(
                resource=label_key))
        policy = labelkeys_service.GetIamPolicy(get_iam_policy_req)
        condition = iam_util.ValidateAndExtractConditionMutexRole(args)
        iam_util.RemoveBindingFromIamPolicyWithCondition(
            policy, args.member, args.role, condition, args.all)

        set_iam_policy_request = labelmanager_messages.SetIamPolicyRequest(
            policy=policy)
        request = labelmanager_messages.LabelmanagerLabelKeysSetIamPolicyRequest(
            resource=label_key, setIamPolicyRequest=set_iam_policy_request)
        result = labelkeys_service.SetIamPolicy(request)
        iam_util.LogSetIamPolicy(label_key, 'LabelKey')
        return result
Exemple #2
0
def GetLabelKeyFromDisplayName(display_name, label_parent):
    """Returns the LabelKey with display_name under label_parent if it exists.

  Args:
    display_name: String, display name of the LabelKey
    label_parent: String, resource name of the parent of the LabelKey

  Raises:
    InvalidInputError: if the specified display_name does not exist under the
    label_parent

  Returns:
    The resource name of the LabelKey associated with the display_name
  """
    labelkeys_service = labelmanager.LabelKeysService()
    labelmanager_messages = labelmanager.LabelManagerMessages()

    list_request = labelmanager_messages.LabelmanagerLabelKeysListRequest(
        parent=label_parent)
    response = labelkeys_service.List(list_request)

    for key in response.keys:
        if key.displayName == display_name:
            return key.name

    raise InvalidInputError(
        'Invalid display_name for LabelKey [{}] in parent [{}]'.format(
            display_name, label_parent))
Exemple #3
0
  def Run(self, args):
    labelkeys_service = labelmanager.LabelKeysService()
    labelmanager_messages = labelmanager.LabelManagerMessages()

    label_parent = args.label_parent

    list_request = labelmanager_messages.LabelmanagerLabelKeysListRequest(
        parent=label_parent)
    response = labelkeys_service.List(list_request)
    return response.keys
Exemple #4
0
    def Run(self, args):
        labelkeys_service = labelmanager.LabelKeysService()
        labelmanager_messages = labelmanager.LabelManagerMessages()

        if args.IsSpecified('label_parent'):
            label_key = utils.GetLabelKeyFromDisplayName(
                args.LABEL_KEY_ID, args.label_parent)
        else:
            label_key = args.LABEL_KEY_ID

        request = labelmanager_messages.LabelmanagerLabelKeysGetIamPolicyRequest(
            resource=label_key)
        return labelkeys_service.GetIamPolicy(request)
    def Run(self, args):
        labelkeys_service = labelmanager.LabelKeysService()
        labelmanager_messages = labelmanager.LabelManagerMessages()

        label_key_id = args.LABEL_KEY_ID

        if args.IsSpecified('label_parent'):
            label_key = utils.GetLabelKeyFromDisplayName(
                label_key_id, args.label_parent)
        else:
            label_key = label_key_id

        get_request = labelmanager_messages.LabelmanagerLabelKeysGetRequest(
            name=label_key)
        return labelkeys_service.Get(get_request)
Exemple #6
0
def WaitForOperation(operation, message):
  """Waits for the given google.longrunning.Operation to complete.

  Args:
    operation: The operation to poll.
    message: String to display for default progress_tracker.

  Raises:
    apitools.base.py.HttpError: if the request returns an HTTP error

  Returns:
    The created Label Keyresource.
  """
  operation_ref = resources.REGISTRY.Parse(
      operation.name, collection='labelmanager.operations')
  poller = waiter.CloudOperationPoller(labelmanager.LabelKeysService(),
                                       labelmanager.OperationsService())
  return waiter.WaitFor(poller, operation_ref, message)
Exemple #7
0
  def Run(self, args):
    labelkeys_service = labelmanager.LabelKeysService()
    labelmanager_messages = labelmanager.LabelManagerMessages()

    display_name = args.DISPLAY_NAME
    label_parent = args.label_parent
    description = args.description

    create_request = labelmanager_messages.LabelKey(
        displayName=display_name, parent=label_parent, description=description)
    op = labelkeys_service.Create(create_request)

    if args.async_:
      return op
    else:
      done_op = operations.WaitForOperation(
          op, 'Waiting for label [{}] to be created with [{}]'.format(
              display_name, op.name))
      return done_op
    def Run(self, args):
        labelkeys_service = labelmanager.LabelKeysService()
        labelmanager_messages = labelmanager.LabelManagerMessages()

        if args.IsSpecified('label_parent'):
            label_key = utils.GetLabelKeyFromDisplayName(
                args.LABEL_KEY_ID, args.label_parent)
        else:
            label_key = args.LABEL_KEY_ID

        delete_request = labelmanager_messages.LabelmanagerLabelKeysDeleteRequest(
            name=label_key)
        op = labelkeys_service.Delete(delete_request)

        if op.response is not None:
            response_dict = encoding.MessageToPyValue(op.response)
            del response_dict['@type']
            return response_dict
        else:
            raise operations.OperationError(op.error.message)
Exemple #9
0
  def Run(self, args):
    labelkeys_service = labelmanager.LabelKeysService()
    labelmanager_messages = labelmanager.LabelManagerMessages()

    if args.IsSpecified('label_parent'):
      label_key = utils.GetLabelKeyFromDisplayName(args.LABEL_KEY_ID,
                                                   args.label_parent)
    else:
      label_key = args.LABEL_KEY_ID

    delete_request = labelmanager_messages.LabelmanagerLabelKeysDeleteRequest(
        name=label_key)
    op = labelkeys_service.Delete(delete_request)

    if args.async_:
      return op
    else:
      done_op = operations.WaitForOperation(
          op, 'Waiting for label [{}] to be deleted with [{}]'.format(
              args.LABEL_KEY_ID, op.name), labelkeys_service)
      return done_op
    def Run(self, args):
        labelkeys_service = labelmanager.LabelKeysService()
        labelmanager_messages = labelmanager.LabelManagerMessages()

        if args.IsSpecified('label_parent'):
            label_key = utils.GetLabelKeyFromDisplayName(
                args.LABEL_KEY_ID, args.label_parent)
        else:
            label_key = args.LABEL_KEY_ID

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

        set_iam_policy_request = labelmanager_messages.SetIamPolicyRequest(
            policy=policy)

        request = labelmanager_messages.LabelmanagerLabelKeysSetIamPolicyRequest(
            resource=label_key, setIamPolicyRequest=set_iam_policy_request)
        result = labelkeys_service.SetIamPolicy(request)
        iam_util.LogSetIamPolicy(label_key, 'LabelKey')
        return result