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@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@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>
rhq-commits@lists.fedorahosted.org