HADOOP-8243. Security support broken in CLI (manual) failover controller. Contributed by Todd Lipcon.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1309136 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4a3e9514c3
commit
8429acbdb7
|
@ -206,6 +206,9 @@ Release 2.0.0 - UNRELEASED
|
|||
HADOOP-8238. NetUtils#getHostNameOfIP blows up if given ip:port
|
||||
string w/o port. (eli)
|
||||
|
||||
HADOOP-8243. Security support broken in CLI (manual) failover controller
|
||||
(todd)
|
||||
|
||||
BREAKDOWN OF HADOOP-7454 SUBTASKS
|
||||
|
||||
HADOOP-7455. HA: Introduce HA Service Protocol Interface. (suresh)
|
||||
|
|
|
@ -52,14 +52,22 @@ public class FailoverController {
|
|||
public FailoverController(Configuration conf) {
|
||||
this.conf = conf;
|
||||
|
||||
this.gracefulFenceTimeout = conf.getInt(
|
||||
this.gracefulFenceTimeout = getGracefulFenceTimeout(conf);
|
||||
this.rpcTimeoutToNewActive = getRpcTimeoutToNewActive(conf);
|
||||
}
|
||||
|
||||
static int getGracefulFenceTimeout(Configuration conf) {
|
||||
return conf.getInt(
|
||||
CommonConfigurationKeys.HA_FC_GRACEFUL_FENCE_TIMEOUT_KEY,
|
||||
CommonConfigurationKeys.HA_FC_GRACEFUL_FENCE_TIMEOUT_DEFAULT);
|
||||
this.rpcTimeoutToNewActive = conf.getInt(
|
||||
}
|
||||
|
||||
static int getRpcTimeoutToNewActive(Configuration conf) {
|
||||
return conf.getInt(
|
||||
CommonConfigurationKeys.HA_FC_NEW_ACTIVE_TIMEOUT_KEY,
|
||||
CommonConfigurationKeys.HA_FC_NEW_ACTIVE_TIMEOUT_DEFAULT);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Perform pre-failover checks on the given service we plan to
|
||||
* failover to, eg to prevent failing over to a service (eg due
|
||||
|
|
|
@ -114,7 +114,8 @@ public abstract class HAAdmin extends Configured implements Tool {
|
|||
return -1;
|
||||
}
|
||||
|
||||
HAServiceProtocol proto = resolveTarget(argv[1]).getProxy();
|
||||
HAServiceProtocol proto = resolveTarget(argv[1]).getProxy(
|
||||
getConf(), 0);
|
||||
HAServiceProtocolHelper.transitionToActive(proto);
|
||||
return 0;
|
||||
}
|
||||
|
@ -127,7 +128,8 @@ public abstract class HAAdmin extends Configured implements Tool {
|
|||
return -1;
|
||||
}
|
||||
|
||||
HAServiceProtocol proto = resolveTarget(argv[1]).getProxy();
|
||||
HAServiceProtocol proto = resolveTarget(argv[1]).getProxy(
|
||||
getConf(), 0);
|
||||
HAServiceProtocolHelper.transitionToStandby(proto);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -68,11 +68,4 @@ public abstract class HAServiceTarget {
|
|||
getAddress(),
|
||||
confCopy, factory, timeoutMs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a proxy to connect to the target HA Service.
|
||||
*/
|
||||
public final HAServiceProtocol getProxy() throws IOException {
|
||||
return getProxy(new Configuration(), 0); // default conf, timeout
|
||||
}
|
||||
}
|
||||
|
|
|
@ -245,7 +245,8 @@ public abstract class ZKFailoverController implements Tool {
|
|||
private synchronized void becomeActive() {
|
||||
LOG.info("Trying to make " + localTarget + " active...");
|
||||
try {
|
||||
localTarget.getProxy().transitionToActive();
|
||||
HAServiceProtocolHelper.transitionToActive(localTarget.getProxy(
|
||||
conf, FailoverController.getRpcTimeoutToNewActive(conf)));
|
||||
LOG.info("Successfully transitioned " + localTarget +
|
||||
" to active state");
|
||||
} catch (Throwable t) {
|
||||
|
@ -267,7 +268,8 @@ public abstract class ZKFailoverController implements Tool {
|
|||
LOG.info("ZK Election indicated that " + localTarget +
|
||||
" should become standby");
|
||||
try {
|
||||
localTarget.getProxy().transitionToStandby();
|
||||
int timeout = FailoverController.getGracefulFenceTimeout(conf);
|
||||
localTarget.getProxy(conf, timeout).transitionToStandby();
|
||||
LOG.info("Successfully transitioned " + localTarget +
|
||||
" to standby state");
|
||||
} catch (Exception e) {
|
||||
|
|
Loading…
Reference in New Issue