modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
| 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/AbstractOperationScheduleDetailsView.java
| 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/schedule/GroupOperationScheduleDetailsView.java
| 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
| 9 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
| 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/factory/ResourceFactoryConfigurationStep.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
| 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
| 67 ++++------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
| 3
modules/plugins/cassandra/src/main/resources/META-INF/rhq-plugin.xml
| 6
modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware/SmartDiskComponent.java
| 4
11 files changed, 62 insertions(+), 49 deletions(-)
New commits:
commit 1265c65eeabdd73acd3f2550316b563b85af342c
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Oct 24 18:08:05 2012 -0500
Fix compilation error in unused plugin.
diff --git
a/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware/SmartDiskComponent.java
b/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware/SmartDiskComponent.java
index ec7bb9f..2421e67 100644
---
a/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware/SmartDiskComponent.java
+++
b/modules/plugins/hardware/src/main/java/org/rhq/plugins/hardware/SmartDiskComponent.java
@@ -115,8 +115,8 @@ public class SmartDiskComponent implements ResourceComponent,
MeasurementFacet {
public static void main(String[] args) throws Exception {
SmartDiskComponent sdc = new SmartDiskComponent();
- sdc.start(new ResourceContext(new Resource("/dev/sda", "foo",
new ResourceType()), null, null, null, null, null,
- null, null, null, null, null, null, PluginContainerDeployment.AGENT));
+ sdc.start(new ResourceContext(new Resource("/dev/sda", "foo",
new ResourceType()), null, null, null, null,
+ null, null, null, null, null, null, null, null,
PluginContainerDeployment.AGENT));
sdc.getValues(null, null);
}
commit 4ac376b36feeef4b0be60f557e63220fbcf461b2
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Oct 24 18:07:27 2012 -0500
Add support for resource self-referencing option sources.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
index 638e645..06207cd 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ConfigurationGWTService.java
@@ -88,5 +88,6 @@ public interface ConfigurationGWTService extends RemoteService {
void deleteGroupResourceConfigurationUpdate(Integer groupId, Integer[]
groupResourceConfigUpdateIds)
throws RuntimeException;
- ConfigurationDefinition getOptionValuesForConfigDefinition(ConfigurationDefinition
definition) throws RuntimeException;
+ ConfigurationDefinition getOptionValuesForConfigDefinition(int resourceId,
ConfigurationDefinition definition)
+ throws RuntimeException;
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/AbstractOperationScheduleDetailsView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/AbstractOperationScheduleDetailsView.java
index f4066f0..0f54af0 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/AbstractOperationScheduleDetailsView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/schedule/AbstractOperationScheduleDetailsView.java
@@ -117,6 +117,7 @@ public abstract class AbstractOperationScheduleDetailsView extends
}
protected abstract boolean hasControlPermission();
+ protected abstract int getResourceId();
@Override
public String getListViewPath() {
@@ -457,7 +458,7 @@ public abstract class AbstractOperationScheduleDetailsView extends
}
ConfigurationGWTServiceAsync configurationService =
GWTServiceLookup.getConfigurationService();
-
configurationService.getOptionValuesForConfigDefinition(parametersDefinition,
+ configurationService.getOptionValuesForConfigDefinition(getResourceId(),
parametersDefinition,
new AsyncCallback<ConfigurationDefinition>() {
@Override
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/schedule/GroupOperationScheduleDetailsView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/schedule/GroupOperationScheduleDetailsView.java
index 013bc85..0ce98d3 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/schedule/GroupOperationScheduleDetailsView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/operation/schedule/GroupOperationScheduleDetailsView.java
@@ -61,6 +61,11 @@ public class GroupOperationScheduleDetailsView extends
AbstractOperationSchedule
}
@Override
+ protected int getResourceId() {
+ return -1;
+ }
+
+ @Override
protected void init(final boolean isReadOnly) {
if (isNewRecord()) {
ResourceDatasource resourceDatasource = new ResourceDatasource();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
index 4e87eb0..f0947ac 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
@@ -121,7 +121,7 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
buttonbar.destroy();
removeMember(buttonbar);
}
-
+
GWTServiceLookup.getConfigurationService().getLatestResourceConfigurationUpdate(resource.getId(),
new AsyncCallback<ResourceConfigurationUpdate>() {
@Override
@@ -134,14 +134,15 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
refreshing = false;
return;
}
-
+
ResourceTypeRepository.Cache.getInstance().getResourceTypes(resource.getResourceType().getId(),
EnumSet.of(MetadataType.resourceConfigurationDefinition), new
TypeLoadedCallback() {
@Override
public void onTypesLoaded(ResourceType type) {
ConfigurationGWTServiceAsync configurationService =
GWTServiceLookup.getConfigurationService();
- configurationService.getOptionValuesForConfigDefinition(
- type.getResourceConfigurationDefinition(), new
AsyncCallback<ConfigurationDefinition>(){
+
configurationService.getOptionValuesForConfigDefinition(resource.getId(),
+ type.getResourceConfigurationDefinition(),
+ new AsyncCallback<ConfigurationDefinition>() {
@Override
public void onFailure(Throwable throwable) {
refreshing = false;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
index bebe550..00f72ae 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/operation/schedule/ResourceOperationScheduleDetailsView.java
@@ -24,4 +24,9 @@ public class ResourceOperationScheduleDetailsView extends
AbstractOperationSched
return this.resourceComposite.getResourcePermission().isControl();
}
+ @Override
+ protected int getResourceId() {
+ return this.resourceComposite.getResource().getId();
+ }
+
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/factory/ResourceFactoryConfigurationStep.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/factory/ResourceFactoryConfigurationStep.java
index 1806348..0319435 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/factory/ResourceFactoryConfigurationStep.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/factory/ResourceFactoryConfigurationStep.java
@@ -101,7 +101,7 @@ public class ResourceFactoryConfigurationStep extends
AbstractWizardStep impleme
this.startingConfig = wizard.getNewResourceStartingConfiguration();
ConfigurationGWTServiceAsync configurationService =
GWTServiceLookup.getConfigurationService();
- configurationService.getOptionValuesForConfigDefinition(def,
+ configurationService.getOptionValuesForConfigDefinition(-1, def,
new AsyncCallback<ConfigurationDefinition>() {
public void onSuccess(ConfigurationDefinition result) {
createAndAddConfigurationEditor(result);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
index 04bfdcb..d351f7a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ConfigurationGWTServiceImpl.java
@@ -352,11 +352,11 @@ public class ConfigurationGWTServiceImpl extends
AbstractGWTServiceImpl implemen
}
@Override
- public ConfigurationDefinition
getOptionValuesForConfigDefinition(ConfigurationDefinition definition)
+ public ConfigurationDefinition getOptionValuesForConfigDefinition(int resourceId,
ConfigurationDefinition definition)
throws RuntimeException {
try {
ConfigurationDefinition def =
configurationManager.getOptionsForConfigurationDefinition(
- getSessionSubject(), definition);
+ getSessionSubject(), resourceId, definition);
return SerialUtility.prepare(def,
"ConfigurationService.getOptionValuesForPropertySimple");
} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 6f18088..b252022 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -92,7 +92,6 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.ResourceErrorType;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
@@ -2458,26 +2457,27 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
return updates;
}
- public ConfigurationDefinition getOptionsForConfigurationDefinition(Subject subject,
ConfigurationDefinition def) {
+ public ConfigurationDefinition getOptionsForConfigurationDefinition(Subject subject,
int resourceId,
+ ConfigurationDefinition def) {
for (Map.Entry<String, PropertyDefinition> entry :
def.getPropertyDefinitions().entrySet()) {
PropertyDefinition pd = entry.getValue();
if (pd instanceof PropertyDefinitionSimple) {
PropertyDefinitionSimple pds = (PropertyDefinitionSimple) pd;
- handlePDS(subject, pds);
+ handlePDS(subject, resourceId, pds);
} else if (pd instanceof PropertyDefinitionList) {
PropertyDefinitionList pdl = (PropertyDefinitionList) pd;
PropertyDefinition memberDef = pdl.getMemberDefinition();
if (memberDef instanceof PropertyDefinitionSimple) {
PropertyDefinitionSimple pds = (PropertyDefinitionSimple) memberDef;
- handlePDS(subject, pds);
+ handlePDS(subject, resourceId, pds);
} else if (memberDef instanceof PropertyDefinitionMap) {
PropertyDefinitionMap pdm = (PropertyDefinitionMap) memberDef;
for (PropertyDefinition inner : pdm.getPropertyDefinitions()) {
if (inner instanceof PropertyDefinitionSimple) {
- handlePDS(subject, (PropertyDefinitionSimple) inner);
+ handlePDS(subject, resourceId, (PropertyDefinitionSimple)
inner);
}
log.debug("3 ____[ " + inner.toString() + " in
" + pdl.toString() + " ]____ not yet supported");
}
@@ -2489,7 +2489,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
PropertyDefinitionMap pdm = (PropertyDefinitionMap) pd;
for (PropertyDefinition inner : pdm.getPropertyDefinitions()) {
if (inner instanceof PropertyDefinitionSimple) {
- handlePDS(subject, (PropertyDefinitionSimple) inner);
+ handlePDS(subject, resourceId, (PropertyDefinitionSimple)
inner);
} else {
log.debug("4 ____[ " + inner.toString() + " in
" + pdm.toString() + " ]____ not yet supported");
}
@@ -2507,7 +2507,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
* @param subject Subject of the caller - may limit search results
* @param pds the PropertyDefinitionSimple to work on
*/
- private void handlePDS(Subject subject, PropertyDefinitionSimple pds) {
+ private void handlePDS(Subject subject, int resourceId, PropertyDefinitionSimple pds)
{
if (pds.getOptionsSource() != null) {
// evaluate the source parameters
@@ -2520,33 +2520,35 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
filterPattern = Pattern.compile(filter);
if (tt == PropertyOptionsSource.TargetType.RESOURCE || tt ==
PropertyOptionsSource.TargetType.CONFIGURATION) {
+ List<Resource> resources = null;
ResourceCriteria criteria = new ResourceCriteria();
if (tt == PropertyOptionsSource.TargetType.CONFIGURATION) {
// split out expression part for target=configuration
// return if no property specifier is given
String expr = expression;
- if (!expr.contains(":")) {
+ if (expr.contains(":")) {
+ expr = expr.substring(expr.indexOf(':') + 1);
+ criteria.setSearchExpression(expr);
+ resources = resourceManager.findResourcesByCriteria(subject,
criteria);
+ } else if (resourceId >= 0) {
+ resources = new ArrayList<Resource>();
+ resources.add(resourceManager.getResourceById(subject,
resourceId));
+ } else {
log.warn("Option source expression for property " +
pds.getName()
+ " and target configuration contains no
':'");
return;
}
-
- expr = expr.substring(expr.indexOf(':')+1);
- criteria.setSearchExpression(expr);
} else {
criteria.setSearchExpression(expression);
+ resources = resourceManager.findResourcesByCriteria(subject,
criteria);
}
- List<ResourceComposite> composites = resourceManager
- .findResourceCompositesByCriteria(subject, criteria);
- for (ResourceComposite composite : composites) {
-
+ for (Resource resource : resources) {
if (tt == PropertyOptionsSource.TargetType.RESOURCE) {
+ String name = resource.getName();
- String name = composite.getResource().getName();
// filter if the user provided a filter
-
if (filterPattern != null) {
Matcher m = filterPattern.matcher(name);
if (m.matches()) {
@@ -2556,12 +2558,10 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
} else { // Filter is null -> none provided -> do not
filter
PropertyDefinitionEnumeration pde = new
PropertyDefinitionEnumeration(name, "" + name);
pds.getEnumeratedValues().add(pde);
-
}
-
} else if (tt == PropertyOptionsSource.TargetType.CONFIGURATION) {
// for configuration we need to drill down into the resource
configuration
- if (!handleConfigurationTarget(pds, expression,
composite.getResource()))
+ if (!handleConfigurationTarget(pds, expression, resource))
return;
}
@@ -2590,23 +2590,22 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
*/
private boolean handleConfigurationTarget(PropertyDefinitionSimple pds, String
expression, Resource resource) {
Configuration configuration = resource.getResourceConfiguration();
- Property p;
- String propName = expression.substring(0, expression.indexOf(":"));
- boolean isMapOrList = expression.contains("=");
+ if (expression.indexOf(":") != -1) {
+ expression = expression.substring(0, expression.indexOf(":"));
+ }
+
+ boolean isMapOrList = expression.contains("=");
+ Property p;
if (isMapOrList) {
- String mapPropLocation = propName.substring(0,
propName.indexOf("="));
- String mapPropName;
+ String mapPropLocation = expression.substring(0,
expression.indexOf("="));
if (mapPropLocation.contains("/")) {
- // List of maps
- mapPropName =
mapPropLocation.substring(0,mapPropLocation.indexOf('/'));
+ mapPropLocation = mapPropLocation.substring(0,
mapPropLocation.indexOf('/'));
}
- else {
- mapPropName = mapPropLocation;
- }
- p = configuration.get(mapPropName);
- } else
- p = configuration.get(propName);
+ p = configuration.get(mapPropLocation);
+ } else {
+ p = configuration.get(expression);
+ }
if (p == null) {
log.warn("Option source expression for property " + pds.getName() +
" and target configuration not found");
@@ -2644,7 +2643,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
return false;
}
String subPropName;
- subPropName = propName.substring(propName.indexOf("=") + 1);
+ subPropName = expression.substring(expression.indexOf("=") + 1);
for (Property tmp : propertyList) {
PropertyMap pm = (PropertyMap) tmp;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
index 9b49959..f090362 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
@@ -570,5 +570,6 @@ public interface ConfigurationManagerLocal {
PageList<GroupPluginConfigurationUpdate>
findGroupPluginConfigurationUpdatesByCriteria(Subject subject,
GroupPluginConfigurationUpdateCriteria criteria);
- ConfigurationDefinition getOptionsForConfigurationDefinition(Subject subject,
ConfigurationDefinition def);
+ ConfigurationDefinition getOptionsForConfigurationDefinition(Subject subject, int
resourceId,
+ ConfigurationDefinition def);
}
\ No newline at end of file
diff --git a/modules/plugins/cassandra/src/main/resources/META-INF/rhq-plugin.xml
b/modules/plugins/cassandra/src/main/resources/META-INF/rhq-plugin.xml
index e3c33d0..50a24fa 100644
--- a/modules/plugins/cassandra/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/cassandra/src/main/resources/META-INF/rhq-plugin.xml
@@ -209,7 +209,7 @@
<c:simple-property name="objectName" readOnly="true"
type="string"
default="org.apache.cassandra.metrics:type=ClientRequestMetrics,name=ReadUnavailables"/>
<c:simple-property name="nameTemplate" readOnly="true"
type="string" default="Read Unavailables" />
</plugin-configuration>
- <metric property="Count" displayName="Read Unavailable"
measurementType="trendsup" displayType="summary"
description="Number of read unavailable occurred for this node"/>
+ <metric property="Count" displayName="Read Unavailables"
measurementType="trendsup" displayType="summary"
description="Number of read unavailable occurred for this node"/>
</service>
<service name="WriteTimeouts"
@@ -400,8 +400,8 @@
</operation>
<operation name="restoreSnapshot" description="Restore the
column family from a previously taken snapshot.">
<parameters>
- <c:simple-property name="snapshotName" required="true"
type="string" description="Snapshot Name">
- <c:option-source target="configuration"
expression="snapshots:type=ColumnFamily"/>
+ <c:simple-property name="name" required="true"
type="string" description="Snapshot Name">
+ <c:option-source target="configuration"
expression="snapshots/snapshot=name"/>
</c:simple-property>
</parameters>
<results>