This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new f909896  RANGER-2734: updated Atlas plugin for new operations in Atlas 
- add/remove label, update-namespace, admin-purge
f909896 is described below

commit f909896df1310cf198509e5eac474402c9473b47
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Tue Feb 18 14:12:52 2020 -0800

    RANGER-2734: updated Atlas plugin for new operations in Atlas - add/remove 
label, update-namespace, admin-purge
---
 .../service-defs/ranger-servicedef-atlas.json      | 389 ++++++++++++---------
 .../atlas/authorizer/RangerAtlasAuthorizer.java    |  12 +
 .../ranger/services/atlas/RangerServiceAtlas.java  |   2 +
 3 files changed, 245 insertions(+), 158 deletions(-)

diff --git 
a/agents-common/src/main/resources/service-defs/ranger-servicedef-atlas.json 
b/agents-common/src/main/resources/service-defs/ranger-servicedef-atlas.json
index 7a6f0b9..9355b71 100644
--- a/agents-common/src/main/resources/service-defs/ranger-servicedef-atlas.json
+++ b/agents-common/src/main/resources/service-defs/ranger-servicedef-atlas.json
@@ -1,17 +1,18 @@
 {
-        "id": 15,
+       "id": 15,
        "name": "atlas",
        "displayName": "atlas",
        "implClass": "org.apache.ranger.services.atlas.RangerServiceAtlas",
        "label": "Atlas Metadata Server",
        "description": "Atlas Metadata Server",
        "guid": "311a79b7-16f5-46f4-9829-a0224b9999c5",
-        "resources": [{
+       "resources": [
+               {
                        "itemId": 1,
                        "name": "type-category",
                        "type": "string",
                        "level": 10,
-                        "mandatory": true,
+                       "mandatory": true,
                        "lookupSupported": true,
                        "recursiveSupported": false,
                        "excludesSupported": true,
@@ -28,8 +29,9 @@
                        "name": "type",
                        "type": "string",
                        "level": 20,
-                        "mandatory": true,
+                       "mandatory": true,
                        "parent": "type-category",
+                       "isValidLeaf": true,
                        "lookupSupported": true,
                        "recursiveSupported": false,
                        "excludesSupported": true,
@@ -40,14 +42,14 @@
                        },
                        "label": "Type Name",
                        "description": "Type Name",
-                        "accessTypeRestrictions": ["type-create", 
"type-update", "type-delete"]
+                       "accessTypeRestrictions": ["type-create", 
"type-update", "type-delete"]
                },
                {
                        "itemId": 3,
                        "name": "entity-type",
                        "type": "string",
                        "level": 10,
-                        "mandatory": true,
+                       "mandatory": true,
                        "lookupSupported": true,
                        "recursiveSupported": false,
                        "excludesSupported": true,
@@ -64,7 +66,7 @@
                        "name": "entity-classification",
                        "type": "string",
                        "level": 20,
-                        "mandatory": true,
+                       "mandatory": true,
                        "parent": "entity-type",
                        "lookupSupported": true,
                        "recursiveSupported": false,
@@ -82,8 +84,9 @@
                        "name": "entity",
                        "type": "string",
                        "level": 30,
-                        "mandatory": true,
+                       "mandatory": true,
                        "parent": "entity-classification",
+                       "isValidLeaf": true,
                        "lookupSupported": true,
                        "recursiveSupported": false,
                        "excludesSupported": true,
@@ -94,14 +97,14 @@
                        },
                        "label": "Entity ID",
                        "description": "Entity ID",
-                        "accessTypeRestrictions": ["entity-read", 
"entity-create", "entity-update", "entity-delete", "entity-add-classification", 
"entity-update-classification", "entity-remove-classification"]
+                       "accessTypeRestrictions": ["entity-read", 
"entity-create", "entity-update", "entity-delete", "entity-add-classification", 
"entity-update-classification", "entity-remove-classification"]
                },
                {
                        "itemId": 6,
                        "name": "atlas-service",
                        "type": "string",
                        "level": 10,
-                        "mandatory": true,
+                       "mandatory": true,
                        "lookupSupported": true,
                        "recursiveSupported": false,
                        "excludesSupported": true,
@@ -112,138 +115,187 @@
                        },
                        "label": "Atlas Service",
                        "description": "Atlas Service",
-                        "accessTypeRestrictions": ["admin-import", 
"admin-export"]
-                }, {
-                        "itemId": 7,
-                        "name": "relationship-type",
-                        "type": "string",
-                        "level": 10,
-                        "mandatory": true,
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "Relationship Type",
-                        "description": "Relationship Type"
-                }, {
-                        "itemId": 8,
-                        "name": "end-one-entity-type",
-                        "type": "string",
-                        "level": 20,
-                        "mandatory": true,
-                        "parent": "relationship-type",
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "End1 Entity Type",
-                        "description": "End1 Entity Type"
-                },
-                {
-                        "itemId": 9,
-                        "name": "end-one-entity-classification",
-                        "type": "string",
-                        "level": 30,
-                        "mandatory": true,
-                        "parent": "end-one-entity-type",
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "End1 Entity Classification",
-                        "description": "End1 Entity Classification"
-                },
-                {
-                        "itemId": 10,
-                        "name": "end-one-entity",
-                        "type": "string",
-                        "level": 40,
-                        "mandatory": true,
-                        "parent": "end-one-entity-classification",
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "End1 Entity ID",
-                        "description": "End1 Entity ID"
-                },
-                {
-                        "itemId": 11,
-                        "name": "end-two-entity-type",
-                        "type": "string",
-                        "level": 50,
-                        "mandatory": true,
-                        "parent": "end-one-entity",
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "End2 Entity Type",
-                        "description": "End2 Entity Type"
-                },
-                {
-                        "itemId": 12,
-                        "name": "end-two-entity-classification",
-                        "type": "string",
-                        "level": 60,
-                        "mandatory": true,
-                        "parent": "end-two-entity-type",
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "End2 Entity Classification",
-                        "description": "End2 Entity Classification"
-                },
-                {
-                        "itemId": 13,
-                        "name": "end-two-entity",
-                        "type": "string",
-                        "level": 70,
-                        "mandatory": true,
-                        "parent": "end-two-entity-classification",
-                        "lookupSupported": true,
-                        "recursiveSupported": false,
-                        "excludesSupported": true,
-                        "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
-                        "matcherOptions": {
-                                "wildCard": "true",
-                                "ignoreCase": "true"
-                        },
-                        "label": "End2 Entity ID",
-                        "description": "End2 Entity ID",
-                        "accessTypeRestrictions": [
-                                "add-relationship",
-                                "update-relationship",
-                                "remove-relationship"
-                        ]
+                       "accessTypeRestrictions": ["admin-import", 
"admin-export"]
+               },
+               {
+                       "itemId": 7,
+                       "name": "relationship-type",
+                       "type": "string",
+                       "level": 10,
+                       "mandatory": true,
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                                       "wildCard": "true",
+                                       "ignoreCase": "true"
+                       },
+                       "label": "Relationship Type",
+                       "description": "Relationship Type"
+               },
+               {
+                       "itemId": 8,
+                       "name": "end-one-entity-type",
+                       "type": "string",
+                       "level": 20,
+                       "mandatory": true,
+                       "parent": "relationship-type",
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "End1 Entity Type",
+                       "description": "End1 Entity Type"
+               },
+               {
+                       "itemId": 9,
+                       "name": "end-one-entity-classification",
+                       "type": "string",
+                       "level": 30,
+                       "mandatory": true,
+                       "parent": "end-one-entity-type",
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "End1 Entity Classification",
+                       "description": "End1 Entity Classification"
+               },
+               {
+                       "itemId": 10,
+                       "name": "end-one-entity",
+                       "type": "string",
+                       "level": 40,
+                       "mandatory": true,
+                       "parent": "end-one-entity-classification",
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "End1 Entity ID",
+                       "description": "End1 Entity ID"
+               },
+               {
+                       "itemId": 11,
+                       "name": "end-two-entity-type",
+                       "type": "string",
+                       "level": 50,
+                       "mandatory": true,
+                       "parent": "end-one-entity",
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "End2 Entity Type",
+                       "description": "End2 Entity Type"
+               },
+               {
+                       "itemId": 12,
+                       "name": "end-two-entity-classification",
+                       "type": "string",
+                       "level": 60,
+                       "mandatory": true,
+                       "parent": "end-two-entity-type",
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "End2 Entity Classification",
+                       "description": "End2 Entity Classification"
+               },
+               {
+                       "itemId": 13,
+                       "name": "end-two-entity",
+                       "type": "string",
+                       "level": 70,
+                       "mandatory": true,
+                       "parent": "end-two-entity-classification",
+                       "isValidLeaf": true,
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "End2 Entity ID",
+                       "description": "End2 Entity ID",
+                       "accessTypeRestrictions": [
+                               "add-relationship",
+                               "update-relationship",
+                               "remove-relationship"
+                       ]
+               },
+               {
+                       "itemId": 14,
+                       "name": "entity-label",
+                       "type": "string",
+                       "level": 40,
+                       "mandatory": true,
+                       "parent": "entity",
+                       "isValidLeaf": true,
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "Label",
+                       "description": "Label",
+                       "accessTypeRestrictions": [
+                               "entity-add-label",
+                               "entity-remove-label"
+                       ]
+               },
+               {
+                       "itemId": 15,
+                       "name": "entity-namespace",
+                       "type": "string",
+                       "level": 40,
+                       "mandatory": true,
+                       "parent": "entity",
+                       "isValidLeaf": true,
+                       "lookupSupported": true,
+                       "recursiveSupported": false,
+                       "excludesSupported": true,
+                       "matcher": 
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+                       "matcherOptions": {
+                               "wildCard": "true",
+                               "ignoreCase": "true"
+                       },
+                       "label": "Namespace",
+                       "description": "Namespace",
+                       "accessTypeRestrictions": [
+                               "entity-update-namespace"
+                       ]
                }
        ],
-        "accessTypes": [{
+       "accessTypes": [
+               {
                        "itemId": 1,
                        "name": "type-create",
                        "label": "Create Type"
@@ -251,7 +303,7 @@
                {
                        "itemId": 2,
                        "name": "type-update",
-                       "label": "UpdateType"
+                       "label": "Update Type"
                },
                {
                        "itemId": 3,
@@ -302,24 +354,45 @@
                        "itemId": 12,
                        "name": "admin-import",
                        "label": "Admin Import"
-                },
-                {
-                        "itemId": 13,
-                        "name": "add-relationship",
-                        "label": "Add Relationship"
-                },
-                {
-                        "itemId": 14,
-                        "name": "update-relationship",
-                        "label": "Update Relationship"
-                },
-                {
-                        "itemId": 15,
-                        "name": "remove-relationship",
-                        "label": "Remove Relationship"
+               },
+               {
+                       "itemId": 13,
+                       "name": "add-relationship",
+                       "label": "Add Relationship"
+               },
+               {
+                       "itemId": 14,
+                       "name": "update-relationship",
+                       "label": "Update Relationship"
+               },
+               {
+                       "itemId": 15,
+                       "name": "remove-relationship",
+                       "label": "Remove Relationship"
+               },
+               {
+                       "itemId": 16,
+                       "name": "admin-purge",
+                       "label": "Admin Purge"
+               },
+               {
+                       "itemId": 17,
+                       "name": "entity-add-label",
+                       "label": "Add Label"
+               },
+               {
+                       "itemId": 18,
+                       "name": "entity-remove-label",
+                       "label": "Remove Label"
+               },
+               {
+                       "itemId": 19,
+                       "name": "entity-update-namespace",
+                       "label": "Update Namespace"
                }
        ],
-        "configs": [{
+       "configs": [
+               {
                        "itemId": 1,
                        "name": "username",
                        "type": "string",
@@ -351,4 +424,4 @@
        "options": {
                "enableDenyAndExceptionsInPolicies": "true"
        }
-}
\ No newline at end of file
+}
diff --git 
a/plugin-atlas/src/main/java/org/apache/ranger/authorization/atlas/authorizer/RangerAtlasAuthorizer.java
 
b/plugin-atlas/src/main/java/org/apache/ranger/authorization/atlas/authorizer/RangerAtlasAuthorizer.java
index 7f841d4..ca06cf8 100644
--- 
a/plugin-atlas/src/main/java/org/apache/ranger/authorization/atlas/authorizer/RangerAtlasAuthorizer.java
+++ 
b/plugin-atlas/src/main/java/org/apache/ranger/authorization/atlas/authorizer/RangerAtlasAuthorizer.java
@@ -352,6 +352,12 @@ public class RangerAtlasAuthorizer implements 
AtlasAuthorizer {
             
rangerRequest.setForwardedAddresses(request.getForwardedAddresses());
             rangerRequest.setRemoteIPAddress(request.getRemoteIPAddress());
 
+            if (AtlasPrivilege.ENTITY_ADD_LABEL.equals(request.getAction()) || 
AtlasPrivilege.ENTITY_REMOVE_LABEL.equals(request.getAction())) {
+                rangerResource.setValue(RESOURCE_ENTITY_LABEL, 
request.getLabel());
+            } else if 
(AtlasPrivilege.ENTITY_UPDATE_NAMESPACE.equals(request.getAction())) {
+                rangerResource.setValue(RESOURCE_ENTITY_NAMESPACE, 
request.getNamespaceName());
+            }
+
             if (StringUtils.isNotEmpty(classification)) {
                 rangerResource.setValue(RESOURCE_ENTITY_CLASSIFICATION, 
request.getClassificationTypeAndAllSuperTypes(classification));
 
@@ -460,6 +466,12 @@ public class RangerAtlasAuthorizer implements 
AtlasAuthorizer {
             rangerResource.setValue(RESOURCE_ENTITY_CLASSIFICATION, 
strClassifications);
             rangerResource.setValue(RESOURCE_ENTITY_ID, request.getEntityId());
 
+            if (AtlasPrivilege.ENTITY_ADD_LABEL.equals(request.getAction()) || 
AtlasPrivilege.ENTITY_REMOVE_LABEL.equals(request.getAction())) {
+                rangerResource.setValue(RESOURCE_ENTITY_LABEL, "label=" + 
request.getLabel());
+            } else if 
(AtlasPrivilege.ENTITY_UPDATE_NAMESPACE.equals(request.getAction())) {
+                rangerResource.setValue(RESOURCE_ENTITY_NAMESPACE, 
"namespace=" + request.getNamespaceName());
+            }
+
             auditEvents  = new HashMap<>();
             resourcePath = rangerResource.getAsString();
         }
diff --git 
a/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
 
b/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
index e6b8456..d27cde3 100644
--- 
a/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
+++ 
b/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
@@ -63,6 +63,8 @@ public class RangerServiceAtlas extends RangerBaseService {
        public static final String RESOURCE_ENTITY_TYPE                   = 
"entity-type";
        public static final String RESOURCE_ENTITY_CLASSIFICATION         = 
"entity-classification";
        public static final String RESOURCE_ENTITY_ID                     = 
"entity";
+       public static final String RESOURCE_ENTITY_LABEL                  = 
"entity-label";
+       public static final String RESOURCE_ENTITY_NAMESPACE              = 
"entity-namespace";
        public static final String RESOURCE_ENTITY_OWNER                  = 
"owner";
        public static final String RESOURCE_RELATIONSHIP_TYPE             = 
"relationship-type";
        public static final String RESOURCE_END_ONE_ENTITY_TYPE           = 
"end-one-entity-type";

Reply via email to