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);