HBASE-12581 TestCellACLWithMultipleVersions failing since task 5 HBASE-12404 (HBASE-12404 addendum)
This commit is contained in:
parent
c57bc08082
commit
1350055fcd
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue