You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by rm...@apache.org on 2015/03/03 23:04:14 UTC

incubator-ranger git commit: Ranger-225: Ranger-LookupResource and ValidateConfig implementation for all components in the new pluggable model-DBStore implementation changes

Repository: incubator-ranger
Updated Branches:
  refs/heads/master abea4ca39 -> 054a973df


Ranger-225: Ranger-LookupResource and ValidateConfig implementation for all components in the new pluggable model-DBStore implementation changes


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/054a973d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/054a973d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/054a973d

Branch: refs/heads/master
Commit: 054a973df9ff26ab01c0720792580b794d4927bb
Parents: abea4ca
Author: rmani <rm...@hortonworks.com>
Authored: Mon Mar 2 16:08:21 2015 -0800
Committer: rmani <rm...@hortonworks.com>
Committed: Tue Mar 3 13:46:59 2015 -0800

----------------------------------------------------------------------
 .../plugin/service/RangerBaseService.java       | 42 +++++++++++++++--
 .../services/hbase/RangerServiceHBase.java      | 29 ++++++------
 .../hbase/client/HBaseConnectionMgr.java        | 14 +-----
 .../services/hbase/client/HBaseResourceMgr.java |  4 +-
 .../services/hbase/TestRangerServiceHBase.java  |  1 -
 .../ranger/services/hdfs/RangerServiceHdfs.java | 23 ++++------
 .../services/hdfs/client/HdfsConnectionMgr.java | 14 +-----
 .../services/hdfs/client/HdfsResourceMgr.java   |  4 +-
 .../services/hdfs/TestRangerServiceHdfs.java    |  1 -
 .../ranger/services/hive/RangerServiceHive.java | 22 ++++-----
 .../services/hive/client/HiveConnectionMgr.java | 14 +-----
 .../services/hive/client/HiveResourceMgr.java   |  4 +-
 .../hive/client/TestRangerServiceHive.java      |  1 -
 .../ranger/services/knox/RangerServiceKnox.java | 20 +++------
 .../knox/client/TestRangerServiceKnox.java      |  1 -
 .../java/org/apache/ranger/biz/ServiceMgr.java  | 47 +++++++++++---------
 .../org/apache/ranger/rest/ServiceREST.java     |  4 +-
 .../services/storm/RangerServiceStorm.java      | 19 +++-----
 18 files changed, 122 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
index e7b61db..ca78cf9 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
@@ -21,6 +21,7 @@ package org.apache.ranger.plugin.service;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.ranger.plugin.model.RangerService;
 import org.apache.ranger.plugin.model.RangerServiceDef;
@@ -29,11 +30,18 @@ import org.apache.ranger.plugin.model.RangerServiceDef;
 public abstract class RangerBaseService {
 	private RangerServiceDef serviceDef;
 	private RangerService    service;
-
+	
+	protected Map<String, String>   configs;
+	protected String 			    serviceName;
+	protected String 				serviceType;
+	
 
 	public void init(RangerServiceDef serviceDef, RangerService service) {
-		this.serviceDef = serviceDef;
-		this.service    = service;
+		this.serviceDef    = serviceDef;
+		this.service       = service;
+		this.configs	   = service.getConfigs();
+		this.serviceName   = service.getName();
+		this.serviceType   = service.getType();
 	}
 
 	/**
@@ -50,7 +58,35 @@ public abstract class RangerBaseService {
 		return service;
 	}
 
+	public Map<String, String> getConfigs() {
+		return configs;
+	}
+
+	public void setConfigs(Map<String, String> configs) {
+		this.configs = configs;
+	}
+
+	public String getServiceName() {
+		return serviceName;
+	}
+
+	public void setServiceName(String serviceName) {
+		this.serviceName = serviceName;
+	}
+
+	public String getServiceType() {
+		return serviceType;
+	}
+
+	public void setServiceType(String serviceType) {
+		this.serviceType = serviceType;
+	}
+		
 	public abstract HashMap<String, Object> validateConfig() throws Exception;
 	
 	public abstract List<String> lookupResource(ResourceLookupContext context) throws Exception;
+	
+	
+	
+	
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hbase-agent/src/main/java/org/apache/ranger/services/hbase/RangerServiceHBase.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/RangerServiceHBase.java b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/RangerServiceHBase.java
index fe53faf..ae79ca8 100644
--- a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/RangerServiceHBase.java
+++ b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/RangerServiceHBase.java
@@ -35,9 +35,6 @@ public class RangerServiceHBase extends RangerBaseService {
 
 	private static final Log LOG = LogFactory.getLog(RangerServiceHBase.class);
 	
-	Map<String, String> configs;
-	String			    service;
-	
 	public RangerServiceHBase() {
 		super();
 	}
@@ -45,18 +42,20 @@ public class RangerServiceHBase extends RangerBaseService {
 	@Override
 	public void init(RangerServiceDef serviceDef, RangerService service) {
 		super.init(serviceDef, service);
-		init();
 	}
 
 	@Override
 	public HashMap<String,Object> validateConfig() throws Exception {
 		HashMap<String, Object> ret = new HashMap<String, Object>();
+		
+		String serviceName = getServiceName();
+		
 		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerServiceHBase.validateConfig() Service: (" + service + " )");
+			LOG.debug("==> RangerServiceHBase.validateConfig() Service: (" + serviceName + " )");
 		}
 		if ( configs != null) {
 			try  {
-				ret = HBaseResourceMgr.testConnection(service, configs);
+				ret = HBaseResourceMgr.testConnection(serviceName, configs);
 			} catch (Exception e) {
 				LOG.error("<== RangerServiceHBase.validateConfig() Error:" + e);
 				throw e;
@@ -71,15 +70,18 @@ public class RangerServiceHBase extends RangerBaseService {
 	@Override
 	public List<String> lookupResource(ResourceLookupContext context) throws Exception {
 		
-		List<String> 	   ret 		= new ArrayList<String>();
-			
+		List<String> ret 		   = new ArrayList<String>();
+		String 	serviceName 	   = getServiceName();
+		String	serviceType		   = getServiceType();
+		Map<String,String> configs = getConfigs();
+		
 		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerServiceHBase.lookupResource() Service : " + service + " Context: (" + context + ")");
+			LOG.debug("==> RangerServiceHBase.lookupResource() Service : " + serviceName + " Context: (" + context + ")");
 		}
 		
 		if (context != null) {
 			try {
-				ret  = HBaseResourceMgr.getHBaseResource(service, configs,context);
+				ret  = HBaseResourceMgr.getHBaseResource(serviceName,serviceType,configs,context);
 			} catch (Exception e) {
 			  LOG.error( "<==RangerServiceHBase.lookupResource() Error : " + e);
 			  throw e;
@@ -90,11 +92,6 @@ public class RangerServiceHBase extends RangerBaseService {
 		}
 		return ret;
 	}
-	
-	public void init() {
-		service  = getService().getName();
-		configs  = getService().getConfigs();
-	}
-	
+
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseConnectionMgr.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseConnectionMgr.java b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseConnectionMgr.java
index 3797f45..88ea9ee 100644
--- a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseConnectionMgr.java
+++ b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseConnectionMgr.java
@@ -44,19 +44,9 @@ public class HBaseConnectionMgr {
 		repoConnectStatusMap = new HashMap<String, Boolean>();
 	}
 
-	public HBaseClient getHBaseConnection(final String serviceName, final Map<String,String> configs) {
+	public HBaseClient getHBaseConnection(final String serviceName, final String serviceType, final Map<String,String> configs) {
 		
 		HBaseClient client = null;
-		String serviceType = null;
-		try {
-			serviceType = ServiceStoreFactory
-									.instance()
-									.getServiceStore()
-									.getServiceByName(serviceName)
-									.getType();
-		} catch (Exception ex) {
-			LOG.error("Service could not be found for the Service Name : " + serviceName , ex);
-		}
 		if (serviceType != null) {
 			// get it from the cache
 			synchronized (hbaseConnectionCache) {
@@ -122,7 +112,7 @@ public class HBaseConnectionMgr {
 				
 				  if(testConnect == null){
 						hbaseConnectionCache.remove(serviceType);
-						client = getHBaseConnection(serviceName,configs);
+						client = getHBaseConnection(serviceName,serviceType,configs);
 				  }
 			 }
 			 repoConnectStatusMap.put(serviceType, true);

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseResourceMgr.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseResourceMgr.java b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseResourceMgr.java
index ca3c715..8682d18 100644
--- a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseResourceMgr.java
+++ b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseResourceMgr.java
@@ -55,7 +55,7 @@ public class HBaseResourceMgr {
 		return ret;
 	}
 	
-	public static List<String> getHBaseResource(String serviceName, Map<String, String> configs,ResourceLookupContext context) throws Exception{
+	public static List<String> getHBaseResource(String serviceName, String serviceType, Map<String, String> configs,ResourceLookupContext context) throws Exception{
 		
 		String 					  userInput 		= context.getUserInput();
 		String 					  resource		    = context.getResourceName();
@@ -95,7 +95,7 @@ public class HBaseResourceMgr {
 				if(LOG.isDebugEnabled()) {
 					LOG.debug("<== HBaseResourceMgr.getHBaseResource UserInput: \""+ userInput  + "\" configs: " + configs + " context: "  + context) ;
 				}
-				final HBaseClient hBaseClient = new HBaseConnectionMgr().getHBaseConnection(serviceName,configs);
+				final HBaseClient hBaseClient = new HBaseConnectionMgr().getHBaseConnection(serviceName,serviceType,configs);
 				Callable<List<String>> callableObj = null;
 				
 				if ( hBaseClient != null) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java b/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java
index fcebd5d..d506598 100644
--- a/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java
+++ b/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java
@@ -61,7 +61,6 @@ public class TestRangerServiceHBase {
 		svc   	 = new RangerService(sdName, serviceName, "unit test hbase resource lookup and validateConfig", configs);
 		svcHBase = new RangerServiceHBase();
 		svcHBase.init(sd, svc);
-		svcHBase.init();
 	}
 	
 	@Test

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/RangerServiceHdfs.java
----------------------------------------------------------------------
diff --git a/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/RangerServiceHdfs.java b/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/RangerServiceHdfs.java
index fcbf406..fd46b1e 100644
--- a/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/RangerServiceHdfs.java
+++ b/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/RangerServiceHdfs.java
@@ -35,9 +35,6 @@ public class RangerServiceHdfs extends RangerBaseService {
 
 	private static final Log LOG = LogFactory.getLog(RangerServiceHdfs.class);
 	
-	Map<String, String> configs;
-	String			    service;
-	
 	public RangerServiceHdfs() {
 		super();
 	}
@@ -45,20 +42,19 @@ public class RangerServiceHdfs extends RangerBaseService {
 	@Override
 	public void init(RangerServiceDef serviceDef, RangerService service) {
 		super.init(serviceDef, service);
-		init();
 	}
 
 	@Override
 	public HashMap<String,Object> validateConfig() throws Exception {
 		HashMap<String, Object> ret = new HashMap<String, Object>();
-		
+		String 	serviceName  	    = getServiceName();
 		if(LOG.isDebugEnabled()) {
-			LOG.debug("<== RangerServiceHdfs.validateConfig Service: (" + service + " )");
+			LOG.debug("<== RangerServiceHdfs.validateConfig Service: (" + serviceName + " )");
 		}
 		
 		if ( configs != null) {
 			try  {
-				ret = HdfsResourceMgr.testConnection(service, configs);
+				ret = HdfsResourceMgr.testConnection(serviceName, configs);
 			} catch (Exception e) {
 				LOG.error("<== RangerServiceHdfs.validateConfig Error:" + e);
 				throw e;
@@ -75,14 +71,17 @@ public class RangerServiceHdfs extends RangerBaseService {
 	@Override
 	public List<String> lookupResource(ResourceLookupContext context) throws Exception {
 		List<String> ret = new ArrayList<String>();
-	
+		String 	serviceName  	   = getServiceName();
+		String	serviceType		   = getServiceType();
+		Map<String,String> configs = getConfigs();
+		
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("<== RangerServiceHdfs.lookupResource Context: (" + context + ")");
 		}
 		
 		if (context != null) {
 			try {
-				ret  = HdfsResourceMgr.getHdfsResources(service, configs,context);
+				ret  = HdfsResourceMgr.getHdfsResources(serviceName, serviceType, configs,context);
 			} catch (Exception e) {
 			  LOG.error( "<==RangerServiceHdfs.lookupResource Error : " + e);
 			  throw e;
@@ -95,12 +94,6 @@ public class RangerServiceHdfs extends RangerBaseService {
 		
 		return ret;
 	}
-	
-	public void init() {
-		service  = getService().getName();
-		configs  = getService().getConfigs();
-	}
-	
 }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsConnectionMgr.java
----------------------------------------------------------------------
diff --git a/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsConnectionMgr.java b/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsConnectionMgr.java
index 8311ec0..17dcb31 100644
--- a/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsConnectionMgr.java
+++ b/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsConnectionMgr.java
@@ -44,18 +44,8 @@ public class HdfsConnectionMgr {
 	}
 	
 	
-	public HdfsClient getHadoopConnection(final String serviceName, final Map<String,String> configs) {
+	public HdfsClient getHadoopConnection(final String serviceName, final String serviceType, final Map<String,String> configs) {
 		HdfsClient hdfsClient = null;
-		String serviceType 	  = null;
-		try {
-			serviceType = ServiceStoreFactory
-									.instance()
-									.getServiceStore()
-									.getServiceByName(serviceName)
-									.getType();
-		} catch (Exception ex) {
-			LOG.error("Service could not be found for the Service Name : " + serviceName , ex);
-		}
 		if (serviceType != null) {
 			// get it from the cache
 			synchronized (hdfdsConnectionCache) {
@@ -98,7 +88,7 @@ public class HdfsConnectionMgr {
 					List<String> testConnect = hdfsClient.listFiles("/", "*",null);
 					if(testConnect == null){
 						hdfdsConnectionCache.put(serviceType, hdfsClient);
-						hdfsClient = getHadoopConnection(serviceName,configs);
+						hdfsClient = getHadoopConnection(serviceName,serviceType,configs);
 					}
 				}
 			}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsResourceMgr.java
----------------------------------------------------------------------
diff --git a/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsResourceMgr.java b/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsResourceMgr.java
index 7739e56..9161a5a 100644
--- a/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsResourceMgr.java
+++ b/hdfs-agent/src/main/java/org/apache/ranger/services/hdfs/client/HdfsResourceMgr.java
@@ -55,7 +55,7 @@ public class HdfsResourceMgr {
 		return ret;
 	}
 	
-	public static List<String> getHdfsResources(String serviceName, Map<String, String> configs,ResourceLookupContext context) throws Exception {
+	public static List<String> getHdfsResources(String serviceName, String serviceType, Map<String, String> configs,ResourceLookupContext context) throws Exception {
 		
 		List<String> resultList 			  = null;
 		String userInput 					  = context.getUserInput();
@@ -76,7 +76,7 @@ public class HdfsResourceMgr {
 				}
 				
 				String wildCardToMatch;
-				final HdfsClient hdfsClient = new HdfsConnectionMgr().getHadoopConnection(serviceName, configs);
+				final HdfsClient hdfsClient = new HdfsConnectionMgr().getHadoopConnection(serviceName, serviceType, configs);
 				if (hdfsClient != null) {
 					Integer lastIndex = userInput.lastIndexOf("/");
 					if (lastIndex < 0) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java
----------------------------------------------------------------------
diff --git a/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java b/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java
index ceaa5b2..91f5a43 100644
--- a/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java
+++ b/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java
@@ -59,7 +59,6 @@ public class TestRangerServiceHdfs {
 		svc   	 = new RangerService(sdName, serviceName, "unit test hdfs resource lookup and validateConfig",configs);
 		svcHdfs = new RangerServiceHdfs();
 		svcHdfs.init(sd, svc);
-		svcHdfs.init();
 	}
 	
 	@Test

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hive-agent/src/main/java/org/apache/ranger/services/hive/RangerServiceHive.java
----------------------------------------------------------------------
diff --git a/hive-agent/src/main/java/org/apache/ranger/services/hive/RangerServiceHive.java b/hive-agent/src/main/java/org/apache/ranger/services/hive/RangerServiceHive.java
index 16c8dd4..44e13f3 100644
--- a/hive-agent/src/main/java/org/apache/ranger/services/hive/RangerServiceHive.java
+++ b/hive-agent/src/main/java/org/apache/ranger/services/hive/RangerServiceHive.java
@@ -35,9 +35,6 @@ public class RangerServiceHive extends RangerBaseService {
 
 	private static final Log LOG = LogFactory.getLog(RangerServiceHive.class);
 	
-	Map<String, String> configs;
-	String			    service;
-	
 	public RangerServiceHive() {
 		super();
 	}
@@ -45,18 +42,18 @@ public class RangerServiceHive extends RangerBaseService {
 	@Override
 	public void init(RangerServiceDef serviceDef, RangerService service) {
 		super.init(serviceDef, service);
-		init();
 	}
 
 	@Override
 	public HashMap<String,Object> validateConfig() throws Exception {
 		HashMap<String, Object> ret = new HashMap<String, Object>();
+		String 	serviceName  	    = getServiceName();
 		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerServiceHive.validateConfig Service: (" + service + " )");
+			LOG.debug("==> RangerServiceHive.validateConfig Service: (" + serviceName + " )");
 		}
 		if ( configs != null) {
 			try  {
-				ret = HiveResourceMgr.testConnection(service, configs);
+				ret = HiveResourceMgr.testConnection(serviceName, configs);
 			} catch (Exception e) {
 				LOG.error("<== RangerServiceHive.validateConfig Error:" + e);
 				throw e;
@@ -71,13 +68,16 @@ public class RangerServiceHive extends RangerBaseService {
 	@Override
 	public List<String> lookupResource(ResourceLookupContext context) throws Exception {
 		
-		List<String> ret = new ArrayList<String>();
+		List<String> ret 		   = new ArrayList<String>();
+		String 	serviceName  	   = getServiceName();
+		String	serviceType		   = getServiceType();
+		Map<String,String> configs = getConfigs();
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> RangerServiceHive.lookupResource Context: (" + context + ")");
 		}
 		if (context != null) {
 			try {
-				ret  = HiveResourceMgr.getHiveResources(service, configs,context);
+				ret  = HiveResourceMgr.getHiveResources(serviceName, serviceType, configs,context);
 			} catch (Exception e) {
 			  LOG.error( "<==RangerServiceHive.lookupResource Error : " + e);
 			  throw e;
@@ -88,11 +88,5 @@ public class RangerServiceHive extends RangerBaseService {
 		}
 		return ret;
 	}
-	
-	public void init() {
-		service  = getService().getName();
-		configs  = getService().getConfigs();
-	}
-	
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveConnectionMgr.java
----------------------------------------------------------------------
diff --git a/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveConnectionMgr.java b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveConnectionMgr.java
index c355435..b511960 100644
--- a/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveConnectionMgr.java
+++ b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveConnectionMgr.java
@@ -45,18 +45,8 @@ public class HiveConnectionMgr {
 	 }
 	 
 
-	 public HiveClient getHiveConnection(final String serviceName, final Map<String,String> configs) {
+	 public HiveClient getHiveConnection(final String serviceName, final String serviceType, final Map<String,String> configs) {
 			HiveClient hiveClient  = null;
-			String 	   serviceType = null;
-			try {
-				serviceType = ServiceStoreFactory
-										.instance()
-										.getServiceStore()
-										.getServiceByName(serviceName)
-										.getType();
-			} catch (Exception ex) {
-				LOG.error("Service could not be found for the Service Name : " + serviceName , ex);
-			}
 			
 			if (serviceType != null) {
 				// get it from the cache
@@ -88,7 +78,7 @@ public class HiveConnectionMgr {
 							List<String> testConnect = hiveClient.getDatabaseList("*",null);
 						} catch(Exception e) {
 							hiveConnectionCache.remove(serviceType);
-							hiveClient = getHiveConnection(serviceName,configs);
+							hiveClient = getHiveConnection(serviceName,serviceType,configs);
 						}
 					}
 				}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveResourceMgr.java
----------------------------------------------------------------------
diff --git a/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveResourceMgr.java b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveResourceMgr.java
index a195627..4ea16df 100644
--- a/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveResourceMgr.java
+++ b/hive-agent/src/main/java/org/apache/ranger/services/hive/client/HiveResourceMgr.java
@@ -59,7 +59,7 @@ public class HiveResourceMgr {
 		return ret;
 	}
 
-	public static List<String> getHiveResources(String serviceName, Map<String, String> configs,ResourceLookupContext context) throws Exception  {
+	public static List<String> getHiveResources(String serviceName, String serviceType, Map<String, String> configs,ResourceLookupContext context) throws Exception  {
 		
 		String 					  	userInput    = context.getUserInput();
 		String 					  	resource	 = context.getResourceName();
@@ -112,7 +112,7 @@ public class HiveResourceMgr {
 																				  + tableList + " columnList: " + columnList ) ;
 				}
 				
-				final HiveClient hiveClient = new HiveConnectionMgr().getHiveConnection(serviceName, configs);
+				final HiveClient hiveClient = new HiveConnectionMgr().getHiveConnection(serviceName, serviceType, configs);
 				
 				Callable<List<String>> callableObj = null;
 				final String finalDbName;

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java
----------------------------------------------------------------------
diff --git a/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java b/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java
index 9dcda6d..79ed05d 100644
--- a/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java
+++ b/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java
@@ -60,7 +60,6 @@ public class TestRangerServiceHive {
 		svc   	= new RangerService(sdName, serviceName, "unit test hive resource lookup and validateConfig", configs);
 		svcHive = new RangerServiceHive();
 		svcHive.init(sd, svc);
-		svcHive.init();
 	}
 	
 	@Test

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/knox-agent/src/main/java/org/apache/ranger/services/knox/RangerServiceKnox.java
----------------------------------------------------------------------
diff --git a/knox-agent/src/main/java/org/apache/ranger/services/knox/RangerServiceKnox.java b/knox-agent/src/main/java/org/apache/ranger/services/knox/RangerServiceKnox.java
index 9cbaa5d..f019779 100644
--- a/knox-agent/src/main/java/org/apache/ranger/services/knox/RangerServiceKnox.java
+++ b/knox-agent/src/main/java/org/apache/ranger/services/knox/RangerServiceKnox.java
@@ -35,9 +35,6 @@ public class RangerServiceKnox extends RangerBaseService {
 
 	private static final Log LOG = LogFactory.getLog(RangerServiceKnox.class);
 	
-	Map<String, String> configs;
-	String			    service;
-	
 	public RangerServiceKnox() {
 		super();
 	}
@@ -45,18 +42,18 @@ public class RangerServiceKnox extends RangerBaseService {
 	@Override
 	public void init(RangerServiceDef serviceDef, RangerService service) {
 		super.init(serviceDef, service);
-		init();
 	}
 
 	@Override
 	public HashMap<String,Object> validateConfig() throws Exception {
 		HashMap<String, Object> ret = new HashMap<String, Object>();
+		String 	serviceName  	    = getServiceName();
 		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerServiceKnox.validateConfig Service: (" + service + " )");
+			LOG.debug("==> RangerServiceKnox.validateConfig Service: (" + serviceName + " )");
 		}
 		if ( configs != null) {
 			try  {
-				ret = KnoxResourceMgr.validateConfig(service, configs);
+				ret = KnoxResourceMgr.validateConfig(serviceName, configs);
 			} catch (Exception e) {
 				LOG.error("<== RangerServiceKnox.validateConfig Error:" + e);
 				throw e;
@@ -72,12 +69,14 @@ public class RangerServiceKnox extends RangerBaseService {
 	public List<String> lookupResource(ResourceLookupContext context) throws Exception {
 		
 		List<String> ret = new ArrayList<String>();
+		String 	serviceName  	   = getServiceName();
+		Map<String,String> configs = getConfigs();
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> RangerServiceKnox.lookupResource Context: (" + context + ")");
 		}
 		if (context != null) {
 			try {
-				ret  = KnoxResourceMgr.getKnoxResources(service, configs,context);
+				ret  = KnoxResourceMgr.getKnoxResources(serviceName, configs, context);
 						
 			} catch (Exception e) {
 			  LOG.error( "<== RangerServiceKnox.lookupResource Error : " + e);
@@ -89,10 +88,5 @@ public class RangerServiceKnox extends RangerBaseService {
 		}
 		return ret;
 	}
-	
-	public void init() {
-		service  = getService().getName();
-		configs  = getService().getConfigs();
-	}
-	
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java
----------------------------------------------------------------------
diff --git a/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java b/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java
index ba95790..3499714 100644
--- a/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java
+++ b/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java
@@ -63,7 +63,6 @@ public class TestRangerServiceKnox {
 		svc   	 = new RangerService(sdName, serviceName, "unit test Knox resource lookup and validateConfig", configs);
 		svcKnox  = new RangerServiceKnox();
 		svcKnox.init(sd, svc);
-		svcKnox.init();
 	}
 	
 	@Test

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/security-admin/src/main/java/org/apache/ranger/biz/ServiceMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceMgr.java
index d7bfb1d..b79cb9b 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceMgr.java
@@ -29,7 +29,7 @@ import org.apache.ranger.plugin.model.RangerService;
 import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.service.RangerBaseService;
 import org.apache.ranger.plugin.service.ResourceLookupContext;
-import org.apache.ranger.plugin.store.ServiceStoreFactory;
+import org.apache.ranger.plugin.store.ServiceStore;
 import org.apache.ranger.view.VXMessage;
 import org.apache.ranger.view.VXResponse;
 import org.springframework.stereotype.Component;
@@ -40,9 +40,10 @@ public class ServiceMgr {
 	private static final Log LOG = LogFactory.getLog(ServiceMgr.class);
 	
 	
-	public List<String> lookupResource(String serviceName, ResourceLookupContext context ) throws Exception {
+	public List<String> lookupResource(String serviceName, ResourceLookupContext context, ServiceStore svcStore) throws Exception {
 		List<String> 	  ret = null;
-		RangerBaseService svc = getRangerServiceByName(serviceName);
+		
+		RangerBaseService svc = getRangerServiceByName(serviceName, svcStore);
 
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> ServiceMgr.lookupResource for Service: (" + svc + "Context: " + context + ")");
@@ -64,10 +65,10 @@ public class ServiceMgr {
 		return ret;
 	}
 	
-	public VXResponse validateConfig(RangerService service) throws Exception {
+	public VXResponse validateConfig(RangerService service, ServiceStore svcStore) throws Exception {
 		
 		VXResponse ret 			= new VXResponse();
-		RangerBaseService svc 	= getRangerServiceByService(service);
+		RangerBaseService svc 	= getRangerServiceByService(service, svcStore);
 		
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> ServiceMgr.validateConfig for Service: (" + svc + ")");
@@ -91,29 +92,35 @@ public class ServiceMgr {
 	}
 
 	
-  public RangerBaseService getRangerServiceByName(String serviceName) throws Exception{
-
-		RangerService service = ServiceStoreFactory.instance().getServiceStore().getServiceByName(serviceName);
-
-		RangerBaseService svc = getRangerServiceByService(service);
-		
+  public RangerBaseService getRangerServiceByName(String serviceName, ServiceStore svcStore) throws Exception{
+	    RangerBaseService   svc 	= null;
+	   	RangerService     	service = svcStore.getServiceByName(serviceName);
+	  	
+	  	if ( service != null) {
+	  		svc = getRangerServiceByService(service, svcStore);
+	  	}	
 		return svc;
-		
 	}
 	
-	public RangerBaseService getRangerServiceByService(RangerService service) throws Exception{
-		
-		String serviceType 			= service.getType();
+	public RangerBaseService getRangerServiceByService(RangerService service, ServiceStore svcStore) throws Exception{
 		
-		RangerServiceDef serviceDef = ServiceStoreFactory.instance().getServiceStore().getServiceDefByName(serviceType);
+		RangerServiceDef 	serviceDef 	= null;
+		RangerBaseService	ret 		= null;
 		
-		RangerBaseService  ret 		= (RangerBaseService) Class.forName(serviceDef.getImplClass()).newInstance();
+		String	serviceType = service.getType();
 		
+		if (serviceType != null) {
+			serviceDef  = svcStore.getServiceDefByName(serviceType);
+			if ( serviceDef != null) {	
+				ret  = (RangerBaseService) Class.forName(serviceDef.getImplClass()).newInstance();
+			}
+			
+			ret.init(serviceDef, service);	
+		}
+
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> ServiceMgr.getRangerServiceByService ServiceType: " + serviceType + "ServiceDef: " + serviceDef + "Service Class: " + serviceDef.getImplClass());
-		}
-		
-		ret.init(serviceDef, service);
+		}		
 		
 		return ret;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index d4851cc..b90a3df 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -454,7 +454,7 @@ public class ServiceREST {
 		VXResponse ret = new VXResponse();
 
 		try {
-			ret = serviceMgr.validateConfig(service);
+			ret = serviceMgr.validateConfig(service, svcStore);
 		} catch(Exception excp) {
 			LOG.error("validateConfig(" + service + ") failed", excp);
 
@@ -479,7 +479,7 @@ public class ServiceREST {
 		List<String> ret = new ArrayList<String>();
 
 		try {
-			ret = serviceMgr.lookupResource(serviceName,context);
+			ret = serviceMgr.lookupResource(serviceName,context, svcStore);
 		} catch(Exception excp) {
 			LOG.error("lookupResource(" + serviceName + ", " + context + ") failed", excp);
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/054a973d/storm-agent/src/main/java/org/apache/ranger/services/storm/RangerServiceStorm.java
----------------------------------------------------------------------
diff --git a/storm-agent/src/main/java/org/apache/ranger/services/storm/RangerServiceStorm.java b/storm-agent/src/main/java/org/apache/ranger/services/storm/RangerServiceStorm.java
index 2ff0185..96d8113 100644
--- a/storm-agent/src/main/java/org/apache/ranger/services/storm/RangerServiceStorm.java
+++ b/storm-agent/src/main/java/org/apache/ranger/services/storm/RangerServiceStorm.java
@@ -35,9 +35,6 @@ public class RangerServiceStorm extends RangerBaseService {
 
 	private static final Log LOG = LogFactory.getLog(RangerServiceStorm.class);
 	
-	Map<String, String> configs;
-	String			    service;
-	
 	public RangerServiceStorm() {
 		super();
 	}
@@ -45,18 +42,18 @@ public class RangerServiceStorm extends RangerBaseService {
 	@Override
 	public void init(RangerServiceDef serviceDef, RangerService service) {
 		super.init(serviceDef, service);
-		init();
 	}
 
 	@Override
 	public HashMap<String,Object> validateConfig() throws Exception {
 		HashMap<String, Object> ret = new HashMap<String, Object>();
+		String 	serviceName  	    = getServiceName();
 		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerServiceStorm.validateConfig Service: (" + service + " )");
+			LOG.debug("==> RangerServiceStorm.validateConfig Service: (" + serviceName + " )");
 		}
 		if ( configs != null) {
 			try  {
-				ret = StormResourceMgr.validateConfig(service, configs);
+				ret = StormResourceMgr.validateConfig(serviceName, configs);
 			} catch (Exception e) {
 				LOG.error("<== RangerServiceKnox.validateConfig Error:" + e);
 				throw e;
@@ -72,12 +69,14 @@ public class RangerServiceStorm extends RangerBaseService {
 	public List<String> lookupResource(ResourceLookupContext context) throws Exception {
 		
 		List<String> ret = new ArrayList<String>();
+		String 	serviceName  	   = getServiceName();
+		Map<String,String> configs = getConfigs();
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> RangerServiceKnox.lookupResource Context: (" + context + ")");
 		}
 		if (context != null) {
 			try {
-				ret  = StormResourceMgr.getStormResources(service,configs,context);
+				ret  = StormResourceMgr.getStormResources(serviceName,configs,context);
 						
 			} catch (Exception e) {
 			  LOG.error( "<==RangerServiceKnox.lookupResource Error : " + e);
@@ -89,10 +88,4 @@ public class RangerServiceStorm extends RangerBaseService {
 		}
 		return ret;
 	}
-	
-	public void init() {
-		service  = getService().getName();
-		configs  = getService().getConfigs();
-	}
-	
 }
\ No newline at end of file