You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by co...@apache.org on 2016/06/13 02:52:17 UTC

[13/18] sentry git commit: SENTRY-1299: Add a test case to verify SentryStore#verifySentryStoreSchema works(Colin Ma, reviewed by Dapeng Sun)

SENTRY-1299: Add a test case to verify SentryStore#verifySentryStoreSchema works(Colin Ma, reviewed by Dapeng Sun)


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

Branch: refs/heads/SENTRY-1205
Commit: 24f7c2d95184ec4cea9196574342159319f96533
Parents: e67bde0
Author: Colin Ma <co...@apache.org>
Authored: Thu Jun 2 10:29:41 2016 +0800
Committer: Colin Ma <co...@apache.org>
Committed: Thu Jun 2 10:29:41 2016 +0800

----------------------------------------------------------------------
 .../db/service/persistent/SentryStore.java      |  2 +-
 .../db/service/persistent/TestSentryStore.java  | 22 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sentry/blob/24f7c2d9/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
index 49459bd..b7ef0e9 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
@@ -193,7 +193,7 @@ public class SentryStore {
   }
 
   // ensure that the backend DB schema is set
-  private void verifySentryStoreSchema(boolean checkVersion)
+  public void verifySentryStoreSchema(boolean checkVersion)
           throws SentryNoSuchObjectException, SentryAccessDeniedException {
     if (!checkVersion) {
       setSentryVersion(SentryStoreSchemaInfo.getSentryVersion(),

http://git-wip-us.apache.org/repos/asf/sentry/blob/24f7c2d9/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java
index 5d17538..bc7fe12 100644
--- a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java
+++ b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.security.alias.CredentialProvider;
 import org.apache.hadoop.security.alias.CredentialProviderFactory;
 import org.apache.hadoop.security.alias.UserProvider;
+import org.apache.sentry.core.common.exception.SentryAccessDeniedException;
 import org.apache.sentry.core.model.db.AccessConstants;
 import org.apache.sentry.core.common.exception.SentryAlreadyExistsException;
 import org.apache.sentry.core.common.exception.SentryGrantDeniedException;
@@ -2057,6 +2058,27 @@ public class TestSentryStore extends org.junit.Assert {
 
   }
 
+  @Test
+  public void testSentryVersionCheck() throws Exception {
+    // don't verify version, the current version willll be set in MSentryVersion
+    sentryStore.verifySentryStoreSchema(false);
+    assertEquals(sentryStore.getSentryVersion(),
+        SentryStoreSchemaInfo.getSentryVersion());
+
+    // verify the version with the same value
+    sentryStore.verifySentryStoreSchema(true);
+
+    // verify the version with the different value
+    sentryStore.setSentryVersion("test-version", "test-version");
+    try {
+      sentryStore.verifySentryStoreSchema(true);
+      fail("SentryAccessDeniedException should be thrown.");
+    } catch (SentryAccessDeniedException e) {
+      // the excepted exception, recover the version
+      sentryStore.verifySentryStoreSchema(false);
+    }
+  }
+
   protected static void addGroupsToUser(String user, String... groupNames) {
     policyFile.addGroupsToUser(user, groupNames);
   }