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/09/27 23:50:43 UTC

git commit: SENTRY-4: Rename Configuration properties that mention hive but are sentry related (Gregory Chanan via Shreepadma Venugopalan)

Updated Branches:
  refs/heads/master 055e0146f -> 7649aad99


SENTRY-4: Rename Configuration properties that mention hive but are sentry related (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/7649aad9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/7649aad9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/7649aad9

Branch: refs/heads/master
Commit: 7649aad99655c306948d2b1b520d2d151e604b5c
Parents: 055e014
Author: Shreepadma Venugopalan <sh...@apache.org>
Authored: Fri Sep 27 14:49:50 2013 -0700
Committer: Shreepadma Venugopalan <sh...@apache.org>
Committed: Fri Sep 27 14:49:50 2013 -0700

----------------------------------------------------------------------
 .../binding/hive/authz/HiveAuthzBinding.java    |  2 +-
 .../sentry/binding/hive/conf/HiveAuthzConf.java | 69 ++++++++++----------
 .../binding/hive/TestHiveAuthzBindings.java     |  2 +-
 .../sentry/binding/hive/TestHiveAuthzConf.java  | 45 +++++++++----
 .../src/test/resources/access-site.xml          | 34 ----------
 .../src/test/resources/sentry-site.xml          |  6 +-
 .../src/test/resources/sentry-site.xml          |  6 +-
 7 files changed, 76 insertions(+), 88 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
index 542b22c..8ecb41b 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBinding.java
@@ -127,7 +127,7 @@ public class HiveAuthzBinding {
     String authProviderName = authzConf.get(AuthzConfVars.AUTHZ_PROVIDER.getVar());
     String resourceName =
         authzConf.get(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE.getVar());
-    LOG.debug("Using authorization provide " + authProviderName +
+    LOG.debug("Using authorization provider " + authProviderName +
         " with resource " + resourceName);
 
     // load the authz provider class

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/conf/HiveAuthzConf.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/conf/HiveAuthzConf.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/conf/HiveAuthzConf.java
index c51ce54..49edb09 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/conf/HiveAuthzConf.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/conf/HiveAuthzConf.java
@@ -41,27 +41,25 @@ public class HiveAuthzConf extends Configuration {
    * Config setting definitions
    */
   public static enum AuthzConfVars {
-    AUTHZ_PROVIDER("hive.sentry.provider",
-        "org.apache.sentry.provider.file.ResourceAuthorizationProvider"),
-        AUTHZ_PROVIDER_RESOURCE("hive.sentry.provider.resource", ""),
-        AUTHZ_SERVER_NAME("hive.sentry.server", "HS2"),
-        AUTHZ_RESTRICT_DEFAULT_DB("hive.sentry.restrict.defaultDB", "false"),
-        SENTRY_TESTING_MODE("hive.sentry.testing.mode", "false"),
-        AUTHZ_UDF_WHITELIST("hive.sentry.udf.whitelist", HIVE_UDF_WHITE_LIST),
-        AUTHZ_ALLOW_HIVE_IMPERSONATION("hive.sentry.allow.hive.impersonation", "false"),
-        AUTHZ_ONFAILURE_HOOKS("hive.sentry.failure.hooks", ""),
-
-        AUTHZ_PROVIDER_DEPRECATED("hive.access.provider",
-        "org.apache.sentry.provider.file.ResourceAuthorizationProvider"),
-        AUTHZ_PROVIDER_RESOURCE_DEPRECATED("hive.access.provider.resource", ""),
-        AUTHZ_SERVER_NAME_DEPRECATED("hive.access.server", "HS2"),
-        AUTHZ_RESTRICT_DEFAULT_DB_DEPRECATED("hive.access.restrict.defaultDB", "false"),
-        SENTRY_TESTING_MODE_DEPRECATED("hive.access.testing.mode", "false"),
-        AUTHZ_UDF_WHITELIST_DEPRECATED("hive.access.udf.whitelist", HIVE_UDF_WHITE_LIST),
-        AUTHZ_ALLOW_HIVE_IMPERSONATION_DEPRECATED("hive.access.allow.hive.impersonation", "false"),
-        AUTHZ_ONFAILURE_HOOKS_DEPRECATED("hive.access.failure.hooks", ""),
-
-        ;
+    AUTHZ_PROVIDER("sentry.provider",
+      "org.apache.sentry.provider.file.ResourceAuthorizationProvider"),
+    AUTHZ_PROVIDER_RESOURCE("sentry.hive.provider.resource", ""),
+    AUTHZ_SERVER_NAME("sentry.hive.server", "HS2"),
+    AUTHZ_RESTRICT_DEFAULT_DB("sentry.hive.restrict.defaultDB", "false"),
+    SENTRY_TESTING_MODE("sentry.hive.testing.mode", "false"),
+    AUTHZ_UDF_WHITELIST("sentry.hive.udf.whitelist", HIVE_UDF_WHITE_LIST),
+    AUTHZ_ALLOW_HIVE_IMPERSONATION("sentry.hive.allow.hive.impersonation", "false"),
+    AUTHZ_ONFAILURE_HOOKS("sentry.hive.failure.hooks", ""),
+
+    AUTHZ_PROVIDER_DEPRECATED("hive.sentry.provider",
+      "org.apache.sentry.provider.file.ResourceAuthorizationProvider"),
+    AUTHZ_PROVIDER_RESOURCE_DEPRECATED("hive.sentry.provider.resource", ""),
+    AUTHZ_SERVER_NAME_DEPRECATED("hive.sentry.server", "HS2"),
+    AUTHZ_RESTRICT_DEFAULT_DB_DEPRECATED("hive.sentry.restrict.defaultDB", "false"),
+    SENTRY_TESTING_MODE_DEPRECATED("hive.sentry.testing.mode", "false"),
+    AUTHZ_UDF_WHITELIST_DEPRECATED("hive.sentry.udf.whitelist", HIVE_UDF_WHITE_LIST),
+    AUTHZ_ALLOW_HIVE_IMPERSONATION_DEPRECATED("hive.sentry.allow.hive.impersonation", "false"),
+    AUTHZ_ONFAILURE_HOOKS_DEPRECATED("hive.sentry.failure.hooks", "");
 
     private final String varName;
     private final String defaultVal;
@@ -108,17 +106,22 @@ public class HiveAuthzConf extends Configuration {
     "variance,weekofyear,when,xpath,xpath_boolean,xpath_double,xpath_float,xpath_int,xpath_long," +
     "xpath_number,xpath_short,xpath_string,year";
 
-  private static final Map<String, AuthzConfVars> deprecatedConfigs =
+  // map of current property names - > deprecated property names.
+  // The binding layer code should work if the deprecated property names are provided,
+  // as long as the new property names aren't also provided.  Since the binding code
+  // only calls the new property names, we require a map from current names to deprecated
+  // names in order to check if the deprecated name of a property was set.
+  private static final Map<String, AuthzConfVars> currentToDeprecatedProps =
       new HashMap<String, AuthzConfVars>();
   static {
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_PROVIDER_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_PROVIDER);
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_PROVIDER_RESOURCE);
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_SERVER_NAME_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_SERVER_NAME);
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_RESTRICT_DEFAULT_DB_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_RESTRICT_DEFAULT_DB);
-   deprecatedConfigs.put(AuthzConfVars.SENTRY_TESTING_MODE_DEPRECATED.getVar(), AuthzConfVars.SENTRY_TESTING_MODE);
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_UDF_WHITELIST_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_UDF_WHITELIST);
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_ALLOW_HIVE_IMPERSONATION_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_ALLOW_HIVE_IMPERSONATION);
-   deprecatedConfigs.put(AuthzConfVars.AUTHZ_ONFAILURE_HOOKS_DEPRECATED.getVar(), AuthzConfVars.AUTHZ_ONFAILURE_HOOKS);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_PROVIDER.getVar(), AuthzConfVars.AUTHZ_PROVIDER_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE.getVar(), AuthzConfVars.AUTHZ_PROVIDER_RESOURCE_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_SERVER_NAME.getVar(), AuthzConfVars.AUTHZ_SERVER_NAME_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_RESTRICT_DEFAULT_DB.getVar(), AuthzConfVars.AUTHZ_RESTRICT_DEFAULT_DB_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.SENTRY_TESTING_MODE.getVar(), AuthzConfVars.SENTRY_TESTING_MODE_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_UDF_WHITELIST.getVar(), AuthzConfVars.AUTHZ_UDF_WHITELIST_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_ALLOW_HIVE_IMPERSONATION.getVar(), AuthzConfVars.AUTHZ_ALLOW_HIVE_IMPERSONATION_DEPRECATED);
+    currentToDeprecatedProps.put(AuthzConfVars.AUTHZ_ONFAILURE_HOOKS.getVar(), AuthzConfVars.AUTHZ_ONFAILURE_HOOKS_DEPRECATED);
   };
 
   @SuppressWarnings("unused")
@@ -163,13 +166,13 @@ public class HiveAuthzConf extends Configuration {
     String retVal = super.get(varName);
     if (retVal == null) {
       // check if the deprecated value is set here
-      if (deprecatedConfigs.containsKey(varName)) {
-        retVal = super.get(deprecatedConfigs.get(varName).getVar());
+      if (currentToDeprecatedProps.containsKey(varName)) {
+        retVal = super.get(currentToDeprecatedProps.get(varName).getVar());
       }
       if (retVal == null) {
         retVal = AuthzConfVars.getDefault(varName);
       } else {
-        Log.info("Using the deprecated config setting " + deprecatedConfigs.get(varName).getVar() +
+        Log.warn("Using the deprecated config setting " + currentToDeprecatedProps.get(varName).getVar() +
             " instead of " + varName);
       }
     }

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzBindings.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzBindings.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzBindings.java
index fb3d3f0..fde3181 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzBindings.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzBindings.java
@@ -79,7 +79,7 @@ public class TestHiveAuthzBindings {
   private List<List<Authorizable>> inputTabHierarcyList = new ArrayList<List<Authorizable>>();
   private List<List<Authorizable>> outputTabHierarcyList = new ArrayList<List<Authorizable>>();
   private HiveConf hiveConf = new HiveConf();
-  private HiveAuthzConf authzConf = new HiveAuthzConf(Resources.getResource("access-site.xml"));
+  private HiveAuthzConf authzConf = new HiveAuthzConf(Resources.getResource("sentry-deprecated-site.xml"));
 
   // Privileges
   private static final HiveAuthzPrivileges queryPrivileges =

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzConf.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzConf.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzConf.java
index de59546..ea2c7ea 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzConf.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestHiveAuthzConf.java
@@ -16,6 +16,8 @@
  */
 package org.apache.sentry.binding.hive;
 
+import java.util.Arrays;
+import java.util.List;
 import org.apache.sentry.binding.hive.conf.HiveAuthzConf;
 import org.apache.sentry.binding.hive.conf.HiveAuthzConf.AuthzConfVars;
 import org.junit.Assert;
@@ -27,37 +29,54 @@ import com.google.common.io.Resources;
 public class TestHiveAuthzConf {
   private HiveAuthzConf authzConf;
   private HiveAuthzConf authzDepConf;
+  private List<AuthzConfVars> currentProps;
 
   @Before
   public void setUp() {
     authzConf =  new HiveAuthzConf(Resources.getResource("sentry-site.xml"));
-    authzDepConf =  new HiveAuthzConf(Resources.getResource("access-site.xml"));
+    authzDepConf = new HiveAuthzConf(Resources.getResource("sentry-deprecated-site.xml"));
+    currentProps = Arrays.asList(new AuthzConfVars[] {
+        AuthzConfVars.AUTHZ_PROVIDER, AuthzConfVars.AUTHZ_PROVIDER_RESOURCE,
+        AuthzConfVars.AUTHZ_SERVER_NAME, AuthzConfVars.AUTHZ_RESTRICT_DEFAULT_DB,
+        AuthzConfVars.SENTRY_TESTING_MODE, AuthzConfVars.AUTHZ_UDF_WHITELIST,
+        AuthzConfVars.AUTHZ_ALLOW_HIVE_IMPERSONATION, AuthzConfVars.AUTHZ_ONFAILURE_HOOKS });
+
   }
 
   @Test
   public void testConfig() {
-    Assert.assertEquals("org.apache.sentry.provider.file.fooProvider",
+    Assert.assertEquals("deprecated",
         authzDepConf.get(AuthzConfVars.AUTHZ_PROVIDER_DEPRECATED.getVar()));
     Assert.assertEquals("org.apache.sentry.provider.file.fooProvider",
         authzConf.get(AuthzConfVars.AUTHZ_PROVIDER.getVar()));
   }
 
+  /**
+   * Check that the deprecated property values are used if the current properties
+   * are not set.
+   */
   @Test
-  public void testConfigOverload() {
-    authzConf.set(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE.getVar(), "fooFile");
-    Assert.assertEquals("fooFile",
-        authzConf.get(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE.getVar()));
-    authzDepConf.set(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE_DEPRECATED.getVar(), "fooFile");
-    Assert.assertEquals("fooFile",
-        authzDepConf.get(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE_DEPRECATED.getVar()));
+  public void testDeprecatedConfig() {
+    for (AuthzConfVars currentVar : currentProps) {
+      Assert.assertEquals("deprecated", authzDepConf.get(currentVar.getVar()));
+    }
   }
 
   /**
-   * Check the deprecated properties from the config files that doesn't explicitly set it
+   * Test that deprecated configs do not override non-deprecated configs
    */
   @Test
-  public void testDeprecatedConfig() {
-    Assert.assertEquals("classpath:test-authz-provider.ini",
-        authzConf.get(AuthzConfVars.AUTHZ_PROVIDER_RESOURCE_DEPRECATED.getVar()));
+  public void testDeprecatedOverride() {
+    try {
+      for (AuthzConfVars currentVar : currentProps) {
+        authzDepConf.set(currentVar.getVar(), "current");
+        Assert.assertEquals("current", authzDepConf.get(currentVar.getVar()));
+      }
+    }
+    finally {
+      for (AuthzConfVars currentVar : currentProps) {
+        authzDepConf.unset(currentVar.getVar());
+      }
+    }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-binding/sentry-binding-hive/src/test/resources/access-site.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/resources/access-site.xml b/sentry-binding/sentry-binding-hive/src/test/resources/access-site.xml
deleted file mode 100644
index 1936c21..0000000
--- a/sentry-binding/sentry-binding-hive/src/test/resources/access-site.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-<configuration>
-  <property>
-    <name>hive.access.provider</name>
-    <value>org.apache.sentry.provider.file.fooProvider</value>
-  </property>
-  <property>
-    <name>hive.access.provider.resource</name>
-    <value>classpath:test-authz-provider.ini</value>
-  </property>
-  <property>
-    <name>hive.access.server</name>
-    <value>myHS2</value>
-  </property>
-</configuration>
-    

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-binding/sentry-binding-hive/src/test/resources/sentry-site.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/resources/sentry-site.xml b/sentry-binding/sentry-binding-hive/src/test/resources/sentry-site.xml
index beef40d..26fdab1 100644
--- a/sentry-binding/sentry-binding-hive/src/test/resources/sentry-site.xml
+++ b/sentry-binding/sentry-binding-hive/src/test/resources/sentry-site.xml
@@ -19,15 +19,15 @@
 
 <configuration>
   <property>
-    <name>hive.sentry.provider</name>
+    <name>sentry.provider</name>
     <value>org.apache.sentry.provider.file.fooProvider</value>
   </property>
   <property>
-    <name>hive.sentry.provider.resource</name>
+    <name>sentry.hive.provider.resource</name>
     <value>classpath:test-authz-provider.ini</value>
   </property>
   <property>
-    <name>hive.sentry.server</name>
+    <name>sentry.hive.server</name>
     <value>myHS2</value>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/7649aad9/sentry-tests/sentry-tests-hive/src/test/resources/sentry-site.xml
----------------------------------------------------------------------
diff --git a/sentry-tests/sentry-tests-hive/src/test/resources/sentry-site.xml b/sentry-tests/sentry-tests-hive/src/test/resources/sentry-site.xml
index de0c9cf..d068011 100644
--- a/sentry-tests/sentry-tests-hive/src/test/resources/sentry-site.xml
+++ b/sentry-tests/sentry-tests-hive/src/test/resources/sentry-site.xml
@@ -19,15 +19,15 @@
 
 <configuration>
   <property>
-    <name>hive.sentry.provider</name>
+    <name>sentry.provider</name>
     <value>invalid</value>
   </property>
   <property>
-    <name>hive.sentry.provider.resource</name>
+    <name>sentry.hive.provider.resource</name>
     <value>invalid</value>
   </property>
   <property>
-    <name>hive.sentry.server</name>
+    <name>sentry.hive.server</name>
     <value>myHS2</value>
   </property>
 </configuration>