You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sd...@apache.org on 2016/07/04 02:22:09 UTC

sentry git commit: SENTRY-320: show role grant group groupname should not throw an exception if group doesnt exist in db (Ke Jia via Dapeng Sun)

Repository: sentry
Updated Branches:
  refs/heads/master 312ed27fe -> 528f34a89


SENTRY-320: show role grant group groupname should not throw an exception if group doesnt exist in db (Ke Jia via Dapeng Sun)


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

Branch: refs/heads/master
Commit: 528f34a899482a7726df0e3eacc35d98741b7a9e
Parents: 312ed27
Author: Sun Dapeng <sd...@apache.org>
Authored: Mon Jul 4 10:05:32 2016 +0800
Committer: Sun Dapeng <sd...@apache.org>
Committed: Mon Jul 4 10:05:39 2016 +0800

----------------------------------------------------------------------
 .../SentryPolicyServiceClientDefaultImpl.java   |  6 +++++
 .../e2e/dbprovider/TestDatabaseProvider.java    | 13 +++++++++--
 .../e2e/dbprovider/TestGrantUserToRole.java     | 24 ++++++++++++++++++++
 3 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sentry/blob/528f34a8/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyServiceClientDefaultImpl.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyServiceClientDefaultImpl.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyServiceClientDefaultImpl.java
index 9a28eae..d2d3f9e 100644
--- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyServiceClientDefaultImpl.java
+++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyServiceClientDefaultImpl.java
@@ -21,6 +21,7 @@ package org.apache.sentry.provider.db.service.thrift;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.security.PrivilegedExceptionAction;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -237,8 +238,13 @@ public class SentryPolicyServiceClientDefaultImpl implements SentryPolicyService
     request.setRequestorUserName(requestorUserName);
     request.setGroupName(groupName);
     TListSentryRolesResponse response;
+    Set<TSentryRole> roles = new HashSet<TSentryRole>();
     try {
       response = client.list_sentry_roles_by_group(request);
+      Status status = Status.fromCode(response.getStatus().getValue());
+      if (status == Status.NO_SUCH_OBJECT) {
+        return roles;
+      }
       Status.throwIfNotOk(response.getStatus());
       return response.getRoles();
     } catch (TException e) {

http://git-wip-us.apache.org/repos/asf/sentry/blob/528f34a8/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
----------------------------------------------------------------------
diff --git a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
index ff4eeaf..82c706e 100644
--- a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
+++ b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
@@ -2019,8 +2019,17 @@ public class TestDatabaseProvider extends AbstractTestWithStaticConfiguration {
     expected.add(testRole1);
     assertTestRoles(resultSet, expected, false);
 
-    context.assertSentryException(statement, "SHOW ROLE GRANT GROUP Admin",
-        SentryNoSuchObjectException.class.getSimpleName());
+    ResultSet res = statement.executeQuery("SHOW ROLE GRANT GROUP Admin");
+
+    List<String> expectedResult = new ArrayList<String>();
+    List<String> returnedResult = new ArrayList<String>();
+
+    while (res.next()) {
+      returnedResult.add(res.getString(1).trim());
+    }
+    validateReturnedResult(expectedResult, returnedResult);
+    returnedResult.clear();
+    expectedResult.clear();
 
     statement.close();
     connection.close();

http://git-wip-us.apache.org/repos/asf/sentry/blob/528f34a8/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestGrantUserToRole.java
----------------------------------------------------------------------
diff --git a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestGrantUserToRole.java b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestGrantUserToRole.java
index 4ce30c1..5364937 100644
--- a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestGrantUserToRole.java
+++ b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestGrantUserToRole.java
@@ -24,6 +24,8 @@ import static org.junit.Assert.fail;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Set;
 
 import org.apache.sentry.tests.e2e.hive.AbstractTestWithStaticConfiguration;
@@ -144,6 +146,28 @@ public class TestGrantUserToRole extends AbstractTestWithStaticConfiguration {
   }
 
   @Test
+  public void testShowGrantNotExistGroup() throws Exception {
+    Connection connection = context.createConnection(ADMIN1);
+    Statement statement = context.createStatement(connection);
+    //group1 does not exist in db;
+    ResultSet res = statement.executeQuery("SHOW ROLE GRANT GROUP group1");
+
+    List<String> expectedResult = new ArrayList<String>();
+    List<String> returnedResult = new ArrayList<String>();
+
+    while (res.next()) {
+      returnedResult.add(res.getString(1).trim());
+    }
+    validateReturnedResult(expectedResult, returnedResult);
+    returnedResult.clear();
+    expectedResult.clear();
+
+    statement.close();
+    connection.close();
+
+  }
+
+  @Test
   public void testAuthorizationForUsersWithRoles() throws Exception {
     Connection connection = context.createConnection(ADMIN1);
     Statement statement = context.createStatement(connection);