sentry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pras...@apache.org
Subject [03/15] SENTRY-432: Synchronization of HDFS permissions with Sentry permissions. First refresh (Arun Suresh via Prasad Mujumdar)
Date Mon, 13 Oct 2014 23:25:59 GMT
http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-hdfs/src/main/java/org/apache/sentry/hdfs/UpdateableAuthzPaths.java
----------------------------------------------------------------------
diff --git a/sentry-hdfs/src/main/java/org/apache/sentry/hdfs/UpdateableAuthzPaths.java b/sentry-hdfs/src/main/java/org/apache/sentry/hdfs/UpdateableAuthzPaths.java
deleted file mode 100644
index 165892d..0000000
--- a/sentry-hdfs/src/main/java/org/apache/sentry/hdfs/UpdateableAuthzPaths.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * 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.
- */
-package org.apache.sentry.hdfs;
-
-import java.util.List;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.ReadWriteLock;
-
-import org.apache.sentry.hdfs.service.thrift.TPathChanges;
-import org.apache.sentry.hdfs.service.thrift.TPathsDump;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UpdateableAuthzPaths implements AuthzPaths, Updateable<PathsUpdate> {
-  private volatile HMSPaths paths;
-  private final AtomicLong seqNum = new AtomicLong(0);
-
-  private static Logger LOG = LoggerFactory.getLogger(UpdateableAuthzPaths.class);
-  
-  public UpdateableAuthzPaths(String[] pathPrefixes) {
-    this.paths = new HMSPaths(pathPrefixes);
-  }
-
-  UpdateableAuthzPaths(HMSPaths paths) {
-    this.paths = paths;
-  }
-
-  @Override
-  public boolean isUnderPrefix(String[] pathElements) {
-    return paths.isUnderPrefix(pathElements);
-  }
-
-  @Override
-  public String findAuthzObject(String[] pathElements) {
-    return  paths.findAuthzObject(pathElements);
-  }
-
-  @Override
-  public String findAuthzObjectExactMatch(String[] pathElements) {
-    return  paths.findAuthzObjectExactMatch(pathElements);
-  }
-
-  @Override
-  public UpdateableAuthzPaths updateFull(PathsUpdate update) {
-    UpdateableAuthzPaths other = getPathsDump().initializeFromDump(
-        update.getThriftObject().getPathsDump());
-    other.seqNum.set(update.getSeqNum());
-    return other;
-  }
-
-  @Override
-  public void updatePartial(Iterable<PathsUpdate> updates, ReadWriteLock lock) {
-    lock.writeLock().lock();
-    try {
-      int counter = 0;
-      for (PathsUpdate update : updates) {
-        applyPartialUpdate(update);
-        if (++counter > 99) {
-          counter = 0;
-          lock.writeLock().unlock();
-          lock.writeLock().lock();
-        }
-        seqNum.set(update.getSeqNum());
-        LOG.warn("##### Updated paths seq Num [" + seqNum.get() + "]");
-      }
-    } finally {
-      lock.writeLock().unlock();
-    }
-  }
-
-  private void applyPartialUpdate(PathsUpdate update) {
-    for (TPathChanges pathChanges : update.getPathChanges()) {
-      paths.addPathsToAuthzObject(pathChanges.getAuthzObj(), pathChanges
-          .getAddPaths(), true);
-      List<List<String>> delPaths = pathChanges.getDelPaths();
-      if ((delPaths.size() == 1) && (delPaths.get(0).size() == 1)
-          && (delPaths.get(0).get(0).equals(PathsUpdate.ALL_PATHS))) {
-        // Remove all paths.. eg. drop table
-        paths.deleteAuthzObject(pathChanges.getAuthzObj());
-      } else {
-        paths.deletePathsFromAuthzObject(pathChanges.getAuthzObj(), pathChanges
-            .getDelPaths());
-      }
-    }
-  }
-
-  @Override
-  public long getLastUpdatedSeqNum() {
-    return seqNum.get();
-  }
-
-  @Override
-  public PathsUpdate createFullImageUpdate(long currSeqNum) {
-    PathsUpdate pathsUpdate = new PathsUpdate(currSeqNum, true);
-    pathsUpdate.getThriftObject().setPathsDump(getPathsDump().createPathsDump());
-    return pathsUpdate;
-  }
-
-  @Override
-  public AuthzPathsDumper<UpdateableAuthzPaths> getPathsDump() {
-    return new AuthzPathsDumper<UpdateableAuthzPaths>() {
-
-      @Override
-      public TPathsDump createPathsDump() {
-        return UpdateableAuthzPaths.this.paths.getPathsDump().createPathsDump();
-      }
-
-      @Override
-      public UpdateableAuthzPaths initializeFromDump(TPathsDump pathsDump) {
-        return new UpdateableAuthzPaths(new HMSPaths().getPathsDump().initializeFromDump(
-            pathsDump));
-      }
-    };
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-hdfs/src/main/resources/sentry_hdfs_service.thrift
----------------------------------------------------------------------
diff --git a/sentry-hdfs/src/main/resources/sentry_hdfs_service.thrift b/sentry-hdfs/src/main/resources/sentry_hdfs_service.thrift
deleted file mode 100644
index 9212b64..0000000
--- a/sentry-hdfs/src/main/resources/sentry_hdfs_service.thrift
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/local/bin/thrift -java
-
-/**
- * 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.
- */
-
-#
-# Thrift Service that the MetaStore is built on
-#
-
-include "share/fb303/if/fb303.thrift"
-
-namespace java org.apache.sentry.hdfs.service.thrift
-namespace php sentry.hdfs.thrift
-namespace cpp Apache.Sentry.HDFS.Thrift
-
-struct TPathChanges {
-1: required string authzObj;
-2: required list<list<string>> addPaths;
-3: required list<list<string>> delPaths;
-}
-
-struct TPathEntry {
-1: required byte type;
-2: required string pathElement;
-3: optional string authzObj;
-4: required set<i32> children;
-}
-
-struct TPathsDump {
-1: required i32 rootId;
-2: required map<i32,TPathEntry> nodeMap;
-}
-
-struct TPathsUpdate {
-1: required bool hasFullImage;
-2: optional TPathsDump pathsDump;
-3: required i64 seqNum;
-4: required list<TPathChanges> pathChanges;
-}
-
-struct TPrivilegeChanges {
-1: required string authzObj;
-2: required map<string, string> addPrivileges;
-3: required map<string, string> delPrivileges;
-}
-
-struct TRoleChanges {
-1: required string role;
-2: required list<string> addGroups;
-3: required list<string> delGroups;
-}
-
-struct TPermissionsUpdate {
-1: required bool hasfullImage;
-2: required i64 seqNum;
-3: required map<string, TPrivilegeChanges> privilegeChanges;
-4: required map<string, TRoleChanges> roleChanges; 
-}
-
-struct TAuthzUpdateResponse {
-1: optional list<TPathsUpdate> authzPathUpdate,
-2: optional list<TPermissionsUpdate> authzPermUpdate,
-}
-
-service SentryHDFSService
-{
-  # HMS Path cache
-  void handle_hms_notification(1:TPathsUpdate pathsUpdate);
-
-  TAuthzUpdateResponse get_all_authz_updates_from(1:i64 permSeqNum, 2:i64 pathSeqNum);
-  map<string, list<string>> get_all_related_paths(1:string path, 2:bool exactMatch);
-}

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPaths.java
----------------------------------------------------------------------
diff --git a/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPaths.java b/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPaths.java
deleted file mode 100644
index 29868ae..0000000
--- a/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPaths.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/**
- * 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.
- */
-package org.apache.sentry.hdfs;
-
-import java.util.List;
-
-import org.apache.hadoop.fs.Path;
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
-public class TestHMSPaths {
-
-  @Test
-  public void testGetPathElements() {
-    List<String> as2 = HMSPaths.getPathElements(new String("/a/b"));
-    List<String> as1 = HMSPaths.getPathElements(new String("/a/b"));
-    Assert.assertEquals(as1, as2);
-
-    List<String> as = HMSPaths.getPathElements(new String("/a/b"));
-    Assert.assertEquals(Lists.newArrayList("a", "b"), as);
-
-    as = HMSPaths.getPathElements(new String("//a/b"));
-    Assert.assertEquals(Lists.newArrayList("a", "b"), as);
-
-    as = HMSPaths.getPathElements(new String("/a//b"));
-    Assert.assertEquals(Lists.newArrayList("a", "b"), as);
-
-    as = HMSPaths.getPathElements(new String("/a/b/"));
-    Assert.assertEquals(Lists.newArrayList("a", "b"), as);
-
-    as = HMSPaths.getPathElements(new String("//a//b//"));
-    Assert.assertEquals(Lists.newArrayList("a", "b"), as);
-  }
-
-  @Test
-  public void testEntryType() {
-    Assert.assertTrue(HMSPaths.EntryType.DIR.isRemoveIfDangling());
-    Assert.assertFalse(HMSPaths.EntryType.PREFIX.isRemoveIfDangling());
-    Assert.assertFalse(
-        HMSPaths.EntryType.AUTHZ_OBJECT.isRemoveIfDangling());
-  }
-  
-  @Test
-  public void testRootEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(false);
-    root.toString();
-    Assert.assertNull(root.getParent());
-    Assert.assertEquals(HMSPaths.EntryType.DIR, root.getType());
-    Assert.assertNull(root.getAuthzObj());
-    Assert.assertEquals(Path.SEPARATOR, root.getFullPath());
-    Assert.assertTrue(root.getChildren().isEmpty());
-    root.delete();
-    try {
-      root.find(null, true);
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-    try {
-      root.find(new String[0], true);
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-    try {
-      root.find(null, false);
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-    try {
-      root.find(new String[0], false);
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-    Assert.assertNull(root.find(new String[]{"a"}, true));
-    Assert.assertNull(root.find(new String[]{"a"}, false));
-    Assert.assertNull(root.findPrefixEntry(Lists.newArrayList("a")));
-
-    root.delete();
-  }
-
-  @Test
-  public void testRootPrefixEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(true);
-    root.toString();
-
-    Assert.assertNull(root.find(new String[]{"a"}, true));
-    Assert.assertNull(root.find(new String[]{"a"}, false));
-    Assert.assertEquals(root, root.findPrefixEntry(Lists.newArrayList("a")));
-    Assert.assertEquals(root, root.findPrefixEntry(Lists.newArrayList("a", "b")));
-
-    try {
-      root.createPrefix(Lists.newArrayList("a"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-  }
-
-  @Test
-  public void testImmediatePrefixEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(false);
-    HMSPaths.Entry entry = root.createPrefix(Lists.newArrayList("a"));
-    entry.toString();
-    
-    Assert.assertEquals(1, root.getChildren().size());
-
-    Assert.assertEquals(root, entry.getParent());
-    Assert.assertEquals(HMSPaths.EntryType.PREFIX, entry.getType());
-    Assert.assertEquals("a", entry.getPathElement());
-    Assert.assertNull(entry.getAuthzObj());
-    Assert.assertEquals(Path.SEPARATOR + "a", entry.getFullPath());
-    Assert.assertTrue(entry.getChildren().isEmpty());
-
-    Assert.assertEquals(entry, root.findPrefixEntry(Lists.newArrayList("a")));
-    Assert.assertEquals(entry, root.findPrefixEntry(Lists.newArrayList("a", "b")));
-
-    Assert.assertNull(root.find(new String[]{"a", "b"}, false));
-
-    Assert.assertNull(root.find(new String[]{"b"}, false));
-    Assert.assertNull(root.findPrefixEntry(Lists.newArrayList("b")));
-
-    try {
-      root.createPrefix(Lists.newArrayList("a", "b"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-
-    try {
-      root.createPrefix(Lists.newArrayList("a", "b", "c"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-
-    entry.delete();
-    Assert.assertTrue(root.getChildren().isEmpty());
-  }
-
-  @Test
-  public void testFurtherPrefixEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(false);
-    HMSPaths.Entry entry = root.createPrefix(Lists.newArrayList("a", "b"));
-    entry.toString();
-
-    Assert.assertEquals(1, root.getChildren().size());
-
-    Assert.assertEquals(root, entry.getParent().getParent());
-    Assert.assertEquals(HMSPaths.EntryType.PREFIX, entry.getType());
-    Assert.assertEquals(HMSPaths.EntryType.DIR, 
-        entry.getParent().getType());
-    Assert.assertEquals("b", entry.getPathElement());
-    Assert.assertEquals("a", entry.getParent().getPathElement());
-    Assert.assertNull(entry.getAuthzObj());
-    Assert.assertNull(entry.getParent().getAuthzObj());
-    Assert.assertEquals(Path.SEPARATOR + "a" + Path.SEPARATOR + "b", 
-        entry.getFullPath());
-    Assert.assertEquals(Path.SEPARATOR + "a", entry.getParent().getFullPath());
-    Assert.assertTrue(entry.getChildren().isEmpty());
-    Assert.assertEquals(1, entry.getParent().getChildren().size());
-
-    Assert.assertEquals(entry, root.findPrefixEntry(Lists.newArrayList("a", "b")));
-    Assert.assertNull(root.findPrefixEntry(Lists.newArrayList("a")));
-
-    Assert.assertNull(root.find(new String[]{"a", "b", "c"}, false));
-
-    try {
-      root.createPrefix(Lists.newArrayList("a", "b"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-
-    try {
-      root.createPrefix(Lists.newArrayList("a", "b", "c"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-
-    entry.delete();
-    Assert.assertTrue(root.getChildren().isEmpty());
-  }
-
-  @Test
-  public void testImmediateAuthzEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(false);
-    HMSPaths.Entry prefix = root.createPrefix(Lists.newArrayList("a", "b"));
-
-    HMSPaths.Entry entry = root.createAuthzObjPath(
-        Lists.newArrayList("a", "b", "p1"), "A");
-    Assert.assertEquals(prefix, entry.getParent());
-    Assert.assertEquals(HMSPaths.EntryType.AUTHZ_OBJECT, entry.getType());
-    Assert.assertEquals("p1", entry.getPathElement());
-    Assert.assertEquals("A", entry.getAuthzObj());
-    Assert.assertEquals(Path.SEPARATOR + "a" + Path.SEPARATOR + "b" +
-        Path.SEPARATOR + "p1", entry.getFullPath());
-
-    try {
-      root.createPrefix(Lists.newArrayList("a", "b", "p1", "c"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-
-    Assert.assertEquals(entry, root.find(new String[]{"a", "b", "p1"}, true));
-    Assert.assertEquals(entry, root.find(new String[]{"a", "b", "p1"}, false));
-    Assert.assertEquals(entry, root.find(new String[]{"a", "b", "p1", "c"}, 
-        true));
-    Assert.assertNull(root.find(new String[]{"a", "b", "p1", "c"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "p1")));
-
-    root.find(new String[]{"a", "b", "p1"}, true).delete();
-    Assert.assertNull(root.find(new String[]{"a", "b", "p1"}, false));
-    Assert.assertNull(root.find(new String[]{"a", "b"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "p1")));
-
-  }
-
-  @Test
-  public void testFurtherAuthzEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(false);
-    HMSPaths.Entry prefix = root.createPrefix(Lists.newArrayList("a", "b"));
-
-    HMSPaths.Entry entry = root.createAuthzObjPath(
-        Lists.newArrayList("a", "b", "t", "p1"), "A");
-    Assert.assertEquals(prefix, entry.getParent().getParent());
-    Assert.assertEquals(HMSPaths.EntryType.AUTHZ_OBJECT, entry.getType());
-    Assert.assertEquals("p1", entry.getPathElement());
-    Assert.assertEquals("A", entry.getAuthzObj());
-    Assert.assertEquals(Path.SEPARATOR + "a" + Path.SEPARATOR + "b" +
-        Path.SEPARATOR + "t" + Path.SEPARATOR + "p1", entry.getFullPath());
-
-    try {
-      root.createPrefix(Lists.newArrayList("a", "b", "p1", "t", "c"));
-      Assert.fail();
-    } catch (IllegalArgumentException ex) {
-      //NOP
-    }
-
-    HMSPaths.Entry ep2 = root.createAuthzObjPath(
-        Lists.newArrayList("a", "b", "t", "p1", "p2"), "A");
-
-    Assert.assertEquals(HMSPaths.EntryType.AUTHZ_OBJECT, entry.getType());
-    Assert.assertEquals("p1", entry.getPathElement());
-    Assert.assertEquals("A", entry.getAuthzObj());
-
-    Assert.assertEquals(HMSPaths.EntryType.AUTHZ_OBJECT, ep2.getType());
-    Assert.assertEquals("p2", ep2.getPathElement());
-    Assert.assertEquals("A", entry.getAuthzObj());
-
-    Assert.assertEquals(entry, root.find(new String[]{"a", "b", "t", "p1"},
-        true));
-    Assert.assertEquals(entry, root.find(new String[]{"a", "b", "t", "p1"},
-        false));
-    Assert.assertEquals(entry, root.find(new String[]{"a", "b", "t", "p1", "c"},
-        true));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1", "c"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p1")));
-
-    Assert.assertEquals(ep2, root.find(new String[]{"a", "b", "t", "p1", "p2"},
-        true));
-    Assert.assertEquals(ep2, root.find(new String[]{"a", "b", "t", "p1", "p2"},
-        false));
-    Assert.assertEquals(ep2, root.find(new String[]{"a", "b", "t", "p1", "p2", "c"},
-        true));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1", "p2", "c"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p1", "p2")));
-
-    root.find(new String[]{"a", "b", "t", "p1"}, false).delete();
-
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1"},
-        true));
-    Assert.assertEquals(HMSPaths.EntryType.DIR, entry.getType());
-    Assert.assertNull(entry.getAuthzObj());
-
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1"}, false));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t"}, false));
-    Assert.assertNull(root.find(new String[]{"a", "b"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p1")));
-
-    Assert.assertNotNull(root.find(new String[]{"a", "b", "t", "p1", "p2"}, false));
-    root.find(new String[]{"a", "b", "t", "p1", "p2"}, false).delete();
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1"}, false));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t"}, false));
-    Assert.assertNull(root.find(new String[]{"a", "b"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p1")));
-
-  }
-
-  @Test
-  public void testMultipleAuthzEntry() {
-    HMSPaths.Entry root = HMSPaths.Entry.createRoot(false);
-    HMSPaths.Entry prefix = root.createPrefix(Lists.newArrayList("a", "b"));
-
-    HMSPaths.Entry e1 = root.createAuthzObjPath(
-        Lists.newArrayList("a", "b", "t", "p1"), "A");
-    HMSPaths.Entry e2 = root.createAuthzObjPath(
-        Lists.newArrayList("a", "b", "t", "p2"), "A");
-
-
-    Assert.assertEquals(e1, root.find(new String[]{"a", "b", "t", "p1"}, true));
-    Assert.assertEquals(e1, root.find(new String[]{"a", "b", "t", "p1"}, 
-        false));
-    Assert.assertEquals(e1, root.find(new String[]{"a", "b", "t", "p1", "c"},
-        true));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1", "c"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p1")));
-
-    Assert.assertEquals(e2, root.find(new String[]{"a", "b", "t", "p2"}, true));
-    Assert.assertEquals(e2, root.find(new String[]{"a", "b", "t", "p2"}, 
-        false));
-    Assert.assertEquals(e2, root.find(new String[]{"a", "b", "t", "p2", "c"},
-        true));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p2", "c"}, false));
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p2")));
-
-    root.find(new String[]{"a", "b", "t", "p1"}, true).delete();
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p1"}, false));
-
-    root.find(new String[]{"a", "b", "t", "p2"}, true).delete();
-    Assert.assertNull(root.find(new String[]{"a", "b", "t", "p2"}, false));
-    Assert.assertNull(root.find(new String[]{"a", "b", "t"}, false));
-
-    Assert.assertEquals(prefix, root.findPrefixEntry(
-        Lists.newArrayList("a", "b", "t", "p3")));
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
----------------------------------------------------------------------
diff --git a/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java b/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
deleted file mode 100644
index dcd70c1..0000000
--- a/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestHMSPathsFullDump.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * 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.
- */
-package org.apache.sentry.hdfs;
-
-import junit.framework.Assert;
-
-import org.apache.sentry.hdfs.service.thrift.TPathsDump;
-import org.apache.thrift.TDeserializer;
-import org.apache.thrift.TException;
-import org.apache.thrift.TSerializer;
-import org.apache.thrift.protocol.TCompactProtocol;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
-public class TestHMSPathsFullDump {
-
-  @Test
-  public void testDumpAndInitialize() {
-    HMSPaths hmsPaths = new HMSPaths(new String[] {"/user/hive/warehouse"});
-    hmsPaths._addAuthzObject("db1", Lists.newArrayList("/user/hive/warehouse/db1"));
-    hmsPaths._addAuthzObject("db1.tbl11", Lists.newArrayList("/user/hive/warehouse/db1/tbl11"));
-    hmsPaths._addPathsToAuthzObject("db1.tbl11", Lists.newArrayList(
-        "/user/hive/warehouse/db1/tbl11/part111",
-        "/user/hive/warehouse/db1/tbl11/part112",
-        "/user/hive/warehouse/db1/tbl11/p1=1/p2=x"));
-    
-    Assert.assertEquals("db1", hmsPaths.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part111"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part112"}, false));
-
-    Assert.assertEquals("db1.tbl11", hmsPaths.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "p1=1", "p2=x"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "p1=1"}, true));
-
-    HMSPathsSerDe serDe = hmsPaths.getPathsDump();
-    TPathsDump pathsDump = serDe.createPathsDump();
-    HMSPaths hmsPaths2 = serDe.initializeFromDump(pathsDump);
-
-    Assert.assertEquals("db1", hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part111"}, false));
-    Assert.assertEquals("db1.tbl11", hmsPaths2.findAuthzObject(new String[]{"user", "hive", "warehouse", "db1", "tbl11", "part112"}, false));
-  }
-
-  @Test
-  public void testThrftSerialization() throws TException {
-    HMSPaths hmsPaths = new HMSPaths(new String[] {"/"});
-    String prefix = "/user/hive/warehouse/";
-    for (int dbNum = 0; dbNum < 1; dbNum++) {
-      String dbName = "db" + dbNum;
-      hmsPaths._addAuthzObject(dbName, Lists.newArrayList(prefix + dbName));
-      for (int tblNum = 0; tblNum < 1000000; tblNum++) {
-        String tblName = "tbl" + tblNum;
-        hmsPaths._addAuthzObject(dbName + "." + tblName, Lists.newArrayList(prefix + dbName + "/" + tblName));
-        for (int partNum = 0; partNum < 1; partNum++) {
-          String partName = "part" + partNum;
-          hmsPaths
-              ._addPathsToAuthzObject(
-                  dbName + "." + tblName,
-                  Lists.newArrayList(prefix + dbName + "/" + tblName + "/"
-                      + partName));
-        }
-      }
-    }
-    HMSPathsSerDe serDe = hmsPaths.getPathsDump();
-    long t1 = System.currentTimeMillis();
-    TPathsDump pathsDump = serDe.createPathsDump();
-    byte[] ser = new TSerializer(new TCompactProtocol.Factory()).serialize(pathsDump);
-    long serTime = System.currentTimeMillis() - t1;
-    System.out.println("Serialization Time: " + serTime + ", " + ser.length);
-
-    t1 = System.currentTimeMillis();
-    TPathsDump tPathsDump = new TPathsDump();
-    new TDeserializer(new TCompactProtocol.Factory()).deserialize(tPathsDump, ser);
-    HMSPaths fromDump = serDe.initializeFromDump(tPathsDump);
-    System.out.println("Deserialization Time: " + (System.currentTimeMillis() - t1));
-    Assert.assertEquals("db9.tbl999", fromDump.findAuthzObject(new String[]{"user", "hive", "warehouse", "db0", "tbl999"}, false));
-    Assert.assertEquals("db9.tbl999", fromDump.findAuthzObject(new String[]{"user", "hive", "warehouse", "db0", "tbl999", "part5"}, false));
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestUpdateableAuthzPaths.java
----------------------------------------------------------------------
diff --git a/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestUpdateableAuthzPaths.java b/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestUpdateableAuthzPaths.java
deleted file mode 100644
index 9d0d366..0000000
--- a/sentry-hdfs/src/test/java/org/apache/sentry/hdfs/TestUpdateableAuthzPaths.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * 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.
- */
-package org.apache.sentry.hdfs;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import org.apache.sentry.hdfs.service.thrift.TPathChanges;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
-public class TestUpdateableAuthzPaths {
-
-  @Test
-  public void testFullUpdate() {
-    HMSPaths hmsPaths = createBaseHMSPaths(1, 1);
-    assertEquals("db1", hmsPaths.findAuthzObjectExactMatch(new String[]{"db1"}));
-    assertEquals("db1.tbl11", hmsPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11"}));
-    assertEquals("db1.tbl11", hmsPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part111"}));
-    assertEquals("db1.tbl11", hmsPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part112"}));
-
-    UpdateableAuthzPaths authzPaths = new UpdateableAuthzPaths(hmsPaths);
-    PathsUpdate update = new PathsUpdate(1, true);
-    update.getThriftObject().setPathsDump(authzPaths.getPathsDump().createPathsDump());
-
-    UpdateableAuthzPaths authzPaths2 = new UpdateableAuthzPaths(new String[] {"/"});
-    UpdateableAuthzPaths pre = authzPaths2.updateFull(update);
-    assertFalse(pre == authzPaths2);
-    authzPaths2 = pre;
-
-    assertEquals("db1", authzPaths2.findAuthzObjectExactMatch(new String[]{"db1"}));
-    assertEquals("db1.tbl11", authzPaths2.findAuthzObjectExactMatch(new String[]{"db1", "tbl11"}));
-    assertEquals("db1.tbl11", authzPaths2.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part111"}));
-    assertEquals("db1.tbl11", authzPaths2.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part112"}));
-
-    // Ensure Full Update wipes old stuff
-    UpdateableAuthzPaths authzPaths3 = new UpdateableAuthzPaths(createBaseHMSPaths(2, 1));
-    update = new PathsUpdate(2, true);
-    update.getThriftObject().setPathsDump(authzPaths3.getPathsDump().createPathsDump());
-    pre = authzPaths2.updateFull(update);
-    assertFalse(pre == authzPaths2);
-    authzPaths2 = pre;
-
-    assertNull(authzPaths2.findAuthzObjectExactMatch(new String[]{"db1"}));
-    assertNull(authzPaths2.findAuthzObjectExactMatch(new String[]{"db1", "tbl11"}));
-
-    assertEquals("db2", authzPaths2.findAuthzObjectExactMatch(new String[]{"db2"}));
-    assertEquals("db2.tbl21", authzPaths2.findAuthzObjectExactMatch(new String[]{"db2", "tbl21"}));
-    assertEquals("db2.tbl21", authzPaths2.findAuthzObjectExactMatch(new String[]{"db2", "tbl21", "part211"}));
-    assertEquals("db2.tbl21", authzPaths2.findAuthzObjectExactMatch(new String[]{"db2", "tbl21", "part212"}));
-  }
-
-  @Test
-  public void testPartialUpdateAddPath() {
-    HMSPaths hmsPaths = createBaseHMSPaths(1, 1);
-    UpdateableAuthzPaths authzPaths = new UpdateableAuthzPaths(hmsPaths);
-    ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
-    // Create table
-    PathsUpdate update = new PathsUpdate(2, false);
-    TPathChanges pathChange = update.newPathChange("db1.tbl12");
-    pathChange.addToAddPaths(PathsUpdate.cleanPath("file:///db1/tbl12"));
-    authzPaths.updatePartial(Lists.newArrayList(update), lock);
-    
-    // Add partition
-    update = new PathsUpdate(3, false);
-    pathChange = update.newPathChange("db1.tbl12");
-    pathChange.addToAddPaths(PathsUpdate.cleanPath("file:///db1/tbl12/part121"));
-    authzPaths.updatePartial(Lists.newArrayList(update), lock);
-
-    // Ensure no change in existing Paths
-    assertEquals("db1", authzPaths.findAuthzObjectExactMatch(new String[]{"db1"}));
-    assertEquals("db1.tbl11", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11"}));
-    assertEquals("db1.tbl11", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part111"}));
-    assertEquals("db1.tbl11", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part112"}));
-
-    // Verify new Paths
-    assertEquals("db1.tbl12", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl12"}));
-    assertEquals("db1.tbl12", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl12", "part121"}));
-  }
-
-  @Test
-  public void testPartialUpdateDelPath() {
-    HMSPaths hmsPaths = createBaseHMSPaths(1, 1);
-    UpdateableAuthzPaths authzPaths = new UpdateableAuthzPaths(hmsPaths);
-    ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
-    assertEquals("db1.tbl11", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11"}));
-    assertEquals("db1.tbl11", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part111"}));
-    
-    // Drop partition
-    PathsUpdate update = new PathsUpdate(2, false);
-    TPathChanges pathChange = update.newPathChange("db1.tbl11");
-    pathChange.addToDelPaths(PathsUpdate.cleanPath("file:///db1/tbl11/part111"));
-    authzPaths.updatePartial(Lists.newArrayList(update), lock);
-
-    // Verify Paths deleted
-    assertNull(authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part111"}));
-
-    // Verify rest ok
-    assertEquals("db1.tbl11", authzPaths.findAuthzObjectExactMatch(new String[]{"db1", "tbl11", "part112"}));
-  }
-
-  private HMSPaths createBaseHMSPaths(int dbNum, int tblNum) {
-    String db = "db" + dbNum;
-    String tbl = "tbl" + dbNum + "" + tblNum;
-    String fullTbl = db + "." + tbl;
-    String dbPath = "/" + db;
-    String tblPath = "/" + db + "/" + tbl;
-    String partPath = tblPath + "/part" + dbNum + "" + tblNum;
-    HMSPaths hmsPaths = new HMSPaths(new String[] {"/"});
-    hmsPaths._addAuthzObject(db, Lists.newArrayList(dbPath));
-    hmsPaths._addAuthzObject(fullTbl, Lists.newArrayList(tblPath));
-    hmsPaths._addPathsToAuthzObject(fullTbl, Lists.newArrayList(
-        partPath + "1", partPath + "2" ));
-    return hmsPaths;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-hdfs/src/test/resources/hdfs-sentry.xml
----------------------------------------------------------------------
diff --git a/sentry-hdfs/src/test/resources/hdfs-sentry.xml b/sentry-hdfs/src/test/resources/hdfs-sentry.xml
deleted file mode 100644
index c23a431..0000000
--- a/sentry-hdfs/src/test/resources/hdfs-sentry.xml
+++ /dev/null
@@ -1,22 +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>
-  <!-- dummy file that gets rewritten by testcases in target test classpath -->
-</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-provider/sentry-provider-db/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/pom.xml b/sentry-provider/sentry-provider-db/pom.xml
index b8da31b..29b1f13 100644
--- a/sentry-provider/sentry-provider-db/pom.xml
+++ b/sentry-provider/sentry-provider-db/pom.xml
@@ -77,10 +77,6 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-hdfs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-core-common</artifactId>
     </dependency>
     <dependency>
@@ -127,11 +123,6 @@ limitations under the License.
       <artifactId>ant-contrib</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-hdfs-int</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-minikdc</artifactId>
       <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/78787d63/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java
----------------------------------------------------------------------
diff --git a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java b/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java
deleted file mode 100644
index 2bd860e..0000000
--- a/sentry-provider/sentry-provider-db/src/gen/thrift/gen-javabean/org/apache/sentry/provider/db/service/thrift/TListSentryPrivilegesByAuthRequest.java
+++ /dev/null
@@ -1,914 +0,0 @@
-/**
- * Autogenerated by Thrift Compiler (0.9.0)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.sentry.provider.db.service.thrift;
-
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TListSentryPrivilegesByAuthRequest implements org.apache.thrift.TBase<TListSentryPrivilegesByAuthRequest, TListSentryPrivilegesByAuthRequest._Fields>, java.io.Serializable, Cloneable {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TListSentryPrivilegesByAuthRequest");
-
-  private static final org.apache.thrift.protocol.TField PROTOCOL_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("protocol_version", org.apache.thrift.protocol.TType.I32, (short)1);
-  private static final org.apache.thrift.protocol.TField REQUESTOR_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("requestorUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField AUTHORIZABLE_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("authorizableSet", org.apache.thrift.protocol.TType.SET, (short)3);
-  private static final org.apache.thrift.protocol.TField GROUPS_FIELD_DESC = new org.apache.thrift.protocol.TField("groups", org.apache.thrift.protocol.TType.SET, (short)4);
-  private static final org.apache.thrift.protocol.TField ROLE_SET_FIELD_DESC = new org.apache.thrift.protocol.TField("roleSet", org.apache.thrift.protocol.TType.STRUCT, (short)5);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new TListSentryPrivilegesByAuthRequestStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new TListSentryPrivilegesByAuthRequestTupleSchemeFactory());
-  }
-
-  private int protocol_version; // required
-  private String requestorUserName; // required
-  private Set<TSentryAuthorizable> authorizableSet; // required
-  private Set<String> groups; // optional
-  private TSentryActiveRoleSet roleSet; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    PROTOCOL_VERSION((short)1, "protocol_version"),
-    REQUESTOR_USER_NAME((short)2, "requestorUserName"),
-    AUTHORIZABLE_SET((short)3, "authorizableSet"),
-    GROUPS((short)4, "groups"),
-    ROLE_SET((short)5, "roleSet");
-
-    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
-
-    static {
-      for (_Fields field : EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // PROTOCOL_VERSION
-          return PROTOCOL_VERSION;
-        case 2: // REQUESTOR_USER_NAME
-          return REQUESTOR_USER_NAME;
-        case 3: // AUTHORIZABLE_SET
-          return AUTHORIZABLE_SET;
-        case 4: // GROUPS
-          return GROUPS;
-        case 5: // ROLE_SET
-          return ROLE_SET;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __PROTOCOL_VERSION_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.GROUPS,_Fields.ROLE_SET};
-  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-  static {
-    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.PROTOCOL_VERSION, new org.apache.thrift.meta_data.FieldMetaData("protocol_version", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    tmpMap.put(_Fields.REQUESTOR_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("requestorUserName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.AUTHORIZABLE_SET, new org.apache.thrift.meta_data.FieldMetaData("authorizableSet", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSentryAuthorizable.class))));
-    tmpMap.put(_Fields.GROUPS, new org.apache.thrift.meta_data.FieldMetaData("groups", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.ROLE_SET, new org.apache.thrift.meta_data.FieldMetaData("roleSet", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSentryActiveRoleSet.class)));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TListSentryPrivilegesByAuthRequest.class, metaDataMap);
-  }
-
-  public TListSentryPrivilegesByAuthRequest() {
-    this.protocol_version = 1;
-
-  }
-
-  public TListSentryPrivilegesByAuthRequest(
-    int protocol_version,
-    String requestorUserName,
-    Set<TSentryAuthorizable> authorizableSet)
-  {
-    this();
-    this.protocol_version = protocol_version;
-    setProtocol_versionIsSet(true);
-    this.requestorUserName = requestorUserName;
-    this.authorizableSet = authorizableSet;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public TListSentryPrivilegesByAuthRequest(TListSentryPrivilegesByAuthRequest other) {
-    __isset_bitfield = other.__isset_bitfield;
-    this.protocol_version = other.protocol_version;
-    if (other.isSetRequestorUserName()) {
-      this.requestorUserName = other.requestorUserName;
-    }
-    if (other.isSetAuthorizableSet()) {
-      Set<TSentryAuthorizable> __this__authorizableSet = new HashSet<TSentryAuthorizable>();
-      for (TSentryAuthorizable other_element : other.authorizableSet) {
-        __this__authorizableSet.add(new TSentryAuthorizable(other_element));
-      }
-      this.authorizableSet = __this__authorizableSet;
-    }
-    if (other.isSetGroups()) {
-      Set<String> __this__groups = new HashSet<String>();
-      for (String other_element : other.groups) {
-        __this__groups.add(other_element);
-      }
-      this.groups = __this__groups;
-    }
-    if (other.isSetRoleSet()) {
-      this.roleSet = new TSentryActiveRoleSet(other.roleSet);
-    }
-  }
-
-  public TListSentryPrivilegesByAuthRequest deepCopy() {
-    return new TListSentryPrivilegesByAuthRequest(this);
-  }
-
-  @Override
-  public void clear() {
-    this.protocol_version = 1;
-
-    this.requestorUserName = null;
-    this.authorizableSet = null;
-    this.groups = null;
-    this.roleSet = null;
-  }
-
-  public int getProtocol_version() {
-    return this.protocol_version;
-  }
-
-  public void setProtocol_version(int protocol_version) {
-    this.protocol_version = protocol_version;
-    setProtocol_versionIsSet(true);
-  }
-
-  public void unsetProtocol_version() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PROTOCOL_VERSION_ISSET_ID);
-  }
-
-  /** Returns true if field protocol_version is set (has been assigned a value) and false otherwise */
-  public boolean isSetProtocol_version() {
-    return EncodingUtils.testBit(__isset_bitfield, __PROTOCOL_VERSION_ISSET_ID);
-  }
-
-  public void setProtocol_versionIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PROTOCOL_VERSION_ISSET_ID, value);
-  }
-
-  public String getRequestorUserName() {
-    return this.requestorUserName;
-  }
-
-  public void setRequestorUserName(String requestorUserName) {
-    this.requestorUserName = requestorUserName;
-  }
-
-  public void unsetRequestorUserName() {
-    this.requestorUserName = null;
-  }
-
-  /** Returns true if field requestorUserName is set (has been assigned a value) and false otherwise */
-  public boolean isSetRequestorUserName() {
-    return this.requestorUserName != null;
-  }
-
-  public void setRequestorUserNameIsSet(boolean value) {
-    if (!value) {
-      this.requestorUserName = null;
-    }
-  }
-
-  public int getAuthorizableSetSize() {
-    return (this.authorizableSet == null) ? 0 : this.authorizableSet.size();
-  }
-
-  public java.util.Iterator<TSentryAuthorizable> getAuthorizableSetIterator() {
-    return (this.authorizableSet == null) ? null : this.authorizableSet.iterator();
-  }
-
-  public void addToAuthorizableSet(TSentryAuthorizable elem) {
-    if (this.authorizableSet == null) {
-      this.authorizableSet = new HashSet<TSentryAuthorizable>();
-    }
-    this.authorizableSet.add(elem);
-  }
-
-  public Set<TSentryAuthorizable> getAuthorizableSet() {
-    return this.authorizableSet;
-  }
-
-  public void setAuthorizableSet(Set<TSentryAuthorizable> authorizableSet) {
-    this.authorizableSet = authorizableSet;
-  }
-
-  public void unsetAuthorizableSet() {
-    this.authorizableSet = null;
-  }
-
-  /** Returns true if field authorizableSet is set (has been assigned a value) and false otherwise */
-  public boolean isSetAuthorizableSet() {
-    return this.authorizableSet != null;
-  }
-
-  public void setAuthorizableSetIsSet(boolean value) {
-    if (!value) {
-      this.authorizableSet = null;
-    }
-  }
-
-  public int getGroupsSize() {
-    return (this.groups == null) ? 0 : this.groups.size();
-  }
-
-  public java.util.Iterator<String> getGroupsIterator() {
-    return (this.groups == null) ? null : this.groups.iterator();
-  }
-
-  public void addToGroups(String elem) {
-    if (this.groups == null) {
-      this.groups = new HashSet<String>();
-    }
-    this.groups.add(elem);
-  }
-
-  public Set<String> getGroups() {
-    return this.groups;
-  }
-
-  public void setGroups(Set<String> groups) {
-    this.groups = groups;
-  }
-
-  public void unsetGroups() {
-    this.groups = null;
-  }
-
-  /** Returns true if field groups is set (has been assigned a value) and false otherwise */
-  public boolean isSetGroups() {
-    return this.groups != null;
-  }
-
-  public void setGroupsIsSet(boolean value) {
-    if (!value) {
-      this.groups = null;
-    }
-  }
-
-  public TSentryActiveRoleSet getRoleSet() {
-    return this.roleSet;
-  }
-
-  public void setRoleSet(TSentryActiveRoleSet roleSet) {
-    this.roleSet = roleSet;
-  }
-
-  public void unsetRoleSet() {
-    this.roleSet = null;
-  }
-
-  /** Returns true if field roleSet is set (has been assigned a value) and false otherwise */
-  public boolean isSetRoleSet() {
-    return this.roleSet != null;
-  }
-
-  public void setRoleSetIsSet(boolean value) {
-    if (!value) {
-      this.roleSet = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case PROTOCOL_VERSION:
-      if (value == null) {
-        unsetProtocol_version();
-      } else {
-        setProtocol_version((Integer)value);
-      }
-      break;
-
-    case REQUESTOR_USER_NAME:
-      if (value == null) {
-        unsetRequestorUserName();
-      } else {
-        setRequestorUserName((String)value);
-      }
-      break;
-
-    case AUTHORIZABLE_SET:
-      if (value == null) {
-        unsetAuthorizableSet();
-      } else {
-        setAuthorizableSet((Set<TSentryAuthorizable>)value);
-      }
-      break;
-
-    case GROUPS:
-      if (value == null) {
-        unsetGroups();
-      } else {
-        setGroups((Set<String>)value);
-      }
-      break;
-
-    case ROLE_SET:
-      if (value == null) {
-        unsetRoleSet();
-      } else {
-        setRoleSet((TSentryActiveRoleSet)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case PROTOCOL_VERSION:
-      return Integer.valueOf(getProtocol_version());
-
-    case REQUESTOR_USER_NAME:
-      return getRequestorUserName();
-
-    case AUTHORIZABLE_SET:
-      return getAuthorizableSet();
-
-    case GROUPS:
-      return getGroups();
-
-    case ROLE_SET:
-      return getRoleSet();
-
-    }
-    throw new IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new IllegalArgumentException();
-    }
-
-    switch (field) {
-    case PROTOCOL_VERSION:
-      return isSetProtocol_version();
-    case REQUESTOR_USER_NAME:
-      return isSetRequestorUserName();
-    case AUTHORIZABLE_SET:
-      return isSetAuthorizableSet();
-    case GROUPS:
-      return isSetGroups();
-    case ROLE_SET:
-      return isSetRoleSet();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof TListSentryPrivilegesByAuthRequest)
-      return this.equals((TListSentryPrivilegesByAuthRequest)that);
-    return false;
-  }
-
-  public boolean equals(TListSentryPrivilegesByAuthRequest that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_protocol_version = true;
-    boolean that_present_protocol_version = true;
-    if (this_present_protocol_version || that_present_protocol_version) {
-      if (!(this_present_protocol_version && that_present_protocol_version))
-        return false;
-      if (this.protocol_version != that.protocol_version)
-        return false;
-    }
-
-    boolean this_present_requestorUserName = true && this.isSetRequestorUserName();
-    boolean that_present_requestorUserName = true && that.isSetRequestorUserName();
-    if (this_present_requestorUserName || that_present_requestorUserName) {
-      if (!(this_present_requestorUserName && that_present_requestorUserName))
-        return false;
-      if (!this.requestorUserName.equals(that.requestorUserName))
-        return false;
-    }
-
-    boolean this_present_authorizableSet = true && this.isSetAuthorizableSet();
-    boolean that_present_authorizableSet = true && that.isSetAuthorizableSet();
-    if (this_present_authorizableSet || that_present_authorizableSet) {
-      if (!(this_present_authorizableSet && that_present_authorizableSet))
-        return false;
-      if (!this.authorizableSet.equals(that.authorizableSet))
-        return false;
-    }
-
-    boolean this_present_groups = true && this.isSetGroups();
-    boolean that_present_groups = true && that.isSetGroups();
-    if (this_present_groups || that_present_groups) {
-      if (!(this_present_groups && that_present_groups))
-        return false;
-      if (!this.groups.equals(that.groups))
-        return false;
-    }
-
-    boolean this_present_roleSet = true && this.isSetRoleSet();
-    boolean that_present_roleSet = true && that.isSetRoleSet();
-    if (this_present_roleSet || that_present_roleSet) {
-      if (!(this_present_roleSet && that_present_roleSet))
-        return false;
-      if (!this.roleSet.equals(that.roleSet))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    HashCodeBuilder builder = new HashCodeBuilder();
-
-    boolean present_protocol_version = true;
-    builder.append(present_protocol_version);
-    if (present_protocol_version)
-      builder.append(protocol_version);
-
-    boolean present_requestorUserName = true && (isSetRequestorUserName());
-    builder.append(present_requestorUserName);
-    if (present_requestorUserName)
-      builder.append(requestorUserName);
-
-    boolean present_authorizableSet = true && (isSetAuthorizableSet());
-    builder.append(present_authorizableSet);
-    if (present_authorizableSet)
-      builder.append(authorizableSet);
-
-    boolean present_groups = true && (isSetGroups());
-    builder.append(present_groups);
-    if (present_groups)
-      builder.append(groups);
-
-    boolean present_roleSet = true && (isSetRoleSet());
-    builder.append(present_roleSet);
-    if (present_roleSet)
-      builder.append(roleSet);
-
-    return builder.toHashCode();
-  }
-
-  public int compareTo(TListSentryPrivilegesByAuthRequest other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-    TListSentryPrivilegesByAuthRequest typedOther = (TListSentryPrivilegesByAuthRequest)other;
-
-    lastComparison = Boolean.valueOf(isSetProtocol_version()).compareTo(typedOther.isSetProtocol_version());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProtocol_version()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.protocol_version, typedOther.protocol_version);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetRequestorUserName()).compareTo(typedOther.isSetRequestorUserName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetRequestorUserName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.requestorUserName, typedOther.requestorUserName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetAuthorizableSet()).compareTo(typedOther.isSetAuthorizableSet());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetAuthorizableSet()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authorizableSet, typedOther.authorizableSet);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGroups()).compareTo(typedOther.isSetGroups());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGroups()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groups, typedOther.groups);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetRoleSet()).compareTo(typedOther.isSetRoleSet());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetRoleSet()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.roleSet, typedOther.roleSet);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder("TListSentryPrivilegesByAuthRequest(");
-    boolean first = true;
-
-    sb.append("protocol_version:");
-    sb.append(this.protocol_version);
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("requestorUserName:");
-    if (this.requestorUserName == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.requestorUserName);
-    }
-    first = false;
-    if (!first) sb.append(", ");
-    sb.append("authorizableSet:");
-    if (this.authorizableSet == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.authorizableSet);
-    }
-    first = false;
-    if (isSetGroups()) {
-      if (!first) sb.append(", ");
-      sb.append("groups:");
-      if (this.groups == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.groups);
-      }
-      first = false;
-    }
-    if (isSetRoleSet()) {
-      if (!first) sb.append(", ");
-      sb.append("roleSet:");
-      if (this.roleSet == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.roleSet);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetProtocol_version()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'protocol_version' is unset! Struct:" + toString());
-    }
-
-    if (!isSetRequestorUserName()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'requestorUserName' is unset! Struct:" + toString());
-    }
-
-    if (!isSetAuthorizableSet()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'authorizableSet' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-    if (roleSet != null) {
-      roleSet.validate();
-    }
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class TListSentryPrivilegesByAuthRequestStandardSchemeFactory implements SchemeFactory {
-    public TListSentryPrivilegesByAuthRequestStandardScheme getScheme() {
-      return new TListSentryPrivilegesByAuthRequestStandardScheme();
-    }
-  }
-
-  private static class TListSentryPrivilegesByAuthRequestStandardScheme extends StandardScheme<TListSentryPrivilegesByAuthRequest> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // PROTOCOL_VERSION
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.protocol_version = iprot.readI32();
-              struct.setProtocol_versionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // REQUESTOR_USER_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.requestorUserName = iprot.readString();
-              struct.setRequestorUserNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // AUTHORIZABLE_SET
-            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
-              {
-                org.apache.thrift.protocol.TSet _set82 = iprot.readSetBegin();
-                struct.authorizableSet = new HashSet<TSentryAuthorizable>(2*_set82.size);
-                for (int _i83 = 0; _i83 < _set82.size; ++_i83)
-                {
-                  TSentryAuthorizable _elem84; // required
-                  _elem84 = new TSentryAuthorizable();
-                  _elem84.read(iprot);
-                  struct.authorizableSet.add(_elem84);
-                }
-                iprot.readSetEnd();
-              }
-              struct.setAuthorizableSetIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // GROUPS
-            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
-              {
-                org.apache.thrift.protocol.TSet _set85 = iprot.readSetBegin();
-                struct.groups = new HashSet<String>(2*_set85.size);
-                for (int _i86 = 0; _i86 < _set85.size; ++_i86)
-                {
-                  String _elem87; // required
-                  _elem87 = iprot.readString();
-                  struct.groups.add(_elem87);
-                }
-                iprot.readSetEnd();
-              }
-              struct.setGroupsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // ROLE_SET
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.roleSet = new TSentryActiveRoleSet();
-              struct.roleSet.read(iprot);
-              struct.setRoleSetIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      oprot.writeFieldBegin(PROTOCOL_VERSION_FIELD_DESC);
-      oprot.writeI32(struct.protocol_version);
-      oprot.writeFieldEnd();
-      if (struct.requestorUserName != null) {
-        oprot.writeFieldBegin(REQUESTOR_USER_NAME_FIELD_DESC);
-        oprot.writeString(struct.requestorUserName);
-        oprot.writeFieldEnd();
-      }
-      if (struct.authorizableSet != null) {
-        oprot.writeFieldBegin(AUTHORIZABLE_SET_FIELD_DESC);
-        {
-          oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, struct.authorizableSet.size()));
-          for (TSentryAuthorizable _iter88 : struct.authorizableSet)
-          {
-            _iter88.write(oprot);
-          }
-          oprot.writeSetEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-      if (struct.groups != null) {
-        if (struct.isSetGroups()) {
-          oprot.writeFieldBegin(GROUPS_FIELD_DESC);
-          {
-            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.groups.size()));
-            for (String _iter89 : struct.groups)
-            {
-              oprot.writeString(_iter89);
-            }
-            oprot.writeSetEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.roleSet != null) {
-        if (struct.isSetRoleSet()) {
-          oprot.writeFieldBegin(ROLE_SET_FIELD_DESC);
-          struct.roleSet.write(oprot);
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class TListSentryPrivilegesByAuthRequestTupleSchemeFactory implements SchemeFactory {
-    public TListSentryPrivilegesByAuthRequestTupleScheme getScheme() {
-      return new TListSentryPrivilegesByAuthRequestTupleScheme();
-    }
-  }
-
-  private static class TListSentryPrivilegesByAuthRequestTupleScheme extends TupleScheme<TListSentryPrivilegesByAuthRequest> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeI32(struct.protocol_version);
-      oprot.writeString(struct.requestorUserName);
-      {
-        oprot.writeI32(struct.authorizableSet.size());
-        for (TSentryAuthorizable _iter90 : struct.authorizableSet)
-        {
-          _iter90.write(oprot);
-        }
-      }
-      BitSet optionals = new BitSet();
-      if (struct.isSetGroups()) {
-        optionals.set(0);
-      }
-      if (struct.isSetRoleSet()) {
-        optionals.set(1);
-      }
-      oprot.writeBitSet(optionals, 2);
-      if (struct.isSetGroups()) {
-        {
-          oprot.writeI32(struct.groups.size());
-          for (String _iter91 : struct.groups)
-          {
-            oprot.writeString(_iter91);
-          }
-        }
-      }
-      if (struct.isSetRoleSet()) {
-        struct.roleSet.write(oprot);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, TListSentryPrivilegesByAuthRequest struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.protocol_version = iprot.readI32();
-      struct.setProtocol_versionIsSet(true);
-      struct.requestorUserName = iprot.readString();
-      struct.setRequestorUserNameIsSet(true);
-      {
-        org.apache.thrift.protocol.TSet _set92 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-        struct.authorizableSet = new HashSet<TSentryAuthorizable>(2*_set92.size);
-        for (int _i93 = 0; _i93 < _set92.size; ++_i93)
-        {
-          TSentryAuthorizable _elem94; // required
-          _elem94 = new TSentryAuthorizable();
-          _elem94.read(iprot);
-          struct.authorizableSet.add(_elem94);
-        }
-      }
-      struct.setAuthorizableSetIsSet(true);
-      BitSet incoming = iprot.readBitSet(2);
-      if (incoming.get(0)) {
-        {
-          org.apache.thrift.protocol.TSet _set95 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.groups = new HashSet<String>(2*_set95.size);
-          for (int _i96 = 0; _i96 < _set95.size; ++_i96)
-          {
-            String _elem97; // required
-            _elem97 = iprot.readString();
-            struct.groups.add(_elem97);
-          }
-        }
-        struct.setGroupsIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.roleSet = new TSentryActiveRoleSet();
-        struct.roleSet.read(iprot);
-        struct.setRoleSetIsSet(true);
-      }
-    }
-  }
-
-}
-


Mime
View raw message