You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/01/06 19:31:28 UTC
incubator-ranger git commit: RANGER-203: Add deserializer for
Map
Repository: incubator-ranger
Updated Branches:
refs/heads/stack 0f177a62c -> 121e577ee
RANGER-203: Add deserializer for Map<String,String>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/121e577e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/121e577e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/121e577e
Branch: refs/heads/stack
Commit: 121e577ee17c34d8ab7a7fa7a2518d2e8038f37b
Parents: 0f177a6
Author: Gautam Borad <gb...@gmail.com>
Authored: Tue Jan 6 10:31:02 2015 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Jan 6 10:31:02 2015 -0800
----------------------------------------------------------------------
.../manager/CustomizedMapDeserializer.java | 34 ++++++++++++++++++++
.../ranger/plugin/model/RangerService.java | 3 ++
.../service-defs/ranger-servicedef-hbase.json | 6 ++--
.../service-defs/ranger-servicedef-hdfs.json | 2 +-
.../service-defs/ranger-servicedef-hive.json | 8 ++---
.../service-defs/ranger-servicedef-knox.json | 4 +--
.../service-defs/ranger-servicedef-storm.json | 2 +-
.../scripts/views/policies/GroupPermList.js | 2 +-
.../views/policies/RangerPolicyCreate.js | 4 ++-
.../scripts/views/policies/UserPermList.js | 2 +-
.../webapp/scripts/views/service/ServiceForm.js | 10 +++---
.../main/webapp/templates/helpers/XAHelpers.js | 6 ++--
12 files changed, 62 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java b/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java
new file mode 100644
index 0000000..268d70f
--- /dev/null
+++ b/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java
@@ -0,0 +1,34 @@
+package org.apache.ranger.plugin.manager;
+
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.codehaus.jackson.JsonParser;
+import org.codehaus.jackson.JsonProcessingException;
+import org.codehaus.jackson.JsonToken;
+import org.codehaus.jackson.map.DeserializationContext;
+import org.codehaus.jackson.map.JsonDeserializer;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.type.TypeReference;
+
+
+/**
+ * Created by gautam on 06/01/15.
+ */
+public class CustomizedMapDeserializer extends JsonDeserializer<Map<Object, Object>> {
+
+ @Override
+ public Map<Object, Object> deserialize(JsonParser jp, DeserializationContext arg1) throws IOException,
+ JsonProcessingException {
+ ObjectMapper mapper = (ObjectMapper) jp.getCodec();
+ if (jp.getCurrentToken().equals(JsonToken.START_OBJECT)) {
+ return mapper.readValue(jp, new TypeReference<Map<Object, Object>>() { });
+ } else {
+ // consume this stream
+ mapper.readTree(jp);
+ return new HashMap<Object, Object>();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java b/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java
index 9bdb086..65de02a 100644
--- a/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java
+++ b/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java
@@ -26,9 +26,11 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.ranger.plugin.manager.CustomizedMapDeserializer;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
+import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
@@ -44,6 +46,7 @@ public class RangerService extends RangerBaseModelObject implements java.io.Seri
private String name = null;
private String description = null;
private Boolean isEnabled = null;
+ @JsonDeserialize(using = CustomizedMapDeserializer.class)
private Map<String, String> configs = null;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json
index 070ba2a..04127bb 100644
--- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json
+++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json
@@ -33,9 +33,9 @@
],
"resources":
[
- {"name":"table","type":"string","level":1,"parent":"","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Table","description":"HBase Table"},
- {"name":"column-family","type":"string","level":2,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column-family","description":"HBase Column-family"},
- {"name":"column","type":"string","level":3,"parent":"column-family","mandatory":true,"lookupSupported":false,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column","description":"HBase Column"}
+ {"name":"table","type":"select2","level":1,"parent":"","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Table","description":"HBase Table"},
+ {"name":"column-family","type":"select2","level":2,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column-family","description":"HBase Column-family"},
+ {"name":"column","type":"select2","level":3,"parent":"column-family","mandatory":true,"lookupSupported":false,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column","description":"HBase Column"}
],
"accessTypes":
[
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json
index 8387268..20ae6b9 100644
--- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json
+++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json
@@ -45,7 +45,7 @@
],
"resources":
[
- {"name":"path","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerPathResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Resource Path","description":"HDFS file or directory path"}
+ {"name":"path","type":"path","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerPathResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Resource Path","description":"HDFS file or directory path"}
],
"accessTypes":
[
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json
index 1831810..c18f0a0 100644
--- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json
+++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json
@@ -21,10 +21,10 @@
],
"resources":
[
- {"name":"database","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Database","description":"Hive Database"},
- {"name":"table","type":"string","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Table","description":"Hive Table"},
- {"name":"udf","type":"string","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive UDF","description":"Hive UDF"},
- {"name":"column","type":"string","level":3,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Column","description":"Hive Column"}
+ {"name":"database","type":"select2","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Database","description":"Hive Database"},
+ {"name":"table","type":"select2","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Table","description":"Hive Table"},
+ {"name":"udf","type":"select2","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive UDF","description":"Hive UDF"},
+ {"name":"column","type":"select2","level":3,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Column","description":"Hive Column"}
],
"accessTypes":
[
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json
index 7ce09ff..d12b9c9 100644
--- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json
+++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json
@@ -20,8 +20,8 @@
],
"resources":
[
- {"name":"topology","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Topology","description":"Knox Topology"},
- {"name":"service","type":"string","level":2,"parent":"topology","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Service","description":"Knox Service"}
+ {"name":"topology","type":"select2","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Topology","description":"Knox Topology"},
+ {"name":"service","type":"select2","level":2,"parent":"topology","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Service","description":"Knox Service"}
],
"accessTypes":
[
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json
index 6a7d8bb..5475dea 100644
--- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json
+++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json
@@ -20,7 +20,7 @@
],
"resources":
[
- {"name":"topology","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Storm Topology","description":"Storm Topology"}
+ {"name":"topology","type":"select2","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Storm Topology","description":"Storm Topology"}
],
"accessTypes":
[
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js b/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js
index c7e876a..dfc9c4a 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js
@@ -94,7 +94,7 @@ define(function(require) {
}
- this.accessItems = _.map(this.getPerms(), function(perm){ return {'type':perm.label,value : false}});
+ this.accessItems = _.map(this.getPerms(), function(perm){ if(!_.isUndefined(perm)) return {'type':perm.label,value : false}});
},
groupDropDownChange : function(){
var that = this;
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
index 15ddd8e..bd2b71e 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
@@ -101,10 +101,12 @@ define(function(require){
this.params = {};
},
initializeServiceDef : function(){
+
var service = _.find(XAEnums.ServiceType,function(service){
return service.label.toUpperCase() == this.rangerService.get('type').toUpperCase();
},this);
- this.rangerServiceDefModel = new RangerServiceDef({ id : service.value });
+ this.rangerServiceDefModel = new RangerServiceDef();
+ this.rangerServiceDefModel.url = "service/plugins/definitions/name/"+this.rangerService.get('type');
this.rangerServiceDefModel.fetch({
cache : false,
async : false
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js b/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js
index 59b7eed..f7879ad 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js
@@ -93,7 +93,7 @@ define(function(require) {
this.createSelectUserDropDown();
this.userDropDownChange();
- this.accessItems = _.map(this.getPerms(), function(perm){ return {'type':perm.label,'value': false}});
+ this.accessItems = _.map(this.getPerms(), function(perm){ if(!_.isUndefined(perm)) return {'type':perm.label,'value': false}});
},
checkDirtyFieldForDropDown : function(e){
//that.model.has('groupId')
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
index de07088..6027b1e 100644
--- a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
+++ b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js
@@ -156,13 +156,15 @@ define(function(require){
that.model.unset(obj.name);
}
});
- this.model.set('configs',JSON.stringify(config));
-
+ //this.model.set('configs',JSON.stringify(config));
+ this.model.set('configs',config);
+
//Set service type
- _.each(XAEnums.AssetType, function(asset){
+ this.model.set('type',this.rangerServiceDefModel.get('name'))
+ /*_.each(XAEnums.AssetType, function(asset){
if(asset.label.toUpperCase() == this.rangerServiceDefModel.get('name').toUpperCase())
this.model.set('type',asset.label)
- },this);
+ },this);*/
//
//Set isEnabled
if(parseInt(this.model.get('isEnabled')) == XAEnums.ActiveStatus.STATUS_ENABLED.value)
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/templates/helpers/XAHelpers.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/templates/helpers/XAHelpers.js b/security-admin/src/main/webapp/templates/helpers/XAHelpers.js
index d9618bb..dff2bfe 100644
--- a/security-admin/src/main/webapp/templates/helpers/XAHelpers.js
+++ b/security-admin/src/main/webapp/templates/helpers/XAHelpers.js
@@ -484,13 +484,13 @@
Handlebars.registerHelper('getServices', function(services, serviceDef) {
var XAEnums = require('utils/XAEnums');
var tr = '';
- var serviceType = serviceDef.get('name').toUpperCase();
- _.each(XAEnums.AssetType, function(asset){
+ var serviceType = serviceDef.get('name');
+ /*_.each(XAEnums.AssetType, function(asset){
if(asset.label.toUpperCase() == serviceType.toUpperCase()){
serviceType = asset.label;
return;
}
- });
+ });*/
if(!_.isUndefined(services[serviceType])){
_.each(services[serviceType],function(serv){