You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sr...@apache.org on 2014/04/16 01:14:13 UTC

git commit: SENTRY-165: Implement createShowRolesTask() in SentryHiveAuthorizationTaskFactoryImpl (Sravya Tirukkovalur via Brock Noland)

Repository: incubator-sentry
Updated Branches:
  refs/heads/master 197164e06 -> a337480eb


SENTRY-165: Implement createShowRolesTask() in SentryHiveAuthorizationTaskFactoryImpl (Sravya Tirukkovalur via Brock Noland)


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

Branch: refs/heads/master
Commit: a337480eb2cbf7f61716aaed6c31b4e11b63bb4a
Parents: 197164e
Author: Sravya Tirukkovalur <sr...@clouera.com>
Authored: Mon Apr 14 18:31:15 2014 -0700
Committer: Sravya Tirukkovalur <sr...@clouera.com>
Committed: Tue Apr 15 16:06:26 2014 -0700

----------------------------------------------------------------------
 .../SentryHiveAuthorizationTaskFactoryImpl.java | 31 ++++++++++++--------
 .../TestSentryHiveAuthorizationTaskFactory.java | 30 +++++++++++++++----
 2 files changed, 43 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/a337480e/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
index de0e460..2e7a9d9 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
@@ -16,11 +16,7 @@
  */
 package org.apache.sentry.binding.hive;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
+import com.google.common.base.Preconditions;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.SentryHiveConstants;
 import org.apache.hadoop.hive.conf.HiveConf;
@@ -50,7 +46,10 @@ import org.apache.hadoop.hive.ql.security.authorization.PrivilegeRegistry;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.sentry.core.model.db.AccessConstants;
 
-import com.google.common.base.Preconditions;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
 
 public class SentryHiveAuthorizationTaskFactoryImpl implements HiveAuthorizationTaskFactory {
 
@@ -280,7 +279,18 @@ public class SentryHiveAuthorizationTaskFactoryImpl implements HiveAuthorization
   @Override
   public Task<? extends Serializable> createShowCurrentRoleTask(HashSet<ReadEntity> inputs,
       HashSet<WriteEntity> outputs, Path resultFile) throws SemanticException {
-    throw new SemanticException("TODO IN FOLLOW ON");
+    RoleDDLDesc ddlDesc = new RoleDDLDesc(null, RoleDDLDesc.RoleOperation.SHOW_CURRENT_ROLE);
+    ddlDesc.setResFile(resultFile.toString());
+    return createTask(new DDLWork(inputs, outputs, ddlDesc));
+  }
+
+  @Override
+  public Task<? extends Serializable> createShowRolesTask(ASTNode ast, Path resFile,
+      HashSet<ReadEntity> inputs, HashSet<WriteEntity> outputs) throws SemanticException {
+    RoleDDLDesc showRolesDesc = new RoleDDLDesc(null, null, RoleDDLDesc.RoleOperation.SHOW_ROLES,
+        null);
+    showRolesDesc.setResFile(resFile.toString());
+    return createTask(new DDLWork(inputs, outputs, showRolesDesc));
   }
 
   private PrivilegeObjectDesc analyzePrivilegeObject(ASTNode ast)
@@ -353,10 +363,5 @@ public class SentryHiveAuthorizationTaskFactoryImpl implements HiveAuthorization
     return task;
   }
 
-  @Override
-  public Task<? extends Serializable> createShowRolesTask(ASTNode ast,
-      Path resFile, HashSet<ReadEntity> inputs, HashSet<WriteEntity> outputs) throws SemanticException {
-    /* TODO */
-    throw new SemanticException("TODO IN FOLLOW ON");
-  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/a337480e/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
index a61f609..ac0d170 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
@@ -17,12 +17,7 @@
  */
 package org.apache.sentry.binding.hive;
 
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-
 import junit.framework.Assert;
-
 import org.apache.hadoop.hive.SentryHiveConstants;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
@@ -53,6 +48,10 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.List;
+
 public class TestSentryHiveAuthorizationTaskFactory {
 
   private static final String ALL = "ALL";
@@ -348,6 +347,27 @@ public class TestSentryHiveAuthorizationTaskFactory {
         SentryHiveConstants.GRANT_REVOKE_NOT_SUPPORTED_FOR_PRINCIPAL + "GROUP");
   }
 
+  /**
+   * SHOW ROLES
+   */
+  @Test
+  public void testShowRoles() throws Exception {
+    DDLWork work = analyze(parse("SHOW ROLES"));
+    RoleDDLDesc roleDDLDesc = work.getRoleDDLDesc();
+    Assert.assertEquals(RoleOperation.SHOW_ROLES, roleDDLDesc.getOperation());
+  }
+
+  /**
+   * SHOW CURRENT ROLE
+   */
+  @Test
+  public void testShowCurrentRole() throws Exception {
+    DDLWork work = analyze(parse("SHOW CURRENT ROLES"));
+    RoleDDLDesc roleDDLDesc = work.getRoleDDLDesc();
+    Assert.assertEquals(PrincipalType.USER, roleDDLDesc.getPrincipalType());
+    Assert.assertEquals(RoleOperation.SHOW_CURRENT_ROLE, roleDDLDesc.getOperation());
+  }
+
   private void expectSemanticException(String command, String msg) throws Exception {
     try {
       analyze(parse(command));