HADOOP-19228. ShellCommandFencer#setConfAsEnvVars should also replace '-' with '_'. (#6936). Contributed by fuchaohong.
Signed-off-by: He Xiaoqiao <hexiaoqiao@apache.org>
This commit is contained in:
parent
a5eb5e9611
commit
1577f57d4c
@ -183,7 +183,7 @@ public final Map<String, String> getFencingParameters() {
|
||||
* expose to fencing implementations/scripts. Fencing methods are free
|
||||
* to use this map as they see fit -- notably, the shell script
|
||||
* implementation takes each entry, prepends 'target_', substitutes
|
||||
* '_' for '.', and adds it to the environment of the script.
|
||||
* '_' for '.' and '-', and adds it to the environment of the script.
|
||||
*
|
||||
* Subclass implementations should be sure to delegate to the superclass
|
||||
* implementation as well as adding their own keys.
|
||||
|
@ -39,8 +39,8 @@
|
||||
* (cmd.exe on Windows) and may not include any closing parentheses.<p>
|
||||
*
|
||||
* The shell command will be run with an environment set up to contain
|
||||
* all of the current Hadoop configuration variables, with the '_' character
|
||||
* replacing any '.' characters in the configuration keys.<p>
|
||||
* all of the current Hadoop configuration variables, with the '_' character
|
||||
* replacing any '.' or '-' characters in the configuration keys.<p>
|
||||
*
|
||||
* If the shell command returns an exit code of 0, the fencing is
|
||||
* determined to be successful. If it returns any other exit code, the
|
||||
@ -202,11 +202,11 @@ private static String tryGetPid(Process p) {
|
||||
|
||||
/**
|
||||
* Set the environment of the subprocess to be the Configuration,
|
||||
* with '.'s replaced by '_'s.
|
||||
* with '.'s and '-'s replaced by '_'s.
|
||||
*/
|
||||
private void setConfAsEnvVars(Map<String, String> env) {
|
||||
for (Map.Entry<String, String> pair : getConf()) {
|
||||
env.put(pair.getKey().replace('.', '_'), pair.getValue());
|
||||
env.put(pair.getKey().replaceAll("[.-]", "_"), pair.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@ -237,7 +237,7 @@ private void addTargetInfoAsEnvVars(HAServiceTarget target,
|
||||
for (Map.Entry<String, String> e :
|
||||
target.getFencingParameters().entrySet()) {
|
||||
String key = prefix + e.getKey();
|
||||
key = key.replace('.', '_');
|
||||
key = key.replaceAll("[.-]", "_");
|
||||
environment.put(key, e.getValue());
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ public void resetLogSpy() {
|
||||
|
||||
private static ShellCommandFencer createFencer() {
|
||||
Configuration conf = new Configuration();
|
||||
conf.set("in.fencing.tests", "yessir");
|
||||
conf.set("in.fencing-tests", "yessir");
|
||||
ShellCommandFencer fencer = new ShellCommandFencer();
|
||||
fencer.setConf(conf);
|
||||
return fencer;
|
||||
|
Loading…
Reference in New Issue
Block a user