From bf5eac49a92ea4dc663f18637ef8964eb56ffc8d Mon Sep 17 00:00:00 2001
From: Matteo Bertozzi
Date: Mon, 18 Aug 2014 20:14:25 +0100
Subject: [PATCH] HBASE-11757 Provide a common base abstract class for both
RegionObserver and MasterObserver
---
.../BaseMasterAndRegionObserver.java | 428 ++++++++++++++++++
.../security/access/AccessController.java | 184 +-------
.../visibility/VisibilityController.java | 336 +-------------
3 files changed, 442 insertions(+), 506 deletions(-)
create mode 100644 hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
new file mode 100644
index 00000000000..600dcd213d7
--- /dev/null
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
@@ -0,0 +1,428 @@
+/*
+ *
+ * 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.hadoop.hbase.coprocessor;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.CoprocessorEnvironment;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.master.RegionPlan;
+import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
+
+import java.io.IOException;
+import java.util.List;
+
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC)
+@InterfaceStability.Evolving
+public abstract class BaseMasterAndRegionObserver extends BaseRegionObserver
+ implements MasterObserver {
+ @Override
+ public void preCreateTable(ObserverContext ctx,
+ HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
+ }
+
+ @Override
+ public void postCreateTable(ObserverContext ctx,
+ HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
+ }
+
+ @Override
+ public void preCreateTableHandler(
+ final ObserverContext ctx,
+ HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
+ }
+
+ @Override
+ public void postCreateTableHandler(
+ final ObserverContext ctx,
+ HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
+ }
+
+ @Override
+ public void preDeleteTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void postDeleteTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void preDeleteTableHandler(
+ final ObserverContext ctx, TableName tableName)
+ throws IOException{
+ }
+
+ @Override
+ public void postDeleteTableHandler(
+ final ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void preTruncateTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void postTruncateTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void preTruncateTableHandler(
+ final ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void postTruncateTableHandler(
+ final ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void preModifyTable(ObserverContext ctx,
+ TableName tableName, HTableDescriptor htd) throws IOException {
+ }
+
+ @Override
+ public void postModifyTableHandler(
+ ObserverContext ctx, TableName tableName,
+ HTableDescriptor htd) throws IOException {
+ }
+
+ @Override
+ public void preModifyTableHandler(
+ ObserverContext ctx, TableName tableName,
+ HTableDescriptor htd) throws IOException {
+ }
+
+ @Override
+ public void postModifyTable(ObserverContext ctx,
+ TableName tableName, HTableDescriptor htd) throws IOException {
+ }
+
+ @Override
+ public void preCreateNamespace(ObserverContext ctx,
+ NamespaceDescriptor ns) throws IOException {
+ }
+
+ @Override
+ public void postCreateNamespace(ObserverContext ctx,
+ NamespaceDescriptor ns) throws IOException {
+ }
+
+ @Override
+ public void preDeleteNamespace(ObserverContext ctx,
+ String namespace) throws IOException {
+ }
+
+ @Override
+ public void postDeleteNamespace(ObserverContext ctx,
+ String namespace) throws IOException {
+ }
+
+ @Override
+ public void preModifyNamespace(ObserverContext ctx,
+ NamespaceDescriptor ns) throws IOException {
+ }
+
+ @Override
+ public void postModifyNamespace(ObserverContext ctx,
+ NamespaceDescriptor ns) throws IOException {
+ }
+
+ @Override
+ public void preAddColumn(ObserverContext ctx,
+ TableName tableName, HColumnDescriptor column) throws IOException {
+ }
+
+ @Override
+ public void postAddColumn(ObserverContext ctx,
+ TableName tableName, HColumnDescriptor column) throws IOException {
+ }
+
+ @Override
+ public void preAddColumnHandler(
+ ObserverContext ctx, TableName tableName,
+ HColumnDescriptor column) throws IOException {
+ }
+
+ @Override
+ public void postAddColumnHandler(
+ ObserverContext ctx, TableName tableName,
+ HColumnDescriptor column) throws IOException {
+ }
+
+ @Override
+ public void preModifyColumn(ObserverContext ctx,
+ TableName tableName, HColumnDescriptor descriptor) throws IOException {
+ }
+
+ @Override
+ public void postModifyColumn(ObserverContext ctx,
+ TableName tableName, HColumnDescriptor descriptor) throws IOException {
+ }
+
+ @Override
+ public void preModifyColumnHandler(
+ ObserverContext ctx, TableName tableName,
+ HColumnDescriptor descriptor) throws IOException {
+ }
+
+ @Override
+ public void postModifyColumnHandler(
+ ObserverContext ctx, TableName tableName,
+ HColumnDescriptor descriptor) throws IOException {
+ }
+
+ @Override
+ public void preDeleteColumn(ObserverContext ctx,
+ TableName tableName, byte[] c) throws IOException {
+ }
+
+ @Override
+ public void postDeleteColumn(ObserverContext ctx,
+ TableName tableName, byte[] c) throws IOException {
+ }
+
+ @Override
+ public void preDeleteColumnHandler(
+ ObserverContext ctx, TableName tableName,
+ byte[] c) throws IOException {
+ }
+
+ @Override
+ public void postDeleteColumnHandler(
+ ObserverContext ctx, TableName tableName,
+ byte[] c) throws IOException {
+ }
+
+
+ @Override
+ public void preEnableTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void postEnableTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void preEnableTableHandler(
+ ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void postEnableTableHandler(
+ ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void preDisableTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void postDisableTable(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void preDisableTableHandler(
+ ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void postDisableTableHandler(
+ ObserverContext ctx, TableName tableName)
+ throws IOException {
+ }
+
+ @Override
+ public void preAssign(ObserverContext ctx,
+ HRegionInfo regionInfo) throws IOException {
+ }
+
+ @Override
+ public void postAssign(ObserverContext ctx,
+ HRegionInfo regionInfo) throws IOException {
+ }
+
+ @Override
+ public void preUnassign(ObserverContext ctx,
+ HRegionInfo regionInfo, boolean force) throws IOException {
+ }
+
+ @Override
+ public void postUnassign(ObserverContext ctx,
+ HRegionInfo regionInfo, boolean force) throws IOException {
+ }
+
+ @Override
+ public void preRegionOffline(ObserverContext ctx,
+ HRegionInfo regionInfo) throws IOException {
+ }
+
+ @Override
+ public void postRegionOffline(ObserverContext ctx,
+ HRegionInfo regionInfo) throws IOException {
+ }
+
+ @Override
+ public void preBalance(ObserverContext ctx)
+ throws IOException {
+ }
+
+ @Override
+ public void postBalance(ObserverContext ctx, List plans)
+ throws IOException {
+ }
+
+ @Override
+ public boolean preBalanceSwitch(ObserverContext ctx,
+ boolean b) throws IOException {
+ return b;
+ }
+
+ @Override
+ public void postBalanceSwitch(ObserverContext ctx,
+ boolean oldValue, boolean newValue) throws IOException {
+ }
+
+ @Override
+ public void preShutdown(ObserverContext ctx)
+ throws IOException {
+ }
+
+ @Override
+ public void preStopMaster(ObserverContext ctx)
+ throws IOException {
+ }
+
+ @Override
+ public void postStartMaster(ObserverContext ctx)
+ throws IOException {
+ }
+
+ @Override
+ public void preMasterInitialization(
+ ObserverContext ctx) throws IOException {
+ }
+
+ @Override
+ public void start(CoprocessorEnvironment ctx) throws IOException {
+ }
+
+ @Override
+ public void stop(CoprocessorEnvironment ctx) throws IOException {
+ }
+
+ @Override
+ public void preMove(ObserverContext ctx,
+ HRegionInfo region, ServerName srcServer, ServerName destServer)
+ throws IOException {
+ }
+
+ @Override
+ public void postMove(ObserverContext ctx,
+ HRegionInfo region, ServerName srcServer, ServerName destServer)
+ throws IOException {
+ }
+
+ @Override
+ public void preSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
+ throws IOException {
+ }
+
+ @Override
+ public void postSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
+ throws IOException {
+ }
+
+ @Override
+ public void preCloneSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
+ throws IOException {
+ }
+
+ @Override
+ public void postCloneSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
+ throws IOException {
+ }
+
+ @Override
+ public void preRestoreSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
+ throws IOException {
+ }
+
+ @Override
+ public void postRestoreSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
+ throws IOException {
+ }
+
+ @Override
+ public void preDeleteSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot) throws IOException {
+ }
+
+ @Override
+ public void postDeleteSnapshot(final ObserverContext ctx,
+ final SnapshotDescription snapshot) throws IOException {
+ }
+
+ @Override
+ public void preGetTableDescriptors(ObserverContext ctx,
+ List tableNamesList, List descriptors)
+ throws IOException {
+ }
+
+ @Override
+ public void postGetTableDescriptors(ObserverContext ctx,
+ List descriptors) throws IOException {
+ }
+
+ @Override
+ public void preTableFlush(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+
+ @Override
+ public void postTableFlush(ObserverContext ctx,
+ TableName tableName) throws IOException {
+ }
+}
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index 6dabc7db3fd..a0dd4384b00 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -61,7 +61,7 @@ import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Query;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
-import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
+import org.apache.hadoop.hbase.coprocessor.BaseMasterAndRegionObserver;
import org.apache.hadoop.hbase.coprocessor.CoprocessorException;
import org.apache.hadoop.hbase.coprocessor.CoprocessorService;
import org.apache.hadoop.hbase.coprocessor.EndpointObserver;
@@ -78,7 +78,6 @@ import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.io.hfile.HFile;
import org.apache.hadoop.hbase.ipc.RequestContext;
import org.apache.hadoop.hbase.master.MasterServices;
-import org.apache.hadoop.hbase.master.RegionPlan;
import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.protobuf.ResponseConverter;
import org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos;
@@ -146,8 +145,8 @@ import com.google.protobuf.Service;
*
*/
@InterfaceAudience.Private
-public class AccessController extends BaseRegionObserver
- implements MasterObserver, RegionServerObserver,
+public class AccessController extends BaseMasterAndRegionObserver
+ implements RegionServerObserver,
AccessControlService.Interface, CoprocessorService, EndpointObserver {
public static final Log LOG = LogFactory.getLog(AccessController.class);
@@ -632,7 +631,7 @@ public class AccessController extends BaseRegionObserver
// In case of family delete, a Cell will be added into the list with Qualifier as null.
for (Cell cell : list) {
if (cell.getQualifierLength() == 0
- && (cell.getTypeByte() == Type.DeleteFamily.getCode()
+ && (cell.getTypeByte() == Type.DeleteFamily.getCode()
|| cell.getTypeByte() == Type.DeleteFamilyVersion.getCode())) {
get.addFamily(col);
} else {
@@ -828,9 +827,9 @@ public class AccessController extends BaseRegionObserver
// if running on HMaster
MasterCoprocessorEnvironment mEnv = (MasterCoprocessorEnvironment) env;
zk = mEnv.getMasterServices().getZooKeeper();
- } else if (env instanceof RegionServerCoprocessorEnvironment) {
+ } else if (env instanceof RegionServerCoprocessorEnvironment) {
RegionServerCoprocessorEnvironment rsEnv = (RegionServerCoprocessorEnvironment) env;
- zk = rsEnv.getRegionServerServices().getZooKeeper();
+ zk = rsEnv.getRegionServerServices().getZooKeeper();
} else if (env instanceof RegionCoprocessorEnvironment) {
// if running at region
regionEnv = (RegionCoprocessorEnvironment) env;
@@ -876,14 +875,6 @@ public class AccessController extends BaseRegionObserver
requireGlobalPermission("createTable", Action.CREATE, desc.getTableName(), familyMap);
}
- @Override
- public void preCreateTableHandler(ObserverContext c,
- HTableDescriptor desc, HRegionInfo[] regions) throws IOException {}
-
- @Override
- public void postCreateTable(ObserverContext c,
- HTableDescriptor desc, HRegionInfo[] regions) throws IOException {}
-
@Override
public void postCreateTableHandler(ObserverContext c,
HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
@@ -927,10 +918,6 @@ public class AccessController extends BaseRegionObserver
requirePermission("deleteTable", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preDeleteTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
-
@Override
public void postDeleteTable(ObserverContext c,
TableName tableName) throws IOException {
@@ -938,24 +925,10 @@ public class AccessController extends BaseRegionObserver
}
@Override
- public void postDeleteTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
-
- @Override
public void preTruncateTable(ObserverContext c, TableName tableName)
throws IOException {
requirePermission("truncateTable", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void postTruncateTable(ObserverContext c,
- TableName tableName) throws IOException {
- }
- @Override
- public void preTruncateTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
- @Override
- public void postTruncateTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
@Override
public void preModifyTable(ObserverContext c, TableName tableName,
@@ -963,10 +936,6 @@ public class AccessController extends BaseRegionObserver
requirePermission("modifyTable", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preModifyTableHandler(ObserverContext c,
- TableName tableName, HTableDescriptor htd) throws IOException {}
-
@Override
public void postModifyTable(ObserverContext c,
TableName tableName, HTableDescriptor htd) throws IOException {
@@ -978,85 +947,36 @@ public class AccessController extends BaseRegionObserver
AccessControlLists.addUserPermission(c.getEnvironment().getConfiguration(), userperm);
}
- @Override
- public void postModifyTableHandler(ObserverContext c,
- TableName tableName, HTableDescriptor htd) throws IOException {}
-
-
@Override
public void preAddColumn(ObserverContext c, TableName tableName,
HColumnDescriptor column) throws IOException {
requirePermission("addColumn", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preAddColumnHandler(ObserverContext c,
- TableName tableName, HColumnDescriptor column) throws IOException {}
-
- @Override
- public void postAddColumn(ObserverContext c,
- TableName tableName, HColumnDescriptor column) throws IOException {}
-
- @Override
- public void postAddColumnHandler(ObserverContext c,
- TableName tableName, HColumnDescriptor column) throws IOException {}
-
@Override
public void preModifyColumn(ObserverContext c, TableName tableName,
HColumnDescriptor descriptor) throws IOException {
requirePermission("modifyColumn", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preModifyColumnHandler(ObserverContext c,
- TableName tableName, HColumnDescriptor descriptor) throws IOException {}
-
- @Override
- public void postModifyColumn(ObserverContext c,
- TableName tableName, HColumnDescriptor descriptor) throws IOException {}
-
- @Override
- public void postModifyColumnHandler(ObserverContext c,
- TableName tableName, HColumnDescriptor descriptor) throws IOException {}
-
@Override
public void preDeleteColumn(ObserverContext c, TableName tableName,
byte[] col) throws IOException {
requirePermission("deleteColumn", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preDeleteColumnHandler(ObserverContext c,
- TableName tableName, byte[] col) throws IOException {}
-
@Override
public void postDeleteColumn(ObserverContext c,
TableName tableName, byte[] col) throws IOException {
AccessControlLists.removeTablePermissions(c.getEnvironment().getConfiguration(), tableName, col);
}
- @Override
- public void postDeleteColumnHandler(ObserverContext c,
- TableName tableName, byte[] col) throws IOException {}
-
@Override
public void preEnableTable(ObserverContext c, TableName tableName)
throws IOException {
requirePermission("enableTable", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preEnableTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
-
- @Override
- public void postEnableTable(ObserverContext c,
- TableName tableName) throws IOException {}
-
- @Override
- public void postEnableTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
-
@Override
public void preDisableTable(ObserverContext c, TableName tableName)
throws IOException {
@@ -1067,70 +987,36 @@ public class AccessController extends BaseRegionObserver
requirePermission("disableTable", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void preDisableTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
-
- @Override
- public void postDisableTable(ObserverContext c,
- TableName tableName) throws IOException {}
-
- @Override
- public void postDisableTableHandler(ObserverContext c,
- TableName tableName) throws IOException {}
-
@Override
public void preMove(ObserverContext c, HRegionInfo region,
ServerName srcServer, ServerName destServer) throws IOException {
requirePermission("move", region.getTable(), null, null, Action.ADMIN);
}
- @Override
- public void postMove(ObserverContext c,
- HRegionInfo region, ServerName srcServer, ServerName destServer)
- throws IOException {}
-
@Override
public void preAssign(ObserverContext c, HRegionInfo regionInfo)
throws IOException {
requirePermission("assign", regionInfo.getTable(), null, null, Action.ADMIN);
}
- @Override
- public void postAssign(ObserverContext c,
- HRegionInfo regionInfo) throws IOException {}
-
@Override
public void preUnassign(ObserverContext c, HRegionInfo regionInfo,
boolean force) throws IOException {
requirePermission("unassign", regionInfo.getTable(), null, null, Action.ADMIN);
}
- @Override
- public void postUnassign(ObserverContext c,
- HRegionInfo regionInfo, boolean force) throws IOException {}
-
@Override
public void preRegionOffline(ObserverContext c,
HRegionInfo regionInfo) throws IOException {
requirePermission("regionOffline", regionInfo.getTable(), null, null, Action.ADMIN);
}
- @Override
- public void postRegionOffline(ObserverContext c,
- HRegionInfo regionInfo) throws IOException {
- }
-
@Override
public void preBalance(ObserverContext c)
throws IOException {
requirePermission("balance", Action.ADMIN);
}
- @Override
- public void postBalance(ObserverContext c, List plans)
- throws IOException {}
-
@Override
public boolean preBalanceSwitch(ObserverContext c,
boolean newValue) throws IOException {
@@ -1138,10 +1024,6 @@ public class AccessController extends BaseRegionObserver
return newValue;
}
- @Override
- public void postBalanceSwitch(ObserverContext c,
- boolean oldValue, boolean newValue) throws IOException {}
-
@Override
public void preShutdown(ObserverContext c)
throws IOException {
@@ -1166,11 +1048,6 @@ public class AccessController extends BaseRegionObserver
}
}
- @Override
- public void preMasterInitialization(
- ObserverContext ctx) throws IOException {
- }
-
@Override
public void preSnapshot(final ObserverContext ctx,
final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
@@ -1178,12 +1055,6 @@ public class AccessController extends BaseRegionObserver
requirePermission("snapshot", Action.ADMIN);
}
- @Override
- public void postSnapshot(final ObserverContext ctx,
- final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
- throws IOException {
- }
-
@Override
public void preCloneSnapshot(final ObserverContext ctx,
final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
@@ -1191,12 +1062,6 @@ public class AccessController extends BaseRegionObserver
requirePermission("clone", Action.ADMIN);
}
- @Override
- public void postCloneSnapshot(final ObserverContext ctx,
- final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
- throws IOException {
- }
-
@Override
public void preRestoreSnapshot(final ObserverContext ctx,
final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
@@ -1204,34 +1069,18 @@ public class AccessController extends BaseRegionObserver
requirePermission("restore", Action.ADMIN);
}
- @Override
- public void postRestoreSnapshot(final ObserverContext ctx,
- final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
- throws IOException {
- }
-
@Override
public void preDeleteSnapshot(final ObserverContext ctx,
final SnapshotDescription snapshot) throws IOException {
requirePermission("deleteSnapshot", Action.ADMIN);
}
- @Override
- public void postDeleteSnapshot(final ObserverContext ctx,
- final SnapshotDescription snapshot) throws IOException {
- }
-
@Override
public void preCreateNamespace(ObserverContext ctx,
NamespaceDescriptor ns) throws IOException {
requireGlobalPermission("createNamespace", Action.ADMIN, ns.getName());
}
- @Override
- public void postCreateNamespace(ObserverContext ctx,
- NamespaceDescriptor ns) throws IOException {
- }
-
@Override
public void preDeleteNamespace(ObserverContext ctx, String namespace)
throws IOException {
@@ -1252,22 +1101,12 @@ public class AccessController extends BaseRegionObserver
requireGlobalPermission("modifyNamespace", Action.ADMIN, ns.getName());
}
- @Override
- public void postModifyNamespace(ObserverContext ctx,
- NamespaceDescriptor ns) throws IOException {
- }
-
@Override
public void preTableFlush(final ObserverContext ctx,
final TableName tableName) throws IOException {
requirePermission("flushTable", tableName, null, null, Action.ADMIN, Action.CREATE);
}
- @Override
- public void postTableFlush(final ObserverContext ctx,
- final TableName tableName) throws IOException {
- }
-
/* ---- RegionObserver implementation ---- */
@Override
@@ -1335,7 +1174,7 @@ public class AccessController extends BaseRegionObserver
public void preSplit(ObserverContext e) throws IOException {
requirePermission("split", getTableName(e.getEnvironment()), null, null, Action.ADMIN);
}
-
+
@Override
public void preSplit(ObserverContext e,
byte[] splitRow) throws IOException {
@@ -1409,7 +1248,7 @@ public class AccessController extends BaseRegionObserver
// grants for qualifiers. Otherwise we will fall through below and log
// the result and throw an ADE. We may end up checking qualifier
// grants three times (permissionGranted above, here, and in the
- // filter) but that's the price of backwards compatibility.
+ // filter) but that's the price of backwards compatibility.
if (hasFamilyQualifierPermission(user, Action.READ, env, families)) {
Filter ourFilter = new AccessControlFilter(authManager, user, table,
AccessControlFilter.Strategy.CHECK_TABLE_AND_CF_ONLY,
@@ -1437,7 +1276,7 @@ public class AccessController extends BaseRegionObserver
// New behavior: Any access we might be granted is more fine-grained
// than whole table or CF. Simply inject a filter and return what is
// allowed. We will not throw an AccessDeniedException. This is a
- // behavioral change since 0.96.
+ // behavioral change since 0.96.
Filter ourFilter = new AccessControlFilter(authManager, user, table,
AccessControlFilter.Strategy.CHECK_CELL_DEFAULT, cfVsMaxVersions);
// wrap any existing filter
@@ -2324,11 +2163,6 @@ public class AccessController extends BaseRegionObserver
}
}
- @Override
- public void postGetTableDescriptors(ObserverContext ctx,
- List descriptors) throws IOException {
- }
-
@Override
public void preMerge(ObserverContext ctx, HRegion regionA,
HRegion regionB) throws IOException {
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
index 9b8667bbb8f..70edf98cfd0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
@@ -48,13 +48,10 @@ import org.apache.hadoop.hbase.CoprocessorEnvironment;
import org.apache.hadoop.hbase.DoNotRetryIOException;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.KeyValue.Type;
import org.apache.hadoop.hbase.KeyValueUtil;
-import org.apache.hadoop.hbase.NamespaceDescriptor;
-import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.Tag;
import org.apache.hadoop.hbase.MetaTableAccessor;
@@ -67,7 +64,7 @@ import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.constraint.ConstraintException;
-import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
+import org.apache.hadoop.hbase.coprocessor.BaseMasterAndRegionObserver;
import org.apache.hadoop.hbase.coprocessor.CoprocessorException;
import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
import org.apache.hadoop.hbase.coprocessor.CoprocessorService;
@@ -86,10 +83,8 @@ import org.apache.hadoop.hbase.io.hfile.HFile;
import org.apache.hadoop.hbase.io.util.StreamUtils;
import org.apache.hadoop.hbase.ipc.RequestContext;
import org.apache.hadoop.hbase.master.MasterServices;
-import org.apache.hadoop.hbase.master.RegionPlan;
import org.apache.hadoop.hbase.protobuf.ResponseConverter;
import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.RegionActionResult;
-import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
import org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos;
import org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.GetAuthsRequest;
import org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.GetAuthsResponse;
@@ -133,8 +128,8 @@ import com.google.protobuf.Service;
* visibility labels
*/
@InterfaceAudience.Private
-public class VisibilityController extends BaseRegionObserver implements MasterObserver,
- RegionObserver, VisibilityLabelsService.Interface, CoprocessorService {
+public class VisibilityController extends BaseMasterAndRegionObserver implements
+ VisibilityLabelsService.Interface, CoprocessorService {
private static final Log LOG = LogFactory.getLog(VisibilityController.class);
private static final byte[] DUMMY_VALUE = new byte[0];
@@ -148,7 +143,7 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
// defined only for Endpoint implementation, so it can have way to access region services.
private RegionCoprocessorEnvironment regionEnv;
private List scanLabelGenerators;
-
+
private volatile int ordinalCounter = -1;
// flags if we are running on a region of the 'labels' table
private boolean labelsRegion = false;
@@ -249,46 +244,6 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
}
}
- @Override
- public void preCreateTable(ObserverContext ctx,
- HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
- }
-
- @Override
- public void postCreateTable(ObserverContext ctx,
- HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
- }
-
- @Override
- public void preCreateTableHandler(ObserverContext ctx,
- HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
- }
-
- @Override
- public void postCreateTableHandler(ObserverContext ctx,
- HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
- }
-
- @Override
- public void preDeleteTable(ObserverContext ctx, TableName tableName)
- throws IOException {
- }
-
- @Override
- public void postDeleteTable(ObserverContext ctx, TableName tableName)
- throws IOException {
- }
-
- @Override
- public void preDeleteTableHandler(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void postDeleteTableHandler(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
@Override
public void preModifyTable(ObserverContext ctx,
TableName tableName, HTableDescriptor htd) throws IOException {
@@ -297,21 +252,6 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
}
}
- @Override
- public void postModifyTable(ObserverContext ctx,
- TableName tableName, HTableDescriptor htd) throws IOException {
- }
-
- @Override
- public void preModifyTableHandler(ObserverContext ctx,
- TableName tableName, HTableDescriptor htd) throws IOException {
- }
-
- @Override
- public void postModifyTableHandler(ObserverContext ctx,
- TableName tableName, HTableDescriptor htd) throws IOException {
- }
-
@Override
public void preAddColumn(ObserverContext ctx, TableName tableName,
HColumnDescriptor column) throws IOException {
@@ -320,21 +260,6 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
}
}
- @Override
- public void postAddColumn(ObserverContext ctx, TableName tableName,
- HColumnDescriptor column) throws IOException {
- }
-
- @Override
- public void preAddColumnHandler(ObserverContext ctx,
- TableName tableName, HColumnDescriptor column) throws IOException {
- }
-
- @Override
- public void postAddColumnHandler(ObserverContext ctx,
- TableName tableName, HColumnDescriptor column) throws IOException {
- }
-
@Override
public void preModifyColumn(ObserverContext ctx,
TableName tableName, HColumnDescriptor descriptor) throws IOException {
@@ -343,21 +268,6 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
}
}
- @Override
- public void postModifyColumn(ObserverContext ctx,
- TableName tableName, HColumnDescriptor descriptor) throws IOException {
- }
-
- @Override
- public void preModifyColumnHandler(ObserverContext ctx,
- TableName tableName, HColumnDescriptor descriptor) throws IOException {
- }
-
- @Override
- public void postModifyColumnHandler(ObserverContext ctx,
- TableName tableName, HColumnDescriptor descriptor) throws IOException {
- }
-
@Override
public void preDeleteColumn(ObserverContext ctx,
TableName tableName, byte[] c) throws IOException {
@@ -366,63 +276,6 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
}
}
- @Override
- public void postDeleteColumn(ObserverContext ctx,
- TableName tableName, byte[] c) throws IOException {
- }
-
- @Override
- public void preDeleteColumnHandler(ObserverContext ctx,
- TableName tableName, byte[] c) throws IOException {
- }
-
- @Override
- public void postDeleteColumnHandler(ObserverContext ctx,
- TableName tableName, byte[] c) throws IOException {
- }
-
- @Override
- public void preTruncateTable(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void postTruncateTable(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void preTruncateTableHandler(
- final ObserverContext ctx, TableName tableName)
- throws IOException{
- }
-
- @Override
- public void postTruncateTableHandler(
- final ObserverContext ctx, TableName tableName)
- throws IOException {
- }
-
- @Override
- public void preEnableTable(ObserverContext ctx, TableName tableName)
- throws IOException {
- }
-
- @Override
- public void postEnableTable(ObserverContext ctx, TableName tableName)
- throws IOException {
- }
-
- @Override
- public void preEnableTableHandler(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void postEnableTableHandler(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
@Override
public void preDisableTable(ObserverContext ctx, TableName tableName)
throws IOException {
@@ -431,185 +284,6 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
}
}
- @Override
- public void postDisableTable(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void preDisableTableHandler(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void postDisableTableHandler(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void preMove(ObserverContext ctx, HRegionInfo region,
- ServerName srcServer, ServerName destServer) throws IOException {
- }
-
- @Override
- public void postMove(ObserverContext ctx, HRegionInfo region,
- ServerName srcServer, ServerName destServer) throws IOException {
- }
-
- @Override
- public void preAssign(ObserverContext ctx, HRegionInfo regionInfo)
- throws IOException {
- }
-
- @Override
- public void postAssign(ObserverContext ctx, HRegionInfo regionInfo)
- throws IOException {
- }
-
- @Override
- public void preUnassign(ObserverContext ctx,
- HRegionInfo regionInfo, boolean force) throws IOException {
- }
-
- @Override
- public void postUnassign(ObserverContext ctx,
- HRegionInfo regionInfo, boolean force) throws IOException {
- }
-
- @Override
- public void preRegionOffline(ObserverContext ctx,
- HRegionInfo regionInfo) throws IOException {
- }
-
- @Override
- public void postRegionOffline(ObserverContext ctx,
- HRegionInfo regionInfo) throws IOException {
- }
-
- @Override
- public void preBalance(ObserverContext ctx) throws IOException {
- }
-
- @Override
- public void postBalance(ObserverContext ctx, List plans)
- throws IOException {
- }
-
- @Override
- public boolean preBalanceSwitch(ObserverContext ctx,
- boolean newValue) throws IOException {
- return newValue;
- }
-
- @Override
- public void postBalanceSwitch(ObserverContext ctx,
- boolean oldValue, boolean newValue) throws IOException {
- }
-
- @Override
- public void preShutdown(ObserverContext ctx) throws IOException {
- }
-
- @Override
- public void preStopMaster(ObserverContext ctx) throws IOException {
- }
-
- @Override
- public void preSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot, HTableDescriptor hTableDescriptor) throws IOException {
- }
-
- @Override
- public void postSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot, HTableDescriptor hTableDescriptor) throws IOException {
- }
-
- @Override
- public void preCloneSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot, HTableDescriptor hTableDescriptor) throws IOException {
- }
-
- @Override
- public void postCloneSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot, HTableDescriptor hTableDescriptor) throws IOException {
- }
-
- @Override
- public void preRestoreSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot, HTableDescriptor hTableDescriptor) throws IOException {
- }
-
- @Override
- public void postRestoreSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot, HTableDescriptor hTableDescriptor) throws IOException {
- }
-
- @Override
- public void preDeleteSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot) throws IOException {
- }
-
- @Override
- public void postDeleteSnapshot(ObserverContext ctx,
- SnapshotDescription snapshot) throws IOException {
- }
-
- @Override
- public void preGetTableDescriptors(ObserverContext ctx,
- List tableNamesList, List descriptors) throws IOException {
- }
-
- @Override
- public void postGetTableDescriptors(ObserverContext ctx,
- List descriptors) throws IOException {
- }
-
- @Override
- public void preCreateNamespace(ObserverContext ctx,
- NamespaceDescriptor ns) throws IOException {
- }
-
- @Override
- public void postCreateNamespace(ObserverContext ctx,
- NamespaceDescriptor ns) throws IOException {
- }
-
- @Override
- public void preDeleteNamespace(ObserverContext ctx,
- String namespace) throws IOException {
- }
-
- @Override
- public void postDeleteNamespace(ObserverContext ctx,
- String namespace) throws IOException {
- }
-
- @Override
- public void preModifyNamespace(ObserverContext ctx,
- NamespaceDescriptor ns) throws IOException {
- }
-
- @Override
- public void postModifyNamespace(ObserverContext ctx,
- NamespaceDescriptor ns) throws IOException {
- }
-
- @Override
- public void preTableFlush(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void postTableFlush(ObserverContext ctx,
- TableName tableName) throws IOException {
- }
-
- @Override
- public void preMasterInitialization(ObserverContext ctx)
- throws IOException {
-
- }
-
/****************************** Region related hooks ******************************/
@Override
@@ -637,7 +311,7 @@ public class VisibilityController extends BaseRegionObserver implements MasterOb
private void initialize(ObserverContext e) {
try {
- Pair