modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java | 5 + modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java | 5 + modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java | 24 ++++- modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ConfigurationWriteDelegate.java | 13 ++ modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java | 46 ---------- modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java | 13 ++ 6 files changed, 60 insertions(+), 46 deletions(-)
New commits: commit 81f21dd55875a0b769614c0aa85215649becd0eb Author: Heiko W. Rupp hwr@redhat.com Date: Tue May 29 14:38:04 2012 +0200
BZ 826030 Fix bug in pseudo-metric collection and remove formerly needed enable/disable wrapper (cherry picked from commit 918a99c026a1325954fa61fbaaefcbede41098bb)
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java index aff50e2..a4efae1 100644 --- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java +++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java @@ -127,44 +127,6 @@ public class DatasourceComponent extends BaseComponent<BaseComponent<?>> impleme return resourceReport; }
- void addAdditionalToOp(Operation op, Configuration parameters, String parameterName, boolean optional) { - String value = parameters.getSimpleValue(parameterName, null); - if (value == null) { - if (!optional) { - throw new IllegalArgumentException("Required parameter [" + parameterName + "] for operation [" - + op.getName() + "] is not defined."); - } - } else { - op.addAdditionalProperty(parameterName, value); - } - } - - void addRequiredToOp(Operation op, Configuration parameters, String property) { - addAdditionalToOp(op, parameters, property, false); - } - - void addOptionalToOp(Operation op, Configuration parameters, String property) { - addAdditionalToOp(op, parameters, property, true); - } - - @Override - public void updateResourceConfiguration(ConfigurationUpdateReport report) { - - Operation op = new Operation("disable", getAddress()); - Result res = getASConnection().execute(op); - if (!res.isSuccess()) { - report.setErrorMessage("Was not able to disable the datasource for config changes: " - + res.getFailureDescription()); - return; - } - - super.updateResourceConfiguration(report); - - op = new Operation("enable", getAddress()); - res = getASConnection().execute(op); - - } - @Override public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> requests) throws Exception {
@@ -217,14 +179,14 @@ public class DatasourceComponent extends BaseComponent<BaseComponent<?>> impleme Result res = getASConnection().execute(op);
if (res.isSuccess()) { - String tmp = (String) res.getResult(); + Integer tmp = (Integer) res.getResult(); if (tmp == null) { // server if (request.getName().equals("max-pool-size")) - tmp = "20"; // The default value + tmp = 20; // The default value else if (request.getName().equals("min-pool-size")) - tmp = "0"; // The default value + tmp = 0; // The default value else - tmp ="-1"; // Fallback for unknown requests + tmp =-1; // Fallback for unknown requests } Double val = Double.valueOf(tmp); MeasurementDataNumeric data = new MeasurementDataNumeric(request, val);
commit fb7b5e0ea0131e71876e546c156f2ba7de686120 Author: Heiko W. Rupp hwr@redhat.com Date: Tue May 29 14:37:15 2012 +0200
BZ 826031 Deliver both signal reload/restart to the server. (cherry picked from commit 74bef96)
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java index 9b5e49f..1139b1c 100644 --- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java +++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java @@ -283,6 +283,11 @@ public class BaseComponent<T extends ResourceComponent<?>> implements AS7Compone PropertySimple oobMessage = new PropertySimple("__OOB","The server needs a reload for the latest changes to come effective."); configuration.put(oobMessage); } + if (res.isRestartRequired()) { + PropertySimple oobMessage = new PropertySimple("__OOB", + "The server needs a restart for the latest changes to come effective."); + configuration.put(oobMessage); + } return configuration; }
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ConfigurationWriteDelegate.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ConfigurationWriteDelegate.java index a2e6cc1..d6d7329 100644 --- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ConfigurationWriteDelegate.java +++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ConfigurationWriteDelegate.java @@ -109,9 +109,18 @@ public class ConfigurationWriteDelegate implements ConfigurationFacet { } else { report.setStatus(ConfigurationUpdateStatus.SUCCESS); - // TODO how to signal "need reload" + // signal "need reload" + if (result.isReloadRequired()) { + PropertySimple oobMessage = new PropertySimple("__OOB", + "The server needs a reload for the latest changes to come effective."); + conf.put(oobMessage); + } + if (result.isRestartRequired()) { + PropertySimple oobMessage = new PropertySimple("__OOB", + "The server needs a restart for the latest changes to come effective."); + conf.put(oobMessage); + } } - }
protected CompositeOperation updateGenerateOperationFromProperties(Configuration conf, Address address) { diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java index 2c34641..3fbdb90 100644 --- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java +++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java @@ -88,6 +88,19 @@ public class Result { return false; }
+ @JsonIgnore + public boolean isRestartRequired() { + if (responseHeaders == null) + return false; + if (responseHeaders instanceof Map) { + Map<String, Object> map = (Map<String, Object>) responseHeaders; + if (map.containsKey("process-state") && map.get("process-state").equals("restart-required")) { + return true; + } + } + return false; + } + public boolean isSuccess() { return success; }
commit 14facf69c748e0dd19b27509d34c67bb11a2f943 Author: Heiko W. Rupp hwr@redhat.com Date: Thu May 24 16:29:49 2012 +0200
BZ 824513 - Fix issues with manual add. Also prevent some operations to be run, as we can's start processes on machines without agents. (cherry picked from commit f6a5001) + signal failed connection to the user.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java index 568505c..ed716e1 100644 --- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java +++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java @@ -442,6 +442,10 @@ public abstract class BaseProcessDiscovery implements ResourceDiscoveryComponent ProductInfo productInfo = new ProductInfo(hostname, user, pass, port).getFromRemote(); JBossProductType productType = productInfo.getProductType();
+ if (productType==null) { + throw new InvalidPluginConfigurationException("Can not connect to [" + hostname + ":" + port + "] as user [" + user +"]. Did you provide the correct credentials?"); + } + HostPort hostPort = new HostPort(false); HostPort managementHostPort = new HostPort(false); managementHostPort.host = hostname; @@ -452,6 +456,7 @@ public abstract class BaseProcessDiscovery implements ResourceDiscoveryComponent String description = buildDefaultResourceDescription(hostPort, productType);
pluginConfig.put(new PropertySimple("manuallyAdded", true)); + pluginConfig.put(new PropertySimple("productType",productType.name()));
DiscoveredResourceDetails detail = new DiscoveredResourceDetails(context.getResourceType(), key, name, version, description, pluginConfig, null); diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java index 50f994a..8b85deb 100644 --- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java +++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java @@ -126,12 +126,15 @@ public abstract class BaseServerComponent<T extends ResourceComponent<?>> extend private void validateServerAttributes() throws InvalidPluginConfigurationException { // Validate the base dir (e.g. /opt/jboss-as-7.1.1.Final/standalone). File runtimeBaseDir; - File baseDir; + File baseDir=null; try { String runtimeBaseDirString = readAttribute(getEnvironmentAddress(), getBaseDirAttributeName()); // Canonicalize both paths before comparing them! runtimeBaseDir = new File(runtimeBaseDirString).getCanonicalFile(); - baseDir = serverPluginConfig.getBaseDir().getCanonicalFile(); + File baseDirTmp = serverPluginConfig.getBaseDir(); + if (baseDirTmp != null) { // may be null for manually added servers + baseDir = baseDirTmp.getCanonicalFile(); + } } catch (Exception e) { runtimeBaseDir = null; baseDir = null; @@ -213,6 +216,12 @@ public abstract class BaseServerComponent<T extends ResourceComponent<?>> extend * @throws Exception If anything goes wrong */ protected OperationResult restartServer(Configuration parameters) throws Exception { + + OperationResult operationResult = new OperationResult(); + if (isManuallyAddedServer(operationResult, "Restarting")) { + return operationResult; + } + List<String> errors = validateStartScriptPluginConfigProps(); if (!errors.isEmpty()) { OperationResult result = new OperationResult(); @@ -260,6 +269,9 @@ public abstract class BaseServerComponent<T extends ResourceComponent<?>> extend */ protected OperationResult startServer() { OperationResult operationResult = new OperationResult(); + if (isManuallyAddedServer(operationResult, "Starting")) { + return operationResult; + }
List<String> errors = validateStartScriptPluginConfigProps(); if (!errors.isEmpty()) { @@ -323,6 +335,14 @@ public abstract class BaseServerComponent<T extends ResourceComponent<?>> extend return operationResult; }
+ private boolean isManuallyAddedServer(OperationResult operationResult, String operation) { + if (pluginConfiguration.get("manuallyAdded")!=null) { + operationResult.setErrorMessage(operation + " is not enabled for manually added servers"); + return true; + } + return false; + } + private void setErrorMessage(OperationResult operationResult, List<String> errors) { StringBuilder buffer = new StringBuilder("This Resource's connection properties contain errors: "); for (int i = 0, errorsSize = errors.size(); i < errorsSize; i++) {
rhq-commits@lists.fedorahosted.org