From 2d0895d8bde67f6125c9abba8e67f0aabd326634 Mon Sep 17 00:00:00 2001 From: Libor Zoubek Date: Tue, 17 Mar 2015 17:49:31 +0100 Subject: [PATCH] Bug 1194690 - CLI doesn't work when agent-server communication uses sslsocket Update LoginCommand so transport can be specified as one of [http, https, socket, sslsocket]. (cherry picked from commit 37310acccfe0e0ed588729a9ec751072bc16247d) --- .../client/commands/LoginCommand.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/LoginCommand.java b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/LoginCommand.java index 2e0d61e0a7c..ebcccc8d242 100644 --- a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/LoginCommand.java +++ b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/LoginCommand.java @@ -21,6 +21,8 @@ import java.io.PrintWriter; import java.net.UnknownHostException; +import java.util.Arrays; +import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -36,6 +38,7 @@ */ public class LoginCommand implements ClientCommand { private static final Log LOG = LogFactory.getLog(LoginCommand.class); + private static final List SUPPORTED_TRANSPORTS = Arrays.asList("http", "https", "socket", "sslsocket"); //Added to switch between jbossRemoting and WS subsystems private String subsystem = null; @@ -82,8 +85,9 @@ public boolean execute(ClientMain client, String[] args) { argIndex++; if (args.length > argIndex) { transport = args[argIndex]; - if (!"http".equals(transport) || !"https".equals(transport)) { - printWriter.println("Invalid transport [" + transport + "], should be either http or https"); + if (!SUPPORTED_TRANSPORTS.contains(transport)) { + printWriter.println("Invalid transport [" + transport + "], must be one of " + + Arrays.toString(SUPPORTED_TRANSPORTS.toArray())); return true; } } @@ -164,7 +168,12 @@ private String usage() { @Override public String getSyntax() { - return getPromptCommandString() + " username password [host]|[host port]|[host port |]"; + StringBuilder transports = new StringBuilder(); + for (String t : SUPPORTED_TRANSPORTS) { + transports.append("<" + t + ">|"); + } + transports.deleteCharAt(transports.length() - 1); + return getPromptCommandString() + " username password [host]|[host port]|[host port " + transports + "]"; } @Override @@ -178,6 +187,6 @@ public String getDetailedHelp() { + "name and port may optionally be specified. The host name defaults to " + "localhost and the port to 7080. You may also specify the transport " + "to use when communicating with the server; it must be one " // - + "of 'servlet' or 'sslservlet'."; + + "of " + SUPPORTED_TRANSPORTS + "."; } }