modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 26 +- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java | 89 +++++----- modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 2 modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties | 2 modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties | 2 modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ko.properties | 1 modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties | 2 modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties | 2 8 files changed, 73 insertions(+), 53 deletions(-)
New commits: commit 28ee366c11d10e77a361bb4180d18a8360016e2f Author: Jirka Kremser jkremser@redhat.com Date: Thu Mar 28 17:41:13 2013 +0100
[BZ 876132] - Remote agent install form requires the ins. path to be non-empty, but the tooltip says it can be empty - Allowing blank installation path. It should search for the agent install directory if the path prefix is provided or to choose a default one.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java index 4e80756..7fbf8a1 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java @@ -36,6 +36,7 @@ import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window.Location; import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.core.KeyIdentifier; +import com.smartgwt.client.i18n.SmartGwtMessages; import com.smartgwt.client.types.Overflow; import com.smartgwt.client.util.KeyCallback; import com.smartgwt.client.util.Page; @@ -78,6 +79,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na // This must come first to ensure proper I18N class loading for dev mode private static final Messages MSG = GWT.create(Messages.class); private static final MessageConstants MSGCONST = GWT.create(MessageConstants.class); + private static final SmartGwtMessages SMART_GWT_MSG = GWT.create(SmartGwtMessages.class);
private static final String DEFAULT_VIEW = DashboardsView.VIEW_ID.getName(); private static final String LOGOUT_VIEW = "LogOut"; @@ -92,7 +94,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na + ResourceGroupDetailView.AUTO_GROUP_VIEW + "|" // + ResourceGroupDetailView.AUTO_CLUSTER_VIEW // + ResourceGroupTopView.VIEW_ID + "|" // - + ResourceTopView.VIEW_ID + "|" // + + ResourceTopView.VIEW_ID + "|" // + ")/[^/]*";
private static ErrorHandler errorHandler = new ErrorHandler(); @@ -109,7 +111,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na // while also changing the main content. Typically we refresh only when the path is not changed. private static boolean pendingRefresh = false;
- //spinder [BZ 731864] defining variable that can be set at build time to enable/disable TAG ui components. + //spinder [BZ 731864] defining variable that can be set at build time to enable/disable TAG ui components. // This will be set to 'false' on the release branch. private static boolean enableTagsForUI = Boolean.valueOf(MSG.enable_tags());
@@ -160,11 +162,11 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na } });
- /* after having this enabled for a while, the majority opinion is that this is more annoying than helpful - * + /* after having this enabled for a while, the majority opinion is that this is more annoying than helpful + * Window.addWindowClosingHandler(new Window.ClosingHandler() { public void onWindowClosing(Window.ClosingEvent event) { - event.setMessage("Are you sure you want to leave RHQ?"); + event.setMessage("Are you sure you want to leave RHQ?"); } }); */ @@ -431,7 +433,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na pendingMessage = message; pendingRefresh = refresh;
- // if path starts with "#" (e.g. if caller used LinkManager to obtain some of the path), strip it off + // if path starts with "#" (e.g. if caller used LinkManager to obtain some of the path), strip it off if (view.charAt(0) == '#') { view = view.substring(1); } @@ -454,10 +456,10 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na // resource to an autogroup in the same tree. Try to keep the tab selection sticky as best as // possible while moving from one view to another by grabbing the end portion of the previous // history URL and append it to the new history URL. The suffix is assumed to follow the - // ID (numeric) portion of the currentViewPath. + // ID (numeric) portion of the currentViewPath. String suffix = currentViewPath.replaceFirst("\D*[^/]*", ""); // make sure we're not *too* sticky, stop no deeper than the subtab level. This prevents - // trying to render non-applicable detail views. We'll do this by chopping at the start + // trying to render non-applicable detail views. We'll do this by chopping at the start // of any other numeric in the path suffix = suffix.replaceFirst("\d.*", ""); view += suffix; @@ -475,6 +477,10 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na return MSGCONST; }
+ public static SmartGwtMessages getSmartGwtMessages() { + return SMART_GWT_MSG; + } + public void reset() { messageCenter.reset(); footer.reset(); @@ -511,7 +517,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na }
public void initCanvas() { - // request a redraw of the MenuBarItem to ensure the correct session info is displayed + // request a redraw of the MenuBarItem to ensure the correct session info is displayed getMember(0).markForRedraw();
// remove any current viewId so the next requested view generates new content @@ -520,7 +526,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na
@Override public void renderView(ViewPath viewPath) { - // If the session is logged out ensure that we only navigate to the log out view, otherwise keep + // If the session is logged out ensure that we only navigate to the log out view, otherwise keep // our CoreGUI session alive by refreshing the session timer each time the user performs navigation if (UserSessionManager.isLoggedOut()) { if (!LOGOUT_VIEW.equals(viewPath.getCurrent().getPath())) { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java index c92114f..c1ca163 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/agent/install/RemoteAgentInstallView.java @@ -23,6 +23,8 @@ package org.rhq.enterprise.gui.coregui.client.admin.agent.install;
import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.types.ExpansionMode; @@ -72,6 +74,8 @@ public class RemoteAgentInstallView extends EnhancedVLayout { private EnhancedIButton installButton; private EnhancedIButton startButton; private EnhancedIButton stopButton; + private ButtonItem findAgentInstallPathButton; + private ButtonItem statusCheckButton; private VLayout agentInfoLayout;
public RemoteAgentInstallView() { @@ -110,45 +114,45 @@ public class RemoteAgentInstallView extends EnhancedVLayout { connectionForm = new DynamicForm(); connectionForm.setNumCols(4); connectionForm.setWrapItemTitles(false); - connectionForm.setColWidths("130", "250", "110"); + connectionForm.setColWidths("130", "450", "110"); + final int textFieldWidth = 440;
TextItem host = new TextItem("host", MSG.common_title_host()); host.setRequired(true); - host.setWidth("240"); + host.setWidth(textFieldWidth); host.setPrompt(MSG.view_remoteAgentInstall_promptHost()); host.setHoverWidth(300); host.setEndRow(true);
TextItem port = new TextItem("port", MSG.common_title_port()); port.setRequired(false); - port.setWidth("240"); + port.setWidth(textFieldWidth); port.setPrompt(MSG.view_remoteAgentInstall_promptPort()); port.setHoverWidth(300); port.setEndRow(true);
TextItem username = new TextItem("username", MSG.common_title_user()); username.setRequired(true); - username.setWidth("240"); + username.setWidth(textFieldWidth); username.setPrompt(MSG.view_remoteAgentInstall_promptUser()); username.setHoverWidth(300); username.setEndRow(true);
PasswordItem password = new PasswordItem("password", MSG.common_title_password()); password.setRequired(false); - password.setWidth("240"); + password.setWidth(textFieldWidth); password.setPrompt(MSG.view_remoteAgentInstall_promptPassword()); password.setHoverWidth(300); password.setEndRow(true);
TextItem agentInstallPath = new TextItem("agentInstallPath", MSG.view_remoteAgentInstall_installPath()); - agentInstallPath.setRequired(true); - agentInstallPath.setWidth("240"); + agentInstallPath.setWidth(textFieldWidth); agentInstallPath.setPrompt(MSG.view_remoteAgentInstall_promptInstallPath()); agentInstallPath.setHoverWidth(300); agentInstallPath.setStartRow(true); agentInstallPath.setEndRow(false);
- ButtonItem findAgentInstallPathButton = new ButtonItem("findAgentInstallPathButton", + findAgentInstallPathButton = new ButtonItem("findAgentInstallPathButton", MSG.view_remoteAgentInstall_buttonFindAgent()); findAgentInstallPathButton.setStartRow(false); findAgentInstallPathButton.setEndRow(true); @@ -157,9 +161,7 @@ public class RemoteAgentInstallView extends EnhancedVLayout { } findAgentInstallPathButton.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() { public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent clickEvent) { - if (connectionForm.validate()) { - findAgentInstallPath(); - } + findAgentInstallPath(); } });
@@ -170,7 +172,7 @@ public class RemoteAgentInstallView extends EnhancedVLayout { agentStatus.setStartRow(true); agentStatus.setEndRow(false);
- ButtonItem statusCheckButton = new ButtonItem("updateStatus", MSG.view_remoteAgentInstall_updateStatus()); + statusCheckButton = new ButtonItem("updateStatus", MSG.view_remoteAgentInstall_updateStatus()); statusCheckButton.setStartRow(false); statusCheckButton.setEndRow(true); if (findAgentInstallPathButton.getTitle().length() < 15) { //i18n may prolong the title @@ -205,11 +207,6 @@ public class RemoteAgentInstallView extends EnhancedVLayout { });
startButton = new EnhancedIButton(MSG.view_remoteAgentInstall_startAgent()); - // startButton.setShowIfCondition(new FormItemIfFunction() { - // public boolean execute(FormItem formItem, Object o, DynamicForm dynamicForm) { - // return form.getValue("agentStatus") != null && !"Agent Not Installed".equals(form.getValue("agentStatus")); - // } - // }); startButton.setExtraSpace(10); startButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { @@ -234,32 +231,44 @@ public class RemoteAgentInstallView extends EnhancedVLayout { }
private void findAgentInstallPath() { - disableButtons(true); + final Map<String, String> errors = new HashMap<String, String>(2); + if (connectionForm.getValueAsString("host") == null + || connectionForm.getValueAsString("host").trim().isEmpty()) { + errors.put("host", CoreGUI.getSmartGwtMessages().validator_requiredField()); + } + if (connectionForm.getValueAsString("username") == null + || connectionForm.getValueAsString("username").trim().isEmpty()) { + errors.put("username", CoreGUI.getSmartGwtMessages().validator_requiredField()); + } + connectionForm.setErrors(errors, true); + if (errors.isEmpty()) { + disableButtons(true);
- final String parentPath = getAgentInstallPath(); + final String parentPath = connectionForm.getValueAsString("agentInstallPath");
- remoteInstallService.findAgentInstallPath(getRemoteAccessInfo(), parentPath, new AsyncCallback<String>() { - public void onFailure(Throwable caught) { - disableButtons(false); - CoreGUI.getErrorHandler().handleError(MSG.view_remoteAgentInstall_error_1(), caught); - } + remoteInstallService.findAgentInstallPath(getRemoteAccessInfo(), parentPath, new AsyncCallback<String>() { + public void onFailure(Throwable caught) { + disableButtons(false); + CoreGUI.getErrorHandler().handleError(MSG.view_remoteAgentInstall_error_1(), caught); + }
- public void onSuccess(String result) { - disableButtons(false); - if (result != null) { - connectionForm.setValue("agentInstallPath", result); - } else { - String err; - if (parentPath == null || parentPath.length() == 0) { - err = MSG.view_remoteAgentInstall_error_2(); + public void onSuccess(String result) { + disableButtons(false); + if (result != null) { + connectionForm.setValue("agentInstallPath", result); } else { - err = MSG.view_remoteAgentInstall_error_3(parentPath); + String err; + if (parentPath == null || parentPath.length() == 0) { + err = MSG.view_remoteAgentInstall_error_2(); + } else { + err = MSG.view_remoteAgentInstall_error_3(parentPath); + } + CoreGUI.getErrorHandler().handleError(err); } - CoreGUI.getErrorHandler().handleError(err); + agentStatusCheck(); } - agentStatusCheck(); - } - }); + }); + } }
private void agentStatusCheck() { @@ -432,6 +441,8 @@ public class RemoteAgentInstallView extends EnhancedVLayout { startButton.setDisabled(disabled); stopButton.setDisabled(disabled); buttonsForm.setDisabled(disabled); + findAgentInstallPathButton.setDisabled(disabled); + statusCheckButton.setDisabled(disabled); }
private RemoteAccessInfo getRemoteAccessInfo() { @@ -453,6 +464,10 @@ public class RemoteAgentInstallView extends EnhancedVLayout { }
private String getAgentInstallPath() { + if (connectionForm.getValueAsString("agentInstallPath") == null + || connectionForm.getValueAsString("agentInstallPath").trim().isEmpty()) { + findAgentInstallPath(); + } return connectionForm.getValueAsString("agentInstallPath"); } } diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties index 66fc511..0d731ab 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties @@ -1865,7 +1865,7 @@ view_remoteAgentInstall_installInfo = Agent Installation Information view_remoteAgentInstall_installPath = Agent Install Path view_remoteAgentInstall_owner = Owner view_remoteAgentInstall_promptHost = The host where the agent is or will be installed -view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. You may try to use the Find Agent button to find the existing rhq agent directories. +view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install. view_remoteAgentInstall_promptPassword = The credentials that are used to authenticate the user on the host via SSH view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22 view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties index 6c41b06..b4ba1e4 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_cs.properties @@ -1878,7 +1878,7 @@ view_remoteAgentInstall_installInfo = Informace o instalaci agenta view_remoteAgentInstall_installPath = Instalační cesta k agentovi view_remoteAgentInstall_owner = Vlastník view_remoteAgentInstall_promptHost = Hostitel, kde je, nebo kam bude, agent nainstalován -##view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. You may try to use the Find Agent button to find the existing rhq agent directories. +##view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install. view_remoteAgentInstall_promptPassword = Přihlašovací údaje použité pro autentizaci uživatele přes SSH view_remoteAgentInstall_promptPort = Port na němž naslouchá SSH. Pokud není specifikováno použije se 22 view_remoteAgentInstall_promptUser = Jméno uživatele jehož přihlašovací údaje jsou předány hostiteli přes SSH diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties index 7094d93..016b160 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties @@ -1680,7 +1680,7 @@ view_remoteAgentInstall_installInfo = Informationen zur Agent-Installation view_remoteAgentInstall_installPath = Pfad der Agent-Installation view_remoteAgentInstall_owner = Eigentümer ##view_remoteAgentInstall_promptHost = The host where the agent is or will be installed -##view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. You may try to use the Find Agent button to find the existing rhq agent directories. +##view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install. ##view_remoteAgentInstall_promptPassword = The credentials that are used to authenticate the user on the host via SSH ##view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22 ##view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ko.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ko.properties index 07cebd4..f832c7d 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ko.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ko.properties @@ -1534,7 +1534,6 @@ view_remoteAgentInstall_installInfo = 에이전트 설치 정보 view_remoteAgentInstall_installPath = 에이전트 설치 경로 view_remoteAgentInstall_owner = 소유자 view_remoteAgentInstall_promptHost = 에이전트가 설치되어 있거나 앞으로 설치되는 호스트 -##view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. You may try to use the Find Agent button to find the existing rhq agent directories. view_remoteAgentInstall_promptPassword = SSH를 통해 호스트의 사용자를 인증하는데 사용되는 인증 view_remoteAgentInstall_promptUser = SSH를 통해 호스트로 전달되는 인증을 가진 사용자의 이름 view_remoteAgentInstall_result = 결과 diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties index 929f1ef..f354bd8 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ru.properties @@ -1816,7 +1816,7 @@ #view_remoteAgentInstall_installPath = Agent Install Path #view_remoteAgentInstall_owner = Owner #view_remoteAgentInstall_promptHost = The host where the agent is or will be installed -#view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. You may try to use the Find Agent button to find the existing rhq agent directories. +#view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install. #view_remoteAgentInstall_promptPassword = The credentials that are used to authenticate the user on the host via SSH #view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22 #view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties index e9bd625..e19f5f2 100644 --- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties +++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties @@ -1850,7 +1850,7 @@ view_remoteAgentInstall_installInfo = \u4ee3\u7406\u5b89\u88c5\u4fe1\u606f view_remoteAgentInstall_installPath = \u4ee3\u7406\u5b89\u88c5\u8def\u5f84 view_remoteAgentInstall_owner = \u6240\u6709\u8005 view_remoteAgentInstall_promptHost = The host where the agent is or will be installed -view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. You may try to use the Find Agent button to find the existing rhq agent directories. +view_remoteAgentInstall_promptInstallPath = Where the agent is or will be installed. If you aren''t sure where an agent is installed, enter a parent directory and click the ''Find Agent'' button to scan that directory and below. If you enter an empty path, common locations are searched on the host for an agent install. view_remoteAgentInstall_promptPassword = The credentials that are used to authenticate the user on the host via SSH view_remoteAgentInstall_promptPort = The port the SSH server is listening to. If not specified, the default is 22 view_remoteAgentInstall_promptUser = The name of the user whose credentials are passed to the host via SSH
rhq-commits@lists.fedorahosted.org