Merge branch '1.6.2-SNAPSHOT'
Conflicts:
server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0ad47e21
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0ad47e21
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0ad47e21
Branch: refs/heads/master
Commit: 0ad47e218f3d164ac86a866ee091e3ceadca6fe0
Parents: a697516 443888b
Author: Josh Elser <[email protected]>
Authored: Wed Sep 24 17:22:44 2014 -0400
Committer: Josh Elser <[email protected]>
Committed: Wed Sep 24 17:22:44 2014 -0400
----------------------------------------------------------------------
.../accumulo/master/FateServiceHandler.java | 156 +++++++++++++++++--
1 file changed, 140 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/0ad47e21/server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
----------------------------------------------------------------------
diff --cc
server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
index 5562a6a,a3ea117..219ef60
---
a/server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
+++
b/server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
@@@ -230,10 -251,18 +256,18 @@@ class FateServiceHandler implements Fat
}
case TABLE_ONLINE: {
TableOperation tableOp = TableOperation.ONLINE;
- final String tableId = validateTableIdArgument(arguments.get(0),
tableOp, Tables.NOT_ROOT_ID);
+ final String tableId = validateTableIdArgument(arguments.get(0),
tableOp, NOT_ROOT_ID);
String namespaceId = Tables.getNamespaceId(master.getInstance(),
tableId);
- if (!master.security.canOnlineOfflineTable(c, tableId, op,
namespaceId))
+ final boolean canOnlineOfflineTable;
+ try {
+ canOnlineOfflineTable = master.security.canOnlineOfflineTable(c,
tableId, op, namespaceId);
+ } catch (ThriftSecurityException e) {
+ throwIfTableMissingSecurityException(e, tableId, null,
TableOperation.ONLINE);
+ throw e;
+ }
+
+ if (!canOnlineOfflineTable)
throw new ThriftSecurityException(c.getPrincipal(),
SecurityErrorCode.PERMISSION_DENIED);
master.fate.seedTransaction(opid, new TraceRepo<Master>(new
ChangeTableState(tableId, tableOp)), autoCleanup);
@@@ -241,10 -270,18 +275,18 @@@
}
case TABLE_OFFLINE: {
TableOperation tableOp = TableOperation.OFFLINE;
- final String tableId = validateTableIdArgument(arguments.get(0),
tableOp, Tables.NOT_ROOT_ID);
+ final String tableId = validateTableIdArgument(arguments.get(0),
tableOp, NOT_ROOT_ID);
String namespaceId = Tables.getNamespaceId(master.getInstance(),
tableId);
- if (!master.security.canOnlineOfflineTable(c, tableId, op,
namespaceId))
+ final boolean canOnlineOfflineTable;
+ try {
+ canOnlineOfflineTable = master.security.canOnlineOfflineTable(c,
tableId, op, namespaceId);
+ } catch (ThriftSecurityException e) {
+ throwIfTableMissingSecurityException(e, tableId, null,
TableOperation.OFFLINE);
+ throw e;
+ }
+
+ if (!canOnlineOfflineTable)
throw new ThriftSecurityException(c.getPrincipal(),
SecurityErrorCode.PERMISSION_DENIED);
master.fate.seedTransaction(opid, new TraceRepo<Master>(new
ChangeTableState(tableId, tableOp)), autoCleanup);