You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by se...@apache.org on 2013/05/07 01:08:52 UTC
svn commit: r1479714 - in /hbase/branches/0.95:
hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
src/main/docbkx/developer.xml
Author: sershe
Date: Mon May 6 23:08:51 2013
New Revision: 1479714
URL: http://svn.apache.org/r1479714
Log:
HBASE-8405 Add more custom options to how ClusterManager runs commands REDO DIFFERENTLY
Modified:
hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
hbase/branches/0.95/src/main/docbkx/developer.xml
Modified: hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java?rev=1479714&r1=1479713&r2=1479714&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java (original)
+++ hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java Mon May 6 23:08:51 2013
@@ -40,7 +40,13 @@ import org.apache.hadoop.util.Shell;
public class HBaseClusterManager extends ClusterManager {
private String sshUserName;
private String sshOptions;
- private String sshBeforeCommand;
+
+ /**
+ * The command format that is used to execute the remote command. Arguments:
+ * 1 SSH options, 2 user name , 3 "@" if username is set, 4 host, 5 original command.
+ */
+ private static final String DEFAULT_TUNNEL_CMD = "/usr/bin/ssh %1$s %2$s%3$s%4$s \"%5$s\"";
+ private String tunnelCmd;
@Override
public void setConf(Configuration conf) {
@@ -55,10 +61,8 @@ public class HBaseClusterManager extends
if (!extraSshOptions.isEmpty()) {
sshOptions = StringUtils.join(new Object[] { sshOptions, extraSshOptions }, " ");
}
- sshBeforeCommand = conf.get("hbase.it.clustermanager.ssh.beforeCommand", "");
- if (!sshBeforeCommand.isEmpty()) {
- sshBeforeCommand += " && ";
- }
+ sshOptions = (sshOptions == null) ? "" : sshOptions;
+ tunnelCmd = conf.get("hbase.it.clustermanager.ssh.cmd", DEFAULT_TUNNEL_CMD);
LOG.info("Running with SSH user [" + sshUserName + "] and options [" + sshOptions + "]");
}
@@ -68,8 +72,6 @@ public class HBaseClusterManager extends
protected class RemoteShell extends Shell.ShellCommandExecutor {
private String hostname;
- private String sshCmd = "/usr/bin/ssh";
-
public RemoteShell(String hostname, String[] execString, File dir, Map<String, String> env,
long timeout) {
super(execString, dir, env, timeout);
@@ -93,14 +95,11 @@ public class HBaseClusterManager extends
@Override
public String[] getExecString() {
- String userAndHost = sshUserName.isEmpty() ? hostname : (sshUserName + "@" + hostname);
- return new String[] {
- "bash", "-c",
- StringUtils.join(new String[] { sshCmd,
- (sshOptions == null) ? "" : sshOptions,
- userAndHost,
- "\"" + sshBeforeCommand + StringUtils.join(super.getExecString(), " ") + "\""
- }, " ")};
+ String at = sshUserName.isEmpty() ? "" : "@";
+ String remoteCmd = StringUtils.join(super.getExecString(), " ");
+ String cmd = String.format(tunnelCmd, sshOptions, sshUserName, at, hostname, remoteCmd);
+ LOG.info("Executing full command [" + cmd + "]");
+ return new String[] { "/usr/bin/env", "bash", "-c", cmd };
}
@Override
Modified: hbase/branches/0.95/src/main/docbkx/developer.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/src/main/docbkx/developer.xml?rev=1479714&r1=1479713&r2=1479714&view=diff
==============================================================================
Binary files - no diff available.