@InterfaceAudience.LimitedPrivate(value="Configuration") public class VisibilityController extends BaseMasterAndRegionObserver implements org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface, CoprocessorService
Modifier and Type | Class and Description |
---|---|
private static class |
VisibilityController.DeleteVersionVisibilityExpressionFilter |
static class |
VisibilityController.VisibilityReplication
A RegionServerObserver impl that provides the custom
VisibilityReplicationEndpoint.
|
Coprocessor.State
RegionObserver.MutationType
Modifier and Type | Field and Description |
---|---|
private boolean |
accessControllerAvailable |
private static org.apache.commons.logging.Log |
AUDITLOG |
(package private) boolean |
authorizationEnabled
if we are active, usually true, only not true if "hbase.security.authorization"
has been set to false in site configuration
|
private boolean |
checkAuths |
private org.apache.hadoop.conf.Configuration |
conf |
private boolean |
initialized |
private boolean |
labelsRegion |
private static org.apache.commons.logging.Log |
LOG |
private static ArrayList<Byte> |
RESERVED_VIS_TAG_TYPES |
private Map<InternalScanner,String> |
scannerOwners
Mapping of scanner instances to the user who created them
|
private VisibilityLabelService |
visibilityLabelService |
PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION
Constructor and Description |
---|
VisibilityController() |
Modifier and Type | Method and Description |
---|---|
void |
addLabels(com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse> done)
VisibilityEndpoint service related methods
|
private void |
checkCallingUserAuth() |
private boolean |
checkForReservedVisibilityTagPresence(Cell cell)
Checks whether cell contains any tag with type as VISIBILITY_TAG_TYPE.
|
private Pair<Boolean,Tag> |
checkForReservedVisibilityTagPresence(Cell cell,
Pair<Boolean,Tag> pair)
Checks whether cell contains any tag with type as VISIBILITY_TAG_TYPE.
|
void |
clearAuths(com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.SetAuthsRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse> done)
rpc clearAuths(.SetAuthsRequest) returns (.VisibilityLabelsResponse); |
void |
getAuths(com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.GetAuthsRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.GetAuthsResponse> done)
rpc getAuths(.GetAuthsRequest) returns (.GetAuthsResponse); |
com.google.protobuf.Service |
getService() |
private void |
initVisibilityLabelService(RegionCoprocessorEnvironment env) |
static boolean |
isAuthorizationSupported(org.apache.hadoop.conf.Configuration conf) |
static boolean |
isCellAuthorizationSupported(org.apache.hadoop.conf.Configuration conf) |
private boolean |
isSystemOrSuperUser() |
void |
listLabels(com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.ListLabelsRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.ListLabelsResponse> done)
rpc listLabels(.ListLabelsRequest) returns (.ListLabelsResponse); |
private void |
logResult(boolean isAllowed,
String request,
String reason,
byte[] user,
List<byte[]> labelAuths,
String regex) |
DeleteTracker |
postInstantiateDeleteTracker(ObserverContext<RegionCoprocessorEnvironment> ctx,
DeleteTracker delTracker)
Called after the ScanQueryMatcher creates ScanDeleteTracker.
|
void |
postLogReplay(ObserverContext<RegionCoprocessorEnvironment> e)
Called after the log replay on the region is over.
|
Cell |
postMutationBeforeWAL(ObserverContext<RegionCoprocessorEnvironment> ctx,
RegionObserver.MutationType opType,
Mutation mutation,
Cell oldCell,
Cell newCell)
Called after a new cell has been created during an increment operation, but before
it is committed to the WAL or memstore.
|
void |
postOpen(ObserverContext<RegionCoprocessorEnvironment> e)
Region related hooks
|
void |
postScannerClose(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s)
Called after the client closes a scanner.
|
RegionScanner |
postScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c,
Scan scan,
RegionScanner s)
Called after the client opens a new scanner.
|
void |
postStartMaster(ObserverContext<MasterCoprocessorEnvironment> ctx)
Master related hooks
|
void |
preAddColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
TableName tableName,
HColumnDescriptor column)
Called prior to adding a new column family to the table.
|
Result |
preAppend(ObserverContext<RegionCoprocessorEnvironment> e,
Append append)
Called before Append.
|
void |
preBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c,
MiniBatchOperationInProgress<Mutation> miniBatchOp)
This will be called for every batch mutation operation happening at the server.
|
void |
preDeleteColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
TableName tableName,
byte[] c)
Called prior to deleting the entire column family.
|
void |
preDisableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
TableName tableName)
Called prior to disabling a table.
|
void |
preGetOp(ObserverContext<RegionCoprocessorEnvironment> e,
Get get,
List<Cell> results)
Called before the client performs a Get
|
Result |
preIncrement(ObserverContext<RegionCoprocessorEnvironment> e,
Increment increment)
Called before Increment.
|
void |
preModifyColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
TableName tableName,
HColumnDescriptor descriptor)
Called prior to modifying a column family's attributes.
|
void |
preModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
TableName tableName,
HTableDescriptor htd)
Called prior to modifying a table's properties.
|
void |
prePrepareTimeStampForDeleteVersion(ObserverContext<RegionCoprocessorEnvironment> ctx,
Mutation delete,
Cell cell,
byte[] byteNow,
Get get)
Called before the server updates the timestamp for version delete with latest timestamp.
|
void |
preScannerClose(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s)
Called before the client closes a scanner.
|
boolean |
preScannerNext(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s,
List<Result> result,
int limit,
boolean hasNext)
Called before the client asks for the next row on a scanner.
|
RegionScanner |
preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> e,
Scan scan,
RegionScanner s)
Called before the client opens a new scanner.
|
private void |
removeReplicationVisibilityTag(List<Tag> tags) |
private void |
requireScannerOwner(InternalScanner s)
Verify, when servicing an RPC, that the caller is the scanner owner.
|
void |
setAuths(com.google.protobuf.RpcController controller,
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.SetAuthsRequest request,
com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse> done)
rpc setAuths(.SetAuthsRequest) returns (.VisibilityLabelsResponse); |
private void |
setExceptionResults(int size,
IOException e,
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse.Builder response) |
void |
start(CoprocessorEnvironment env) |
void |
stop(CoprocessorEnvironment env) |
postAbortProcedure, postAddColumn, postAddColumnHandler, postAssign, postBalance, postBalanceSwitch, postCloneSnapshot, postCreateNamespace, postCreateTable, postCreateTableHandler, postDeleteColumn, postDeleteColumnHandler, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDeleteTableHandler, postDisableTable, postDisableTableHandler, postEnableTable, postEnableTableHandler, postGetNamespaceDescriptor, postGetTableDescriptors, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postListProcedures, postListSnapshot, postModifyColumn, postModifyColumnHandler, postModifyNamespace, postModifyTable, postModifyTableHandler, postMove, postRegionOffline, postRestoreSnapshot, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postTruncateTable, postTruncateTableHandler, postUnassign, preAbortProcedure, preAddColumnHandler, preAssign, preBalance, preBalanceSwitch, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableHandler, preDeleteColumnHandler, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableHandler, preDisableTableHandler, preEnableTable, preEnableTableHandler, preGetNamespaceDescriptor, preGetTableDescriptors, preGetTableDescriptors, preGetTableNames, preListNamespaceDescriptors, preListProcedures, preListSnapshot, preMasterInitialization, preModifyColumnHandler, preModifyNamespace, preModifyTableHandler, preMove, preRegionOffline, preRestoreSnapshot, preSetNamespaceQuota, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableHandler, preUnassign
postAppend, postBatchMutate, postBatchMutateIndispensably, postBulkLoadHFile, postCheckAndDelete, postCheckAndPut, postClose, postCloseRegionOperation, postCompact, postCompact, postCompactSelection, postCompactSelection, postCompleteSplit, postDelete, postExists, postFlush, postFlush, postGetClosestRowBefore, postGetOp, postIncrement, postIncrementColumnValue, postPut, postRollBackSplit, postScannerFilterRow, postScannerNext, postSplit, postStartRegionOperation, postStoreFileReaderOpen, postWALRestore, postWALRestore, preAppendAfterRowLock, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preClose, preCompact, preCompact, preCompactScannerOpen, preCompactScannerOpen, preCompactSelection, preCompactSelection, preDelete, preExists, preFlush, preFlush, preFlushScannerOpen, preGetClosestRowBefore, preIncrementAfterRowLock, preIncrementColumnValue, preOpen, prePut, preRollBackSplit, preSplit, preSplit, preSplitAfterPONR, preSplitBeforePONR, preStoreFileReaderOpen, preStoreScannerOpen, preWALRestore, preWALRestore
private static final org.apache.commons.logging.Log LOG
private static final org.apache.commons.logging.Log AUDITLOG
private boolean labelsRegion
private boolean accessControllerAvailable
private org.apache.hadoop.conf.Configuration conf
private volatile boolean initialized
private boolean checkAuths
private Map<InternalScanner,String> scannerOwners
private VisibilityLabelService visibilityLabelService
boolean authorizationEnabled
public static boolean isAuthorizationSupported(org.apache.hadoop.conf.Configuration conf)
public static boolean isCellAuthorizationSupported(org.apache.hadoop.conf.Configuration conf)
public void start(CoprocessorEnvironment env) throws IOException
start
in interface Coprocessor
start
in class BaseMasterAndRegionObserver
IOException
public void stop(CoprocessorEnvironment env) throws IOException
stop
in interface Coprocessor
stop
in class BaseMasterAndRegionObserver
IOException
public void postStartMaster(ObserverContext<MasterCoprocessorEnvironment> ctx) throws IOException
postStartMaster
in interface MasterObserver
postStartMaster
in class BaseMasterAndRegionObserver
IOException
public void preModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName, HTableDescriptor htd) throws IOException
MasterObserver
preModifyTable
in interface MasterObserver
preModifyTable
in class BaseMasterAndRegionObserver
ctx
- the environment to interact with the framework and mastertableName
- the name of the tablehtd
- the HTableDescriptorIOException
public void preAddColumn(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName, HColumnDescriptor column) throws IOException
MasterObserver
preAddColumn
in interface MasterObserver
preAddColumn
in class BaseMasterAndRegionObserver
ctx
- the environment to interact with the framework and mastertableName
- the name of the tablecolumn
- the HColumnDescriptorIOException
public void preModifyColumn(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName, HColumnDescriptor descriptor) throws IOException
MasterObserver
preModifyColumn
in interface MasterObserver
preModifyColumn
in class BaseMasterAndRegionObserver
ctx
- the environment to interact with the framework and mastertableName
- the name of the tabledescriptor
- the HColumnDescriptorIOException
public void preDeleteColumn(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName, byte[] c) throws IOException
MasterObserver
preDeleteColumn
in interface MasterObserver
preDeleteColumn
in class BaseMasterAndRegionObserver
ctx
- the environment to interact with the framework and mastertableName
- the name of the tablec
- the columnIOException
public void preDisableTable(ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName) throws IOException
MasterObserver
preDisableTable
in interface MasterObserver
preDisableTable
in class BaseMasterAndRegionObserver
ctx
- the environment to interact with the framework and mastertableName
- the name of the tableIOException
public void postOpen(ObserverContext<RegionCoprocessorEnvironment> e)
postOpen
in interface RegionObserver
postOpen
in class BaseRegionObserver
e
- the environment provided by the region serverpublic void postLogReplay(ObserverContext<RegionCoprocessorEnvironment> e)
RegionObserver
postLogReplay
in interface RegionObserver
postLogReplay
in class BaseRegionObserver
e
- the environment provided by the region serverprivate void initVisibilityLabelService(RegionCoprocessorEnvironment env)
public void preBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c, MiniBatchOperationInProgress<Mutation> miniBatchOp) throws IOException
RegionObserver
MiniBatchOperationInProgress.setOperationStatus(int, OperationStatus)
),
RegionObserver
can make Region to skip these Mutations.preBatchMutate
in interface RegionObserver
preBatchMutate
in class BaseRegionObserver
c
- the environment provided by the region serverminiBatchOp
- batch of Mutations getting applied to region.IOException
- if an error occurred on the coprocessorpublic void prePrepareTimeStampForDeleteVersion(ObserverContext<RegionCoprocessorEnvironment> ctx, Mutation delete, Cell cell, byte[] byteNow, Get get) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
prePrepareTimeStampForDeleteVersion
in interface RegionObserver
prePrepareTimeStampForDeleteVersion
in class BaseRegionObserver
ctx
- the environment provided by the region serverdelete
- - the parent mutation associated with this delete cellcell
- - The deleteColumn with latest version cellbyteNow
- - timestamp bytesget
- - the get formed using the current cell's row.
Note that the get does not specify the family and qualifierIOException
private Pair<Boolean,Tag> checkForReservedVisibilityTagPresence(Cell cell, Pair<Boolean,Tag> pair) throws IOException
cell
- - the cell under considerationpair
- - an optional pair of type IOException
private boolean checkForReservedVisibilityTagPresence(Cell cell) throws IOException
cell
- IOException
private void removeReplicationVisibilityTag(List<Tag> tags) throws IOException
IOException
public RegionScanner preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> e, Scan scan, RegionScanner s) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preScannerOpen
in interface RegionObserver
preScannerOpen
in class BaseRegionObserver
e
- the environment provided by the region serverscan
- the Scan specifications
- if not null, the base scannerIOException
- if an error occurred on the coprocessorpublic DeleteTracker postInstantiateDeleteTracker(ObserverContext<RegionCoprocessorEnvironment> ctx, DeleteTracker delTracker) throws IOException
RegionObserver
postInstantiateDeleteTracker
in interface RegionObserver
postInstantiateDeleteTracker
in class BaseRegionObserver
ctx
- the environment provided by the region serverdelTracker
- the deleteTracker that is created by the QueryMatcherIOException
public RegionScanner postScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Scan scan, RegionScanner s) throws IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postScannerOpen
in interface RegionObserver
postScannerOpen
in class BaseRegionObserver
c
- the environment provided by the region serverscan
- the Scan specifications
- if not null, the base scannerIOException
- if an error occurred on the coprocessorpublic boolean preScannerNext(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s, List<Result> result, int limit, boolean hasNext) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preScannerNext
in interface RegionObserver
preScannerNext
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerresult
- The result to return to the client if default processing
is bypassed. Can be modified. Will not be returned if default processing
is not bypassed.limit
- the maximum number of results to returnhasNext
- the 'has more' indicationIOException
- if an error occurred on the coprocessorpublic void preScannerClose(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preScannerClose
in interface RegionObserver
preScannerClose
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerIOException
- if an error occurred on the coprocessorpublic void postScannerClose(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s) throws IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postScannerClose
in interface RegionObserver
postScannerClose
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerIOException
- if an error occurred on the coprocessorprivate void requireScannerOwner(InternalScanner s) throws AccessDeniedException
AccessDeniedException
public void preGetOp(ObserverContext<RegionCoprocessorEnvironment> e, Get get, List<Cell> results) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preGetOp
in interface RegionObserver
preGetOp
in class BaseRegionObserver
e
- the environment provided by the region serverget
- the Get requestresults
- The result to return to the client if default processing
is bypassed. Can be modified. Will not be used if default processing
is not bypassed.IOException
- if an error occurred on the coprocessorprivate boolean isSystemOrSuperUser() throws IOException
IOException
public Result preAppend(ObserverContext<RegionCoprocessorEnvironment> e, Append append) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preAppend
in interface RegionObserver
preAppend
in class BaseRegionObserver
e
- the environment provided by the region serverappend
- Append objectIOException
- if an error occurred on the coprocessorpublic Result preIncrement(ObserverContext<RegionCoprocessorEnvironment> e, Increment increment) throws IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preIncrement
in interface RegionObserver
preIncrement
in class BaseRegionObserver
e
- the environment provided by the region serverincrement
- increment objectIOException
- if an error occurred on the coprocessorpublic Cell postMutationBeforeWAL(ObserverContext<RegionCoprocessorEnvironment> ctx, RegionObserver.MutationType opType, Mutation mutation, Cell oldCell, Cell newCell) throws IOException
RegionObserver
ObserverContext.bypass()
has no
effect in this hook.postMutationBeforeWAL
in interface RegionObserver
postMutationBeforeWAL
in class BaseRegionObserver
ctx
- the environment provided by the region serveropType
- the operation typemutation
- the current mutationoldCell
- old cell containing previous valuenewCell
- the new cell containing the computed valueIOException
public com.google.protobuf.Service getService()
getService
in interface CoprocessorService
public void addLabels(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse> done)
addLabels
in interface org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
private void setExceptionResults(int size, IOException e, org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse.Builder response)
public void setAuths(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.SetAuthsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse> done)
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
rpc setAuths(.SetAuthsRequest) returns (.VisibilityLabelsResponse);
setAuths
in interface org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
private void logResult(boolean isAllowed, String request, String reason, byte[] user, List<byte[]> labelAuths, String regex)
public void getAuths(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.GetAuthsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.GetAuthsResponse> done)
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
rpc getAuths(.GetAuthsRequest) returns (.GetAuthsResponse);
getAuths
in interface org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
public void clearAuths(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.SetAuthsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse> done)
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
rpc clearAuths(.SetAuthsRequest) returns (.VisibilityLabelsResponse);
clearAuths
in interface org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
public void listLabels(com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.ListLabelsRequest request, com.google.protobuf.RpcCallback<org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.ListLabelsResponse> done)
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
rpc listLabels(.ListLabelsRequest) returns (.ListLabelsResponse);
listLabels
in interface org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface
private void checkCallingUserAuth() throws IOException
IOException
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.