@InterfaceAudience.LimitedPrivate(value="Configuration") public class CoprocessorWhitelistMasterObserver extends Object implements MasterCoprocessor, MasterObserver
Coprocessor.State| Modifier and Type | Field and Description | 
|---|---|
| static String | CP_COPROCESSOR_WHITELIST_PATHS_KEY | 
| private static org.slf4j.Logger | LOG | 
PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION| Constructor and Description | 
|---|
| CoprocessorWhitelistMasterObserver() | 
| Modifier and Type | Method and Description | 
|---|---|
| Optional<MasterObserver> | getMasterObserver() | 
| void | preCreateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
              TableDescriptor htd,
              RegionInfo[] regions)Called before a new table is created by
  HMaster. | 
| void | preModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
              TableName tableName,
              TableDescriptor htd)Called prior to modifying a table's properties. | 
| private static boolean | validatePath(org.apache.hadoop.fs.Path coprocPath,
            org.apache.hadoop.fs.Path wlPath)Validates a single whitelist path against the coprocessor path | 
| private static void | verifyCoprocessors(ObserverContext<MasterCoprocessorEnvironment> ctx,
                  TableDescriptor htd)Perform the validation checks for a coprocessor to determine if the path
 is white listed or not. | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetServices, start, stoppostAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterMetrics, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfigpublic static final String CP_COPROCESSOR_WHITELIST_PATHS_KEY
private static final org.slf4j.Logger LOG
public CoprocessorWhitelistMasterObserver()
public Optional<MasterObserver> getMasterObserver()
getMasterObserver in interface MasterCoprocessorpublic void preModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName, TableDescriptor htd) throws IOException
MasterObserverpreModifyTable in interface MasterObserverctx - the environment to interact with the framework and mastertableName - the name of the tablehtd - after modify operation, table will have this descriptorIOExceptionpublic void preCreateTable(ObserverContext<MasterCoprocessorEnvironment> ctx, TableDescriptor htd, RegionInfo[] regions) throws IOException
MasterObserverHMaster.  Called as part of create
 table RPC call.preCreateTable in interface MasterObserverctx - the environment to interact with the framework and masterhtd - the TableDescriptor for the tableregions - the initial regions created for the tableIOExceptionprivate static boolean validatePath(org.apache.hadoop.fs.Path coprocPath, org.apache.hadoop.fs.Path wlPath)
coprocPath - the path to the coprocessor including schemewlPath - can be:
                      1) a "*" to wildcard all coprocessor paths
                      2) a specific filesystem (e.g. hdfs://my-cluster/)
                      3) a wildcard path to be evaluated by
                         FilenameUtils.wildcardMatch(String, String)
                         path can specify scheme or not (e.g.
                         "file:///usr/hbase/coprocessors" or for all
                         filesystems "/usr/hbase/coprocessors")private static void verifyCoprocessors(ObserverContext<MasterCoprocessorEnvironment> ctx, TableDescriptor htd) throws IOException
ctx - as passed in from the coprocessorhtd - as passed in from the coprocessorIOException - if path is not included in whitelist or a failure
                     occurs in processingCopyright © 2007–2019 The Apache Software Foundation. All rights reserved.