modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BasicDriftChangeSetCriteria.java
| 12 ++++
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetCriteria.java
| 4 +
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetJPACriteria.java
| 11 ++++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerBean.java
| 25 ++++++++--
modules/enterprise/server/plugins/drift-rhq/src/main/java/org/rhq/enterprise/server/plugins/drift/DriftServerPluginComponent.java
| 1
5 files changed, 48 insertions(+), 5 deletions(-)
New commits:
commit 26bfa2034a6306ed941d6a1fd5f26840e32eef84
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Aug 1 15:17:18 2011 -0400
Add config id to drift change set criteria
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BasicDriftChangeSetCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BasicDriftChangeSetCriteria.java
index 2debece..ba46bc2 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BasicDriftChangeSetCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BasicDriftChangeSetCriteria.java
@@ -22,6 +22,8 @@ public class BasicDriftChangeSetCriteria implements
DriftChangeSetCriteria {
private Integer filterResourceId;
+ private Integer filterDriftConfigId;
+
private DriftChangeSetCategory filterCategory;
private boolean fetchDrifts;
@@ -101,6 +103,16 @@ public class BasicDriftChangeSetCriteria implements
DriftChangeSetCriteria {
}
@Override
+ public void addFilterDriftConfigurationId(Integer filterDriftConfigId) {
+ this.filterDriftConfigId = filterDriftConfigId;
+ }
+
+ @Override
+ public Integer getFilterDriftConfigurationId() {
+ return filterDriftConfigId;
+ }
+
+ @Override
public void addFilterCategory(DriftChangeSetCategory filterCategory) {
this.filterCategory = filterCategory;
}
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetCriteria.java
index b5f71b2..273db4b 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetCriteria.java
@@ -35,6 +35,10 @@ public interface DriftChangeSetCriteria extends BaseCriteria,
Serializable {
Integer getFilterResourceId();
+ void addFilterDriftConfigurationId(Integer filterDriftConfigId);
+
+ Integer getFilterDriftConfigurationId();
+
void addFilterCategory(DriftChangeSetCategory filterCategory);
DriftChangeSetCategory getFilterCategory();
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetJPACriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetJPACriteria.java
index 7a7f78f..0ca1d36 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetJPACriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DriftChangeSetJPACriteria.java
@@ -39,6 +39,7 @@ public class DriftChangeSetJPACriteria extends Criteria implements
DriftChangeSe
private Integer filterId;
private Integer filterInitial; // needs override
private Integer filterResourceId; // needs override
+ private Integer filterDriftConfigurationId;
private Integer filterVersion;
private Integer filterStartVersion;
private Integer filterEndVersion;
@@ -138,6 +139,16 @@ public class DriftChangeSetJPACriteria extends Criteria implements
DriftChangeSe
return filterResourceId;
}
+ @Override
+ public void addFilterDriftConfigurationId(Integer filterDriftConfigId) {
+ this.filterDriftConfigurationId = filterDriftConfigId;
+ }
+
+ @Override
+ public Integer getFilterDriftConfigurationId() {
+ return filterDriftConfigurationId;
+ }
+
public void addFilterCategory(DriftChangeSetCategory filterCategory) {
this.filterCategory = filterCategory;
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerBean.java
index 8e4d1f7..0479c4a 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerBean.java
@@ -147,11 +147,6 @@ public class DriftManagerBean implements DriftManagerLocal,
DriftManagerRemote {
}
try {
- DriftChangeSetJPACriteria c = new DriftChangeSetJPACriteria();
- c.addFilterResourceId(resourceId);
- List<RhqDriftChangeSet> changeSets =
findDriftChangeSetsByCriteria(subjectManager.getOverlord(), c);
- final int version = changeSets.size();
-
ZipUtil.walkZipFile(changeSetZip, new ChangeSetFileVisitor() {
@Override
@@ -165,6 +160,8 @@ public class DriftManagerBean implements DriftManagerLocal,
DriftManagerRemote {
// store the new change set info (not the actual blob)
DriftConfiguration config = findDriftConfiguration(resource,
reader.getHeaders());
+ int version = getChangeSetVersion(resource, config);
+
if (config == null) {
log.error("Unable to locate " +
config.getClass().getSimpleName() + "[id: " +
config.getId() + ", name: " + config.getName()
+ "]. Change set cannot be saved.");
@@ -240,6 +237,24 @@ public class DriftManagerBean implements DriftManagerLocal,
DriftManagerRemote {
}
}
+ /**
+ * This method only exists temporarily until the version header is added to the
change
+ * set meta data file. This method determines the version by looking at the number
of
+ * change sets in the database.
+ *
+ * @param r The resource
+ * @param c The drift configuration
+ * @return The next change set version number
+ */
+ int getChangeSetVersion(Resource r, DriftConfiguration c) {
+ DriftChangeSetJPACriteria criteria = new DriftChangeSetJPACriteria();
+ criteria.addFilterResourceId(r.getId());
+ criteria.addFilterDriftConfigurationId(c.getId());
+ List<RhqDriftChangeSet> changeSets =
findDriftChangeSetsByCriteria(subjectManager.getOverlord(), criteria);
+
+ return changeSets.size();
+ }
+
DriftConfiguration findDriftConfiguration(Resource resource, Headers headers) {
for (Configuration config : resource.getDriftConfigurations()) {
DriftConfiguration driftConfig = new DriftConfiguration(config);
diff --git
a/modules/enterprise/server/plugins/drift-rhq/src/main/java/org/rhq/enterprise/server/plugins/drift/DriftServerPluginComponent.java
b/modules/enterprise/server/plugins/drift-rhq/src/main/java/org/rhq/enterprise/server/plugins/drift/DriftServerPluginComponent.java
index 1755d3e..c2520d5 100644
---
a/modules/enterprise/server/plugins/drift-rhq/src/main/java/org/rhq/enterprise/server/plugins/drift/DriftServerPluginComponent.java
+++
b/modules/enterprise/server/plugins/drift-rhq/src/main/java/org/rhq/enterprise/server/plugins/drift/DriftServerPluginComponent.java
@@ -111,6 +111,7 @@ public class DriftServerPluginComponent implements
DriftServerPluginFacet {
DriftChangeSetJPACriteria jpaCriteria = new DriftChangeSetJPACriteria();
jpaCriteria.addFilterId(criteria.getFilterId());
jpaCriteria.addFilterResourceId(criteria.getFilterResourceId());
+
jpaCriteria.addFilterDriftConfigurationId(criteria.getFilterDriftConfigurationId());
jpaCriteria.addFilterCategory(criteria.getFilterCategory());
jpaCriteria.addFilterCreatedAfter(criteria.getFilterCreatedAfter());
jpaCriteria.addFilterCreatedBefore(criteria.getFilterCreatedBefore());
Show replies by date