public abstract class AbstractStateMachineTableProcedure<TState> extends <any> implements TableProcedureInterface
TableProcedureInterface.TableOperationType
Modifier | Constructor and Description |
---|---|
protected |
AbstractStateMachineTableProcedure() |
protected |
AbstractStateMachineTableProcedure(MasterProcedureEnv env) |
protected |
AbstractStateMachineTableProcedure(MasterProcedureEnv env,
ProcedurePrepareLatch latch) |
Modifier and Type | Method and Description |
---|---|
protected LockState |
acquireLock(MasterProcedureEnv env) |
protected static void |
checkOnline(MasterProcedureEnv env,
RegionInfo ri)
Check region is online.
|
protected void |
checkTableModifiable(MasterProcedureEnv env)
Check whether a table is modifiable - exists and either offline or online with config set
|
protected Path |
getRegionDir(MasterProcedureEnv env,
RegionInfo region) |
abstract TableName |
getTableName() |
abstract TableProcedureInterface.TableOperationType |
getTableOperationType()
Given an operation type we can take decisions about what to do with pending operations.
|
protected User |
getUser() |
protected void |
preflightChecks(MasterProcedureEnv env,
java.lang.Boolean enabled)
Check that cluster is up and master is running.
|
protected void |
releaseLock(MasterProcedureEnv env) |
protected void |
releaseSyncLatch() |
protected void |
setUser(User user) |
void |
toStringClassDetails(java.lang.StringBuilder sb) |
protected AbstractStateMachineTableProcedure()
protected AbstractStateMachineTableProcedure(MasterProcedureEnv env)
protected AbstractStateMachineTableProcedure(MasterProcedureEnv env, ProcedurePrepareLatch latch)
env
- Uses this to set Procedure Owner at least.public abstract TableName getTableName()
getTableName
in interface TableProcedureInterface
public abstract TableProcedureInterface.TableOperationType getTableOperationType()
TableProcedureInterface
getTableOperationType
in interface TableProcedureInterface
public void toStringClassDetails(java.lang.StringBuilder sb)
protected LockState acquireLock(MasterProcedureEnv env)
protected void releaseLock(MasterProcedureEnv env)
protected User getUser()
protected void setUser(User user)
protected void releaseSyncLatch()
protected void checkTableModifiable(MasterProcedureEnv env) throws java.io.IOException
env
- MasterProcedureEnvjava.io.IOException
protected final Path getRegionDir(MasterProcedureEnv env, RegionInfo region) throws java.io.IOException
java.io.IOException
protected void preflightChecks(MasterProcedureEnv env, java.lang.Boolean enabled) throws HBaseIOException
enabled
, check table is enabled else check it is disabled.
Call in Procedure constructor so can pass any exception to caller.enabled
- If true, check table is enabled and throw exception if not. If false, do the
inverse. If null, do no table checks.HBaseIOException
protected static void checkOnline(MasterProcedureEnv env, RegionInfo ri) throws DoNotRetryRegionException
DoNotRetryRegionException