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 <[email protected]>
Authored: Mon Mar 2 16:08:21 2015 -0800
Committer: rmani <[email protected]>
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

Reply via email to