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
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))
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
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)
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)
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)
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