HBASE-12581 TestCellACLWithMultipleVersions failing since task 5 HBASE-12404 (HBASE-12404 addendum)

This commit is contained in:
stack 2014-11-26 07:53:35 -08:00
parent c57bc08082
commit 1350055fcd
2 changed files with 61 additions and 63 deletions

View File

@ -38,7 +38,8 @@ import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.MiniHBaseCluster; import org.apache.hadoop.hbase.MiniHBaseCluster;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.Waiter.Predicate; import org.apache.hadoop.hbase.Waiter.Predicate;
import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException; import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
@ -113,22 +114,22 @@ public class SecureTestUtil {
checkTablePerms(conf, table, perms); checkTablePerms(conf, table, perms);
} }
public static void checkTablePerms(Configuration conf, TableName table, Permission... perms) throws IOException { public static void checkTablePerms(Configuration conf, TableName table, Permission... perms)
throws IOException {
CheckPermissionsRequest.Builder request = CheckPermissionsRequest.newBuilder(); CheckPermissionsRequest.Builder request = CheckPermissionsRequest.newBuilder();
for (Permission p : perms) { for (Permission p : perms) {
request.addPermission(ProtobufUtil.toPermission(p)); request.addPermission(ProtobufUtil.toPermission(p));
} }
Table acl = new HTable(conf, table); try (Connection connection = ConnectionFactory.createConnection(conf)) {
try { try (Table acl = connection.getTable(table)) {
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(acl.coprocessorService(new byte[0])); AccessControlService.newBlockingStub(acl.coprocessorService(new byte[0]));
try { try {
protocol.checkPermissions(null, request.build()); protocol.checkPermissions(null, request.build());
} catch (ServiceException se) { } catch (ServiceException se) {
ProtobufUtil.toIOException(se); ProtobufUtil.toIOException(se);
}
} }
} finally {
acl.close();
} }
} }
@ -328,14 +329,13 @@ public class SecureTestUtil {
SecureTestUtil.updateACLs(util, new Callable<Void>() { SecureTestUtil.updateACLs(util, new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Table acl = new HTable(util.getConfiguration(), AccessControlLists.ACL_TABLE_NAME); try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
try { try (Table acl = connection.getTable(AccessControlLists.ACL_TABLE_NAME)) {
BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW); BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW);
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(service); AccessControlService.newBlockingStub(service);
ProtobufUtil.grant(protocol, user, actions); ProtobufUtil.grant(protocol, user, actions);
} finally { }
acl.close();
} }
return null; return null;
} }
@ -352,14 +352,13 @@ public class SecureTestUtil {
SecureTestUtil.updateACLs(util, new Callable<Void>() { SecureTestUtil.updateACLs(util, new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Table acl = new HTable(util.getConfiguration(), AccessControlLists.ACL_TABLE_NAME); try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
try { try (Table acl = connection.getTable(AccessControlLists.ACL_TABLE_NAME)) {
BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW); BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW);
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(service); AccessControlService.newBlockingStub(service);
ProtobufUtil.revoke(protocol, user, actions); ProtobufUtil.revoke(protocol, user, actions);
} finally { }
acl.close();
} }
return null; return null;
} }
@ -376,14 +375,13 @@ public class SecureTestUtil {
SecureTestUtil.updateACLs(util, new Callable<Void>() { SecureTestUtil.updateACLs(util, new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Table acl = new HTable(util.getConfiguration(), AccessControlLists.ACL_TABLE_NAME); try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
try { try (Table acl = connection.getTable(AccessControlLists.ACL_TABLE_NAME)) {
BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW); BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW);
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(service); AccessControlService.newBlockingStub(service);
ProtobufUtil.grant(protocol, user, namespace, actions); ProtobufUtil.grant(protocol, user, namespace, actions);
} finally { }
acl.close();
} }
return null; return null;
} }
@ -442,14 +440,13 @@ public class SecureTestUtil {
SecureTestUtil.updateACLs(util, new Callable<Void>() { SecureTestUtil.updateACLs(util, new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Table acl = new HTable(util.getConfiguration(), AccessControlLists.ACL_TABLE_NAME); try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
try { try (Table acl = connection.getTable(AccessControlLists.ACL_TABLE_NAME)) {
BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW); BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW);
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(service); AccessControlService.newBlockingStub(service);
ProtobufUtil.revoke(protocol, user, namespace, actions); ProtobufUtil.revoke(protocol, user, namespace, actions);
} finally { }
acl.close();
} }
return null; return null;
} }
@ -467,14 +464,13 @@ public class SecureTestUtil {
SecureTestUtil.updateACLs(util, new Callable<Void>() { SecureTestUtil.updateACLs(util, new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Table acl = new HTable(util.getConfiguration(), AccessControlLists.ACL_TABLE_NAME); try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
try { try (Table acl = connection.getTable(AccessControlLists.ACL_TABLE_NAME)) {
BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW); BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW);
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(service); AccessControlService.newBlockingStub(service);
ProtobufUtil.grant(protocol, user, table, family, qualifier, actions); ProtobufUtil.grant(protocol, user, table, family, qualifier, actions);
} finally { }
acl.close();
} }
return null; return null;
} }
@ -513,14 +509,13 @@ public class SecureTestUtil {
SecureTestUtil.updateACLs(util, new Callable<Void>() { SecureTestUtil.updateACLs(util, new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Table acl = new HTable(util.getConfiguration(), AccessControlLists.ACL_TABLE_NAME); try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
try { try (Table acl = connection.getTable(AccessControlLists.ACL_TABLE_NAME)) {
BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW); BlockingRpcChannel service = acl.coprocessorService(HConstants.EMPTY_START_ROW);
AccessControlService.BlockingInterface protocol = AccessControlService.BlockingInterface protocol =
AccessControlService.newBlockingStub(service); AccessControlService.newBlockingStub(service);
ProtobufUtil.revoke(protocol, user, table, family, qualifier, actions); ProtobufUtil.revoke(protocol, user, table, family, qualifier, actions);
} finally { }
acl.close();
} }
return null; return null;
} }

View File

@ -126,8 +126,6 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil {
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
// Create the test table (owner added to the _acl_ table)
Admin admin = TEST_UTIL.getHBaseAdmin();
HTableDescriptor htd = new HTableDescriptor(TEST_TABLE.getTableName()); HTableDescriptor htd = new HTableDescriptor(TEST_TABLE.getTableName());
HColumnDescriptor hcd = new HColumnDescriptor(TEST_FAMILY1); HColumnDescriptor hcd = new HColumnDescriptor(TEST_FAMILY1);
hcd.setMaxVersions(4); hcd.setMaxVersions(4);
@ -137,7 +135,12 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil {
hcd.setMaxVersions(4); hcd.setMaxVersions(4);
htd.setOwner(USER_OWNER); htd.setOwner(USER_OWNER);
htd.addFamily(hcd); htd.addFamily(hcd);
admin.createTable(htd, new byte[][] { Bytes.toBytes("s") }); // Create the test table (owner added to the _acl_ table)
try (Connection connection = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {
try (Admin admin = connection.getAdmin()) {
admin.createTable(htd, new byte[][] { Bytes.toBytes("s") });
}
}
TEST_UTIL.waitTableEnabled(TEST_TABLE.getTableName()); TEST_UTIL.waitTableEnabled(TEST_TABLE.getTableName());
} }