This is an automated email from the ASF dual-hosted git repository.
apurtell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 81953d3 Amend HBASE-22377 Provide API to check the existence of a
namespace which does not require ADMIN permissions
81953d3 is described below
commit 81953d3e00908fc7389cca781e480cee8e3049c3
Author: Andrew Purtell <[email protected]>
AuthorDate: Tue May 14 12:59:10 2019 -0700
Amend HBASE-22377 Provide API to check the existence of a namespace which
does not require ADMIN permissions
Sync Javadoc updates from branch-1 and branch-2 backports
---
.../java/org/apache/hadoop/hbase/client/Admin.java | 63 +++++++++++++++++-----
1 file changed, 49 insertions(+), 14 deletions(-)
diff --git
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
index c7d60c5..14abb6e 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
@@ -212,6 +212,7 @@ public interface Admin extends Abortable, Closeable {
* @param startKey beginning of key range
* @param endKey end of key range
* @param numRegions the total number of regions to create
+ * @throws IOException if a remote or network exception occurs
* @throws IllegalArgumentException if the table name is reserved
* @throws org.apache.hadoop.hbase.MasterNotRunningException if master is
not running
* @throws org.apache.hadoop.hbase.TableExistsException if table already
exists (If concurrent
@@ -232,7 +233,7 @@ public interface Admin extends Abortable, Closeable {
* @throws org.apache.hadoop.hbase.MasterNotRunningException if master is
not running
* @throws org.apache.hadoop.hbase.TableExistsException if table already
exists (If concurrent
* threads, the table may have been created between test-for-existence and
attempt-at-creation).
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
default void createTable(TableDescriptor desc, byte[][] splitKeys) throws
IOException {
get(createTableAsync(desc, splitKeys), getSyncWaitTimeout(),
TimeUnit.MILLISECONDS);
@@ -321,7 +322,7 @@ public interface Admin extends Abortable, Closeable {
* and {@link #isTableEnabled(org.apache.hadoop.hbase.TableName)} instead.
The table has to be in
* disabled state for it to be enabled.
* @param tableName name of the table
- * @throws IOException if a remote or network exception occurs There could
be couple types of
+ * @throws IOException There could be couple types of
* IOException TableNotFoundException means the table doesn't
exist.
* TableNotDisabledException means the table isn't in disabled
state.
* @see #isTableEnabled(org.apache.hadoop.hbase.TableName)
@@ -664,6 +665,7 @@ public interface Admin extends Abortable, Closeable {
* @param switchState Set to <code>true</code> to enable,
<code>false</code> to disable.
* @param serverNamesList list of region servers.
* @return Previous compaction states for region servers
+ * @throws IOException if a remote or network exception occurs
*/
Map<ServerName, Boolean> compactionSwitch(boolean switchState, List<String>
serverNamesList)
throws IOException;
@@ -734,6 +736,7 @@ public interface Admin extends Abortable, Closeable {
/**
* Assign a Region.
* @param regionName Region name to assign.
+ * @throws IOException if a remote or network exception occurs
*/
void assign(byte[] regionName) throws IOException;
@@ -745,6 +748,7 @@ public interface Admin extends Abortable, Closeable {
* @param regionName Region to unassign. Will clear any existing RegionPlan
if one found.
* @param force If <code>true</code>, force unassign (Will remove region
from regions-in-transition too if
* present. If results in double assignment use hbck -fix to resolve. To be
used by experts).
+ * @throws IOException if a remote or network exception occurs
*/
void unassign(byte[] regionName, boolean force)
throws IOException;
@@ -757,7 +761,7 @@ public interface Admin extends Abortable, Closeable {
* experts or hbck.
*
* @param regionName Region to offline.
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
void offline(byte[] regionName) throws IOException;
@@ -767,15 +771,16 @@ public interface Admin extends Abortable, Closeable {
* @param synchronous If <code>true</code>, it waits until current balance()
call, if outstanding,
* to return.
* @return Previous balancer value
+ * @throws IOException if a remote or network exception occurs
*/
boolean balancerSwitch(boolean onOrOff, boolean synchronous) throws
IOException;
-
/**
* Invoke the balancer. Will run the balancer and if regions to move, it
will go ahead and do the
* reassignments. Can NOT run for various reasons. Check logs.
*
* @return <code>true</code> if balancer ran, <code>false</code> otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean balance() throws IOException;
@@ -786,6 +791,7 @@ public interface Admin extends Abortable, Closeable {
* logs.
* @param force whether we should force balance even if there is region in
transition
* @return <code>true</code> if balancer ran, <code>false</code> otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean balance(boolean force) throws IOException;
@@ -793,6 +799,7 @@ public interface Admin extends Abortable, Closeable {
* Query the current state of the balancer.
*
* @return <code>true</code> if the balancer is enabled, <code>false</code>
otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean isBalancerEnabled() throws IOException;
@@ -812,6 +819,7 @@ public interface Admin extends Abortable, Closeable {
* Invoke region normalizer. Can NOT run for various reasons. Check logs.
*
* @return <code>true</code> if region normalizer ran, <code>false</code>
otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean normalize() throws IOException;
@@ -819,6 +827,7 @@ public interface Admin extends Abortable, Closeable {
* Query the current state of the region normalizer.
*
* @return <code>true</code> if region normalizer is enabled,
<code>false</code> otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean isNormalizerEnabled() throws IOException;
@@ -826,6 +835,7 @@ public interface Admin extends Abortable, Closeable {
* Turn region normalizer on or off.
*
* @return Previous normalizer value
+ * @throws IOException if a remote or network exception occurs
*/
boolean normalizerSwitch(boolean on) throws IOException;
@@ -834,6 +844,7 @@ public interface Admin extends Abortable, Closeable {
*
* @param onOrOff if <code>true</code> enables the catalog janitor
* @return the previous state
+ * @throws IOException if a remote or network exception occurs
*/
boolean catalogJanitorSwitch(boolean onOrOff) throws IOException;
@@ -841,12 +852,14 @@ public interface Admin extends Abortable, Closeable {
* Ask for a scan of the catalog table.
*
* @return the number of entries cleaned
+ * @throws IOException if a remote or network exception occurs
*/
int runCatalogJanitor() throws IOException;
/**
* Query on the catalog janitor state (Enabled/Disabled?).
*
+ * @throws IOException if a remote or network exception occurs
*/
boolean isCatalogJanitorEnabled() throws IOException;
@@ -855,7 +868,7 @@ public interface Admin extends Abortable, Closeable {
*
* @param onOrOff if <code>true</code> enables the cleaner chore
* @return the previous state
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
boolean cleanerChoreSwitch(boolean onOrOff) throws IOException;
@@ -863,14 +876,14 @@ public interface Admin extends Abortable, Closeable {
* Ask for cleaner chore to run.
*
* @return <code>true</code> if cleaner chore ran, <code>false</code>
otherwise
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
boolean runCleanerChore() throws IOException;
/**
* Query on the cleaner chore state (Enabled/Disabled?).
*
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
boolean isCleanerChoreEnabled() throws IOException;
@@ -881,6 +894,7 @@ public interface Admin extends Abortable, Closeable {
* @param nameOfRegionB encoded or full name of region b
* @param forcible <code>true</code> if do a compulsory merge, otherwise we
will only merge two
* adjacent regions
+ * @throws IOException if a remote or network exception occurs
*/
default Future<Void> mergeRegionsAsync(byte[] nameOfRegionA, byte[]
nameOfRegionB,
boolean forcible) throws IOException {
@@ -899,6 +913,7 @@ public interface Admin extends Abortable, Closeable {
* @param nameofRegionsToMerge encoded or full name of daughter regions
* @param forcible <code>true</code> if do a compulsory merge, otherwise we
will only merge
* adjacent regions
+ * @throws IOException if a remote or network exception occurs
*/
Future<Void> mergeRegionsAsync(byte[][] nameofRegionsToMerge, boolean
forcible)
throws IOException;
@@ -1072,6 +1087,7 @@ public interface Admin extends Abortable, Closeable {
* Create a new namespace. Blocks until namespace has been successfully
created or an exception is
* thrown.
* @param descriptor descriptor which describes the new namespace.
+ * @throws IOException if a remote or network exception occurs
*/
default void createNamespace(NamespaceDescriptor descriptor) throws
IOException {
get(createNamespaceAsync(descriptor), getSyncWaitTimeout(),
TimeUnit.MILLISECONDS);
@@ -1082,6 +1098,7 @@ public interface Admin extends Abortable, Closeable {
* @param descriptor descriptor which describes the new namespace
* @return the result of the async create namespace operation. Use
Future.get(long, TimeUnit) to
* wait on the operation to complete.
+ * @throws IOException if a remote or network exception occurs
*/
Future<Void> createNamespaceAsync(NamespaceDescriptor descriptor) throws
IOException;
@@ -1089,6 +1106,7 @@ public interface Admin extends Abortable, Closeable {
* Modify an existing namespace. Blocks until namespace has been
successfully modified or an
* exception is thrown.
* @param descriptor descriptor which describes the new namespace
+ * @throws IOException if a remote or network exception occurs
*/
default void modifyNamespace(NamespaceDescriptor descriptor) throws
IOException {
get(modifyNamespaceAsync(descriptor), getSyncWaitTimeout(),
TimeUnit.MILLISECONDS);
@@ -1099,6 +1117,7 @@ public interface Admin extends Abortable, Closeable {
* @param descriptor descriptor which describes the new namespace
* @return the result of the async modify namespace operation. Use
Future.get(long, TimeUnit) to
* wait on the operation to complete.
+ * @throws IOException if a remote or network exception occurs
*/
Future<Void> modifyNamespaceAsync(NamespaceDescriptor descriptor) throws
IOException;
@@ -1106,6 +1125,7 @@ public interface Admin extends Abortable, Closeable {
* Delete an existing namespace. Only empty namespaces (no tables) can be
removed. Blocks until
* namespace has been successfully deleted or an exception is thrown.
* @param name namespace name
+ * @throws IOException if a remote or network exception occurs
*/
default void deleteNamespace(String name) throws IOException {
get(deleteNamespaceAsync(name), getSyncWaitTimeout(),
TimeUnit.MILLISECONDS);
@@ -1116,6 +1136,7 @@ public interface Admin extends Abortable, Closeable {
* @param name namespace name
* @return the result of the async delete namespace operation. Use
Future.get(long, TimeUnit) to
* wait on the operation to complete.
+ * @throws IOException if a remote or network exception occurs
*/
Future<Void> deleteNamespaceAsync(String name) throws IOException;
@@ -1515,7 +1536,7 @@ public interface Admin extends Abortable, Closeable {
* @param instance The instance name of the procedure. For some procedures,
this parameter is
* optional.
* @param props Property/Value pairs of properties passing to the procedure
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
void execProcedure(String signature, String instance, Map<String, String>
props)
throws IOException;
@@ -1529,7 +1550,7 @@ public interface Admin extends Abortable, Closeable {
* optional.
* @param props Property/Value pairs of properties passing to the procedure
* @return data returned after procedure execution. null if no return data.
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
byte[] execProcedureWithReturn(String signature, String instance,
Map<String, String> props)
throws IOException;
@@ -1666,22 +1687,21 @@ public interface Admin extends Abortable, Closeable {
* Update the configuration and trigger an online config change
* on the regionserver.
* @param server : The server whose config needs to be updated.
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
void updateConfiguration(ServerName server) throws IOException;
-
/**
* Update the configuration and trigger an online config change
* on all the regionservers.
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
void updateConfiguration() throws IOException;
/**
* Get the info port of the current master if one is available.
* @return master info port
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
*/
default int getMasterInfoPort() throws IOException {
return
getClusterMetrics(EnumSet.of(Option.MASTER_INFO_PORT)).getMasterInfoPort();
@@ -1689,7 +1709,7 @@ public interface Admin extends Abortable, Closeable {
/**
* Return the set of supported security capabilities.
- * @throws IOException
+ * @throws IOException if a remote or network exception occurs
* @throws UnsupportedOperationException
*/
List<SecurityCapability> getSecurityCapabilities() throws IOException;
@@ -1700,6 +1720,7 @@ public interface Admin extends Abortable, Closeable {
* @param synchronous If <code>true</code>, it waits until current split()
call, if outstanding,
* to return.
* @return Previous switch value
+ * @throws IOException if a remote or network exception occurs
*/
boolean splitSwitch(boolean enabled, boolean synchronous) throws IOException;
@@ -1709,18 +1730,21 @@ public interface Admin extends Abortable, Closeable {
* @param synchronous If <code>true</code>, it waits until current merge()
call, if outstanding,
* to return.
* @return Previous switch value
+ * @throws IOException if a remote or network exception occurs
*/
boolean mergeSwitch(boolean enabled, boolean synchronous) throws IOException;
/**
* Query the current state of the split switch.
* @return <code>true</code> if the switch is enabled, <code>false</code>
otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean isSplitEnabled() throws IOException;
/**
* Query the current state of the merge switch.
* @return <code>true</code> if the switch is enabled, <code>false</code>
otherwise.
+ * @throws IOException if a remote or network exception occurs
*/
boolean isMergeEnabled() throws IOException;
@@ -1976,12 +2000,14 @@ public interface Admin extends Abortable, Closeable {
* movements. Region unloading is asynchronous.
* @param servers The list of servers to decommission.
* @param offload True to offload the regions from the decommissioned servers
+ * @throws IOException if a remote or network exception occurs
*/
void decommissionRegionServers(List<ServerName> servers, boolean offload)
throws IOException;
/**
* List region servers marked as decommissioned, which can not be assigned
regions.
* @return List of decommissioned region servers.
+ * @throws IOException if a remote or network exception occurs
*/
List<ServerName> listDecommissionedRegionServers() throws IOException;
@@ -1991,6 +2017,7 @@ public interface Admin extends Abortable, Closeable {
* asynchronous.
* @param server The server to recommission.
* @param encodedRegionNames Regions to load onto the server.
+ * @throws IOException if a remote or network exception occurs
*/
void recommissionRegionServer(ServerName server, List<byte[]>
encodedRegionNames)
throws IOException;
@@ -1998,6 +2025,7 @@ public interface Admin extends Abortable, Closeable {
/**
* Find all table and column families that are replicated from this cluster
* @return the replicated table-cfs list of this cluster.
+ * @throws IOException if a remote or network exception occurs
*/
List<TableCFs> listReplicatedTableCFs() throws IOException;
@@ -2055,12 +2083,14 @@ public interface Admin extends Abortable, Closeable {
* Switch the rpc throttle enable state.
* @param enable Set to <code>true</code> to enable, <code>false</code> to
disable.
* @return Previous rpc throttle enabled value
+ * @throws IOException if a remote or network exception occurs
*/
boolean switchRpcThrottle(boolean enable) throws IOException;
/**
* Get if the rpc throttle is enabled.
* @return True if rpc throttle is enabled
+ * @throws IOException if a remote or network exception occurs
*/
boolean isRpcThrottleEnabled() throws IOException;
@@ -2069,16 +2099,19 @@ public interface Admin extends Abortable, Closeable {
* can be exceeded if region server has availble quota.
* @param enable Set to <code>true</code> to enable, <code>false</code> to
disable.
* @return Previous exceed throttle enabled value
+ * @throws IOException if a remote or network exception occurs
*/
boolean exceedThrottleQuotaSwitch(final boolean enable) throws IOException;
/**
* Fetches the table sizes on the filesystem as tracked by the HBase Master.
+ * @throws IOException if a remote or network exception occurs
*/
Map<TableName, Long> getSpaceQuotaTableSizes() throws IOException;
/**
* Fetches the observed {@link SpaceQuotaSnapshotView}s observed by a
RegionServer.
+ * @throws IOException if a remote or network exception occurs
*/
Map<TableName, ? extends SpaceQuotaSnapshotView>
getRegionServerSpaceQuotaSnapshots(
ServerName serverName) throws IOException;
@@ -2086,12 +2119,14 @@ public interface Admin extends Abortable, Closeable {
/**
* Returns the Master's view of a quota on the given {@code namespace} or
null if the Master has
* no quota information on that namespace.
+ * @throws IOException if a remote or network exception occurs
*/
SpaceQuotaSnapshotView getCurrentSpaceQuotaSnapshot(String namespace) throws
IOException;
/**
* Returns the Master's view of a quota on the given {@code tableName} or
null if the Master has
* no quota information on that table.
+ * @throws IOException if a remote or network exception occurs
*/
SpaceQuotaSnapshotView getCurrentSpaceQuotaSnapshot(TableName tableName)
throws IOException;