diff --git a/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/DiscoveryCallbackImpl.java b/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/DiscoveryCallbackImpl.java index 2a208636252..c1261c984cd 100644 --- a/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/DiscoveryCallbackImpl.java +++ b/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/DiscoveryCallbackImpl.java @@ -34,12 +34,13 @@ import org.rhq.core.domain.configuration.PropertySimple; import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails; import org.rhq.core.pluginapi.inventory.ResourceDiscoveryCallback; +import org.rhq.core.pluginapi.util.StartScriptConfiguration; import org.rhq.core.system.ProcessInfo; import org.rhq.core.util.obfuscation.Obfuscator; public class DiscoveryCallbackImpl implements ResourceDiscoveryCallback { - private static final String PLUGIN_CONFIG_HOME_DIR = "homeDir"; + public static final String PLUGIN_CONFIG_HOME_DIR = "homeDir"; private static final String PLUGIN_CONFIG_PASSWORD = "password"; private static final String PROP_SERVER_PROP_FILE = "../bin/rhq-server.properties"; private static final String PROP_SERVER_MGMT_USER_PASSWORD = "rhq.server.management.password"; @@ -106,6 +107,13 @@ public DiscoveryCallbackResults discoveredResources(DiscoveredResourceDetails di discoveredDetails.setPluginConfiguration(pluginConfig); pluginConfig.setSimpleValue("supportsPatching", "false"); + + // set rhqctl as start-script + StartScriptConfiguration startScriptConfig = new StartScriptConfiguration(pluginConfig); + startScriptConfig.setStartScriptPrefix(null); + startScriptConfig.setStartScriptArgs(Arrays.asList("start", "--server")); + startScriptConfig.setStartScript(new File(homeDirFile.getParentFile(), "bin" + File.separator + "rhqctl")); + } catch (Throwable t) { log.warn( "Problem setting RHQ Server management password - will not be able to connect to the RHQ Server instance", diff --git a/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/ResourceUpgradeCallbackImpl.java b/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/ResourceUpgradeCallbackImpl.java index 586cf43c2a3..df320165665 100644 --- a/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/ResourceUpgradeCallbackImpl.java +++ b/modules/plugins/rhq-server/src/main/java/org/rhq/plugins/server/ResourceUpgradeCallbackImpl.java @@ -19,11 +19,15 @@ package org.rhq.plugins.server; +import java.io.File; +import java.util.Arrays; + import org.rhq.core.domain.configuration.Configuration; import org.rhq.core.domain.resource.ResourceUpgradeReport; import org.rhq.core.pluginapi.inventory.ResourceComponent; import org.rhq.core.pluginapi.upgrade.ResourceUpgradeCallback; import org.rhq.core.pluginapi.upgrade.ResourceUpgradeContext; +import org.rhq.core.pluginapi.util.StartScriptConfiguration; import org.rhq.core.system.ProcessInfo; /** @@ -35,7 +39,6 @@ public final class ResourceUpgradeCallbackImpl implements ResourceUpgradeCallbac @Override public void upgrade(ResourceUpgradeReport upgradeReport, ResourceUpgradeContext> inventoriedResource) { - ProcessInfo processInfo = inventoriedResource.getNativeProcess(); if (DiscoveryCallbackImpl.isRhqServer(processInfo)) { @@ -61,6 +64,18 @@ public void upgrade(ResourceUpgradeReport upgradeReport, resourceName = inventoriedResource.getName(); } + // set rhqctl as start-script + StartScriptConfiguration startScriptConfig = new StartScriptConfiguration(pluginConfiguration); + File startScriptFile = startScriptConfig.getStartScript(); + if (startScriptFile != null && startScriptFile.getName().equals("standalone.sh")) { + startScriptConfig.setStartScriptPrefix(null); + startScriptConfig.setStartScriptArgs(Arrays.asList("start", "--server")); + File homeDirFile = new File( + pluginConfiguration.getSimpleValue(DiscoveryCallbackImpl.PLUGIN_CONFIG_HOME_DIR)); + startScriptConfig.setStartScript(new File(new File(homeDirFile, "bin"), "rhqctl")); + upgradeReport.setNewPluginConfiguration(pluginConfiguration); + } + // this is not critical, we can live with the server being called a "wrong" name. // report, but not enforce the change (i.e. don't use upgradeReport.setForceGenericPropertyUpgrade(true)). if (!resourceName.endsWith(" RHQ Server")) {