You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sh...@apache.org on 2013/11/15 22:10:59 UTC

git commit: SENTRY-64: Break Circular dependency between sentry-binding-solr and sentry-core (Gregory Chanan via Shreepadma Venugopalan)

Updated Branches:
  refs/heads/master 68998d011 -> 45cf5fb4f


SENTRY-64: Break Circular dependency between sentry-binding-solr and sentry-core (Gregory Chanan via Shreepadma Venugopalan)


Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/45cf5fb4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/45cf5fb4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/45cf5fb4

Branch: refs/heads/master
Commit: 45cf5fb4fb6a01d3035d370cdcdb0ee00c2669d9
Parents: 68998d0
Author: Shreepadma Venugopalan <sh...@apache.org>
Authored: Fri Nov 15 13:10:44 2013 -0800
Committer: Shreepadma Venugopalan <sh...@apache.org>
Committed: Fri Nov 15 13:10:44 2013 -0800

----------------------------------------------------------------------
 pom.xml                                         |  7 -----
 sentry-binding/sentry-binding-solr/pom.xml      |  4 ---
 .../binding/solr/authz/SolrAuthzBinding.java    | 29 ++++++++++++++------
 3 files changed, 21 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/45cf5fb4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f5cf265..997b1f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,6 @@ limitations under the License.
     <maven.compile.source>1.6</maven.compile.source>
     <maven.compile.target>1.6</maven.compile.target>
     <hive.version>0.10.0-cdh4.4.0-SNAPSHOT</hive.version>
-    <solr.version>4.4.0-search-1.1.0-SNAPSHOT</solr.version>
     <hadoop.version>2.0.0-cdh4.4.0-SNAPSHOT</hadoop.version>
     <junit.version>4.9</junit.version>
     <fest.reflect.version>1.4.1</fest.reflect.version>
@@ -240,12 +239,6 @@ limitations under the License.
         <scope>provided</scope>
       </dependency>
       <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-core</artifactId>
-        <version>${solr.version}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
         <groupId>org.apache.sentry</groupId>
         <artifactId>sentry-binding-hive</artifactId>
         <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/45cf5fb4/sentry-binding/sentry-binding-solr/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-solr/pom.xml b/sentry-binding/sentry-binding-solr/pom.xml
index a1c8dbf..4ed491a 100644
--- a/sentry-binding/sentry-binding-solr/pom.xml
+++ b/sentry-binding/sentry-binding-solr/pom.xml
@@ -59,10 +59,6 @@ limitations under the License.
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.solr</groupId>
-      <artifactId>solr-core</artifactId>
-    </dependency>
   </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/45cf5fb4/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java b/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
index d7b766c..5c2d7bc 100644
--- a/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
+++ b/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
@@ -16,12 +16,14 @@
  */
 package org.apache.sentry.binding.solr.authz;
 
+import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Constructor;
 import java.util.Arrays;
 import java.util.Set;
 
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
 import org.apache.sentry.core.common.Subject;
 import org.apache.sentry.core.model.search.Collection;
 import org.apache.sentry.core.model.search.SearchModelAction;
@@ -30,9 +32,6 @@ import org.apache.sentry.binding.solr.conf.SolrAuthzConf.AuthzConfVars;
 import org.apache.sentry.policy.common.PolicyEngine;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.common.ProviderBackend;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.core.HdfsDirectoryFactory;
-import org.apache.solr.util.HdfsUtil;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,6 +39,8 @@ import org.slf4j.LoggerFactory;
 public class SolrAuthzBinding {
   private static final Logger LOG = LoggerFactory
       .getLogger(SolrAuthzBinding.class);
+  private static final String[] HADOOP_CONF_FILES = {"core-site.xml",
+    "hdfs-site.xml", "mapred-site.xml", "yarn-site.xml", "hadoop-site.xml"};
 
   private final SolrAuthzConf authzConf;
   private final AuthorizationProvider authProvider;
@@ -109,11 +110,23 @@ public class SolrAuthzBinding {
 
   private Configuration getConf() throws IOException {
     Configuration conf = new Configuration();
-    String confDir = System.getProperty(HdfsDirectoryFactory.CONFIG_DIRECTORY);
-    try {
-      HdfsUtil.addHdfsResources(conf, confDir);
-    } catch (SolrException se) {
-      throw new IOException("Sentry binding encountered an exception trying to create Configuration", se);
+    String confDir = System.getProperty("solr.hdfs.confdir");
+    if (confDir != null && confDir.length() > 0) {
+      File confDirFile = new File(confDir);
+      if (!confDirFile.exists()) {
+        throw new IOException("Resource directory does not exist: " + confDirFile.getAbsolutePath());
+      }
+      if (!confDirFile.isDirectory()) {
+        throw new IOException("Specified resource directory is not a directory" + confDirFile.getAbsolutePath());
+      }
+      if (!confDirFile.canRead()) {
+        throw new IOException("Resource directory must be readable by the Solr process: " + confDirFile.getAbsolutePath());
+      }
+      for (String file : HADOOP_CONF_FILES) {
+        if (new File(confDirFile, file).exists()) {
+          conf.addResource(new Path(confDir, file));
+        }
+      }
     }
     return conf;
   }