[rhq] modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java | 2 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 5e5721eeb0f8a251badb6c896ee26b1fdd488182
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jul 1 10:57:23 2011 -0400
temporarily set the timeouts for discovery-related RPC very high (to 1000000 millis) to make sure they can complete in the perf env and see what the timeouts ultimately need to be set to
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java
index fa7a0f8..6769b9c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java
@@ -65,7 +65,7 @@ public class AutodiscoveryQueueDataSource extends DataSource {
private int unlimited = -1;
private int maximumPlatformsToDisplay = -1;
- private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService();
+ private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService(1000000);
private PermissionsLoader permissionsLoader = new PermissionsLoader();
private TreeGrid dataContainerReference = null;
private static final Permission MANAGE_INVENTORY = Permission.MANAGE_INVENTORY;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
index 6dde533..da3768c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
@@ -74,7 +74,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
private ToolStrip footer;
private DataSource dataSource;
- private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService(60000);
+ private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService(1000000);
public ResourceAutodiscoveryView(String locatorId) {
super(locatorId);
12 years, 10 months
[rhq] Branch 'drift' - modules/core
by John Sanda
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 05a1a2cafd2d7f995318edfd8fd9c388eb7639e0
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Jul 1 06:43:30 2011 -0400
fixing failing test
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
index cd494cd..19be3a7 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
@@ -82,7 +82,7 @@ public class DriftDetectorTest extends DriftTest {
scheduleQueue.enqueue(schedule);
detector.run();
- File changeSetDir = new File(new File(changeSetsDir, Integer.toString(resourceId())), "coverage-test");
+ File changeSetDir = changeSetDir(driftConfig.getName());
File changeSet = new File(changeSetDir, "changeset.txt");
List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
12 years, 10 months
[rhq] Branch 'drift' - modules/core
by John Sanda
modules/core/domain/src/test/java/org/rhq/core/domain/drift/DriftConfigurationTest.java | 16 ++++++++--
1 file changed, 13 insertions(+), 3 deletions(-)
New commits:
commit a79ed453d8cbacab4b7a17254f39de514547cdbe
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Jul 1 06:39:25 2011 -0400
fixing failing test
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/drift/DriftConfigurationTest.java b/modules/core/domain/src/test/java/org/rhq/core/domain/drift/DriftConfigurationTest.java
index 90cdb02..1efbe72 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/drift/DriftConfigurationTest.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/drift/DriftConfigurationTest.java
@@ -11,6 +11,10 @@ import org.rhq.core.domain.configuration.PropertyMap;
import org.rhq.core.domain.configuration.PropertySimple;
import static java.util.Arrays.asList;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.PROP_BASEDIR;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.PROP_BASEDIR_VALUECONTEXT;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.PROP_BASEDIR_VALUENAME;
import static org.testng.Assert.*;
public class DriftConfigurationTest {
@@ -26,14 +30,20 @@ public class DriftConfigurationTest {
}
@Test
- public void getBasedir() {
+ public void getBasedirForFileSystemContext() {
String basedir = "/opt/drift/test" ;
Configuration config = new Configuration();
- config.put(new PropertySimple("basedir", basedir));
+
+ PropertyMap map = new PropertyMap(PROP_BASEDIR);
+ map.put(new PropertySimple(PROP_BASEDIR_VALUECONTEXT, fileSystem));
+ map.put(new PropertySimple(PROP_BASEDIR_VALUENAME, basedir));
+
+ config.put(map);
DriftConfiguration driftConfig = new DriftConfiguration(config);
- assertEquals(driftConfig.getBasedir(), basedir, "Failed to get drift configuration base directory");
+ assertEquals(driftConfig.getBasedir().getValueName(), basedir,
+ "Failed to get drift configuration base directory");
}
@Test
12 years, 10 months
[rhq] Branch 'drift' - modules/core
by John Sanda
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java | 37 --
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java.orig | 172 ++++++++++
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java | 18 -
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java.orig | 144 ++++++++
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java | 20 -
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java.orig | 71 ++++
6 files changed, 387 insertions(+), 75 deletions(-)
New commits:
commit 1ccf151ed05e697bd1eb16bfa0e8c059a814f32c
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Jul 1 00:44:28 2011 -0400
Resolving local merge conflict
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
index 9481fa9..cd494cd 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
@@ -18,45 +18,21 @@ import org.rhq.common.drift.DirectoryEntry;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.drift.DriftConfiguration;
-<<<<<<< Updated upstream
import static org.apache.commons.io.IOUtils.readLines;
import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
-=======
-import static org.apache.commons.io.FileUtils.deleteDirectory;
-import static org.apache.commons.io.IOUtils.readLines;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
-import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
-import static org.testng.Assert.assertEquals;
->>>>>>> Stashed changes
import static org.unitils.thirdparty.org.apache.commons.io.FileUtils.touch;
public class DriftDetectorTest extends DriftTest {
-
ScheduleQueue scheduleQueue;
DriftClientTestStub driftClient;
-<<<<<<< Updated upstream
DriftDetector detector;
-=======
-
- DriftDetector detector;
-
-// @BeforeClass
-// public void initDetector() throws Exception {
-// File basedir = new File("target", getClass().getSimpleName());
-// deleteDirectory(basedir);
-// basedir.mkdir();
-//
-// changeSetsDir = mkdir(basedir, "changesets");
-// resourcesDir = mkdir(basedir, "resources");
-// }
->>>>>>> Stashed changes
@BeforeMethod
public void initDetector() {
@@ -73,19 +49,12 @@ public class DriftDetectorTest extends DriftTest {
@SuppressWarnings("unchecked")
@Test
-<<<<<<< Updated upstream
public void excludeEmptyDirsFromCoverageChangeSet() throws Exception {
File confDir = mkdir(resourceDir, "conf");
-=======
- public void coverageChangeSetExcludesEmptyDirs() throws Exception {
- File confDir = new File(resourceDir, "conf");
- confDir.mkdir();
->>>>>>> Stashed changes
touch(new File(confDir, "server.conf"));
DriftConfiguration driftConfig = driftConfiguration("coverage-test", resourceDir.getAbsolutePath());
-<<<<<<< Updated upstream
scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
detector.run();
@@ -108,15 +77,12 @@ public class DriftDetectorTest extends DriftTest {
scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
detector.run();
- File changeSetDir = changeSetDir(driftConfig.getName());
-=======
DriftDetectionSchedule schedule = new DriftDetectionSchedule(resourceId(), driftConfig);
scheduleQueue.enqueue(schedule);
detector.run();
File changeSetDir = new File(new File(changeSetsDir, Integer.toString(resourceId())), "coverage-test");
->>>>>>> Stashed changes
File changeSet = new File(changeSetDir, "changeset.txt");
List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
@@ -171,7 +137,6 @@ public class DriftDetectorTest extends DriftTest {
dirEntry = reader.readDirectoryEntry();
}
}
-<<<<<<< Updated upstream
// void assertChangeSetContainsDirEntry(List<String> changeSet, String... dirEntry) {
// String dirEntryHeader = dirEntry[0];
@@ -203,6 +168,4 @@ public class DriftDetectorTest extends DriftTest {
return config;
}
-=======
->>>>>>> Stashed changes
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java.orig b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java.orig
new file mode 100644
index 0000000..3dfb057
--- /dev/null
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java.orig
@@ -0,0 +1,172 @@
+package org.rhq.core.pc.drift;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.util.List;
+
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import org.rhq.common.drift.ChangeSetReader;
+import org.rhq.common.drift.ChangeSetReaderImpl;
+import org.rhq.common.drift.DirectoryEntry;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.drift.DriftConfiguration;
+
+import static org.apache.commons.io.IOUtils.readLines;
+import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.unitils.thirdparty.org.apache.commons.io.FileUtils.touch;
+
+public class DriftDetectorTest extends DriftTest {
+
+ ScheduleQueue scheduleQueue;
+
+ DriftClientTestStub driftClient;
+
+ DriftDetector detector;
+
+ @BeforeMethod
+ public void initDetector() {
+ driftClient = new DriftClientTestStub();
+ driftClient.setBaseDir(resourceDir);
+
+ scheduleQueue = new ScheduleQueueImpl();
+
+ detector = new DriftDetector();
+ detector.setDriftClient(driftClient);
+ detector.setChangeSetManager(changeSetMgr);
+ detector.setScheduleQueue(scheduleQueue);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void excludeEmptyDirsFromCoverageChangeSet() throws Exception {
+ File confDir = mkdir(resourceDir, "conf");
+ touch(new File(confDir, "server.conf"));
+
+ DriftConfiguration driftConfig = driftConfiguration("coverage-test", resourceDir.getAbsolutePath());
+
+ scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
+ detector.run();
+
+ File changeSetDir = changeSetDir(driftConfig.getName());
+ File changeSet = new File(changeSetDir, "changeset.txt");
+ List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
+
+ assertHeaderEquals(lines, driftConfig.getName(), driftConfig.getBasedir().getValueName(), COVERAGE.code());
+ assertThatChangeSetDoesNotContainEmptyDirs(changeSet);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void usePeriodAsNameOfBasedirDirectoryEntry() throws Exception {
+ touch(new File(resourceDir, "data-1.txt"));
+ touch(new File(resourceDir, "data-2.txt"));
+
+ DriftConfiguration driftConfig = driftConfiguration("basedir-entry-test", resourceDir.getAbsolutePath());
+
+ scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
+ detector.run();
+
+ File changeSetDir = changeSetDir(driftConfig.getName());
+ DriftDetectionSchedule schedule = new DriftDetectionSchedule(resourceId(), driftConfig);
+
+ scheduleQueue.enqueue(schedule);
+ detector.run();
+
+ File changeSetDir = new File(new File(changeSetsDir, Integer.toString(resourceId())), "coverage-test");
+ File changeSet = new File(changeSetDir, "changeset.txt");
+ List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
+
+ assertEquals(lines.size(), 7, "Expected " + changeSet.getPath() + " to have seven lines.");
+ assertEquals(". 2", lines.get(3), "The directory header name is wrong for change set " +
+ changeSet.getAbsolutePath());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void includeNestedDirsInCoverageChangeSet() throws Exception {
+ File confDir = mkdir(resourceDir, "conf");
+ File server1Conf = new File(confDir, "server-1.conf");
+ touch(server1Conf);
+
+ File subConfDir = mkdir(confDir, "subconf");
+ File server2Conf = new File(subConfDir, "server-2.conf");
+ touch(server2Conf);
+
+ DriftConfiguration config = driftConfiguration("nested-dirs-test", resourceDir.getAbsolutePath());
+
+ scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), config));
+ detector.run();
+
+ File changesetDir = changeSetDir(config.getName());
+ File changeSet = new File(changesetDir, "changeset.txt");
+ List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
+
+ assertEquals(lines.size(), 9, "Expected " + changeSet.getPath() + " to have 9 lines");
+
+ assertHeaderEquals(lines, "nested-dirs-test", resourceDir.getAbsolutePath(), "C");
+// assertChangeSetContainsDirEntry(lines,
+// "conf 1",
+// sha256(server1Conf) + " 0 " + server1Conf.getName() + " " + FILE_ADDED
+// );
+ }
+
+ void assertHeaderEquals(List<String> lines, String... expected) {
+ assertEquals(lines.get(0), expected[0], "The first header entry should be the drift configuration name.");
+ assertEquals(lines.get(1), expected[1], "The second header entry should be the base directory.");
+ assertEquals(lines.get(2), expected[2], "The third header entry should be a flag indicating the change set "
+ + "type.");
+ }
+
+ void assertThatChangeSetDoesNotContainEmptyDirs(File changeSet) throws Exception {
+ ChangeSetReader reader = new ChangeSetReaderImpl(new BufferedReader(new FileReader(changeSet)));
+ DirectoryEntry dirEntry = reader.readDirectoryEntry();
+
+ while (dirEntry != null) {
+ Assert.assertTrue(dirEntry.getNumberOfFiles() > 0, "The change set file should not include empty "
+ + "directories");
+ dirEntry = reader.readDirectoryEntry();
+ }
+ }
+
+// void assertChangeSetContainsDirEntry(List<String> changeSet, String... dirEntry) {
+// String dirEntryHeader = dirEntry[0];
+// int i = -1;
+// boolean found = false;
+//
+// for (String line : changeSet) {
+// if (line.equals(dirEntryHeader)) {
+// found = true;
+// }
+// ++i;
+// if (found) {
+// break;
+// }
+// }
+// }
+//
+// void assertChangeSetContainsDirEntry(File changeSet, String... dirEntry) throws Exception {
+// ChangeSetReader reader = new ChangeSetReaderImpl(changeSet);
+// DirectoryEntry actualDirEntry = reader.readDirectoryEntry();
+//
+// while (dir)
+// }
+
+ DriftConfiguration driftConfiguration(String name, String basedir) {
+ DriftConfiguration config = new DriftConfiguration(new Configuration());
+ config.setName(name);
+ config.setBasedir(new DriftConfiguration.BaseDirectory(fileSystem, basedir));
+
+ return config;
+ }
+}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index 80f48eb..f4d42e5 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -43,11 +43,7 @@ public class DriftFilesSenderTest extends DriftTest {
touch(new File(confDir, "server-1.conf"));
touch(new File(confDir, "server-2.conf"));
-<<<<<<< Updated upstream
File changeSetDir = changeSetDir(driftConfigName);
-=======
- File changeSetDir = createChangeSetDir(resourceId(), driftConfigName);
->>>>>>> Stashed changes
// Each item in changeSet is listed by the line it will appear in the actual file
// in an attemp to make it more self-documenting.
@@ -83,11 +79,7 @@ public class DriftFilesSenderTest extends DriftTest {
touch(new File(libDir, "server-1.jar"));
touch(new File(libDir, "server-2.jar"));
-<<<<<<< Updated upstream
File changeSetDir = changeSetDir(driftConfigName);
-=======
- File changeSetDir = createChangeSetDir(resourceId(), driftConfigName);
->>>>>>> Stashed changes
// Each item in changeSet is listed by the line it will appear in the actual file
// in an attemp to make it more self-documenting.
@@ -135,15 +127,6 @@ public class DriftFilesSenderTest extends DriftTest {
contentDir.getPath() + ". The SHA-256 hash should be used as the file name.");
}
-<<<<<<< Updated upstream
-=======
- File createChangeSetDir(int resourceId, String driftConfigName) {
- File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
- dir.mkdirs();
- return dir;
- }
-
->>>>>>> Stashed changes
void writeChangeSet(File changeSetDir, List<String> changeSet) throws Exception {
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(changeSetDir,
"changeset.txt")));
@@ -158,5 +141,4 @@ public class DriftFilesSenderTest extends DriftTest {
}
return files;
}
-
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java.orig b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java.orig
new file mode 100644
index 0000000..f4d42e5
--- /dev/null
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java.orig
@@ -0,0 +1,144 @@
+package org.rhq.core.pc.drift;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import org.rhq.common.drift.Headers;
+import org.rhq.core.domain.drift.DriftFile;
+
+import static java.util.Arrays.asList;
+import static org.apache.commons.io.FileUtils.touch;
+import static org.apache.commons.io.IOUtils.writeLines;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+public class DriftFilesSenderTest extends DriftTest {
+
+ DriftClient driftClient;
+
+ DriftFilesSender sender;
+
+ @BeforeMethod
+ public void initSender() {
+ driftClient = new DriftClientTestStub();
+
+ sender = new DriftFilesSender();
+ sender.setDriftClient(driftClient);
+ sender.setChangeSetManager(changeSetMgr);
+ sender.setResourceId(resourceId());
+ }
+
+ @Test
+ public void sendFilesInOneDirectory() throws Exception {
+ String driftConfigName = "single-directory-test";
+
+ File confDir = mkdir(resourceDir, "conf");
+ touch(new File(confDir, "server-1.conf"));
+ touch(new File(confDir, "server-2.conf"));
+
+ File changeSetDir = changeSetDir(driftConfigName);
+
+ // Each item in changeSet is listed by the line it will appear in the actual file
+ // in an attemp to make it more self-documenting.
+ writeChangeSet(changeSetDir, asList(
+ driftConfigName,
+ resourceDir.getAbsolutePath(),
+ COVERAGE.code(),
+ "conf 2",
+ "2e345df 0 server-1.conf A",
+ "a5d8c3e 0 server-2.conf A",
+ ""
+ ));
+
+ sender.setDriftFiles(driftFiles("2e345df", "a5d8c3e"));
+ sender.setHeaders(new Headers(driftConfigName, resourceDir.getAbsolutePath(), COVERAGE));
+ sender.run();
+
+ File contentDir = mkdir(changeSetDir, "content");
+
+ assertEquals(contentDir.list().length, 2, "Expected to find two files in " + contentDir.getAbsolutePath());
+ assertFileCopiedToContentDir(contentDir, "2e345df");
+ assertFileCopiedToContentDir(contentDir, "a5d8c3e");
+ }
+
+ @Test
+ public void sendFilesInMultipleDirectories() throws Exception {
+ String driftConfigName = "multiple-directories-test";
+
+ File confDir = mkdir(resourceDir, "conf");
+ File libDir = mkdir(resourceDir, "lib");
+ touch(new File(confDir, "server-1.conf"));
+ touch(new File(confDir, "server-2.conf"));
+ touch(new File(libDir, "server-1.jar"));
+ touch(new File(libDir, "server-2.jar"));
+
+ File changeSetDir = changeSetDir(driftConfigName);
+
+ // Each item in changeSet is listed by the line it will appear in the actual file
+ // in an attemp to make it more self-documenting.
+ writeChangeSet(changeSetDir, asList(
+ driftConfigName,
+ resourceDir.getAbsolutePath(),
+ COVERAGE.code(),
+ "conf 2",
+ "2e345df 0 server-1.conf A",
+ "a5d8c3e 0 server-2.conf A",
+ "",
+ "lib 2",
+ "91d4abb 0 server-1.jar A",
+ "92c4abb 0 server-2.jar A",
+ ""
+ ));
+
+ // Note that the order of the drift files is random. When the server sends a request
+ // for files we cannot assume that the files will be in any particular order.
+ sender.setDriftFiles(driftFiles("2e345df", "91d4abb", "a5d8c3e", "92c4abb"));
+ sender.setHeaders(new Headers(driftConfigName, resourceDir.getAbsolutePath(), COVERAGE));
+ sender.run();
+
+ File contentDir = mkdir(changeSetDir, "content");
+
+ assertEquals(contentDir.list().length, 4, "Expected to find four files in " + contentDir.getAbsolutePath());
+ assertFileCopiedToContentDir(contentDir, "2e345df");
+ assertFileCopiedToContentDir(contentDir, "a5d8c3e");
+ assertFileCopiedToContentDir(contentDir, "91d4abb");
+ assertFileCopiedToContentDir(contentDir, "92c4abb");
+ }
+
+ /**
+ * This method only verifies that a file having a particular hash or SHA-256 has been
+ * copied to the specified content directory.
+ *
+ * @param contentDir The directory to which the file should have been copied
+ *
+ * @param fileHash The file hash which is expected to be the name of the file in the
+ * content directory.
+ */
+ void assertFileCopiedToContentDir(File contentDir, String fileHash) {
+ File file = new File(contentDir, fileHash);
+ assertTrue(file.exists(), "Expected to find file named " + file.getName() + " in content directory " +
+ contentDir.getPath() + ". The SHA-256 hash should be used as the file name.");
+ }
+
+ void writeChangeSet(File changeSetDir, List<String> changeSet) throws Exception {
+ BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(changeSetDir,
+ "changeset.txt")));
+ writeLines(changeSet, "\n", stream);
+ stream.close();
+ }
+
+ List<DriftFile> driftFiles(String... hashes) {
+ List<DriftFile> files = new ArrayList<DriftFile>();
+ for (String hash : hashes) {
+ files.add(new DriftFile(hash));
+ }
+ return files;
+ }
+}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
index 9d499ad..c65c7dc 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
@@ -1,7 +1,6 @@
package org.rhq.core.pc.drift;
import java.io.File;
-<<<<<<< Updated upstream
import java.io.IOException;
import org.apache.commons.io.FileUtils;
@@ -12,12 +11,6 @@ import org.testng.annotations.BeforeMethod;
import org.rhq.core.domain.drift.DriftConfiguration;
import org.rhq.core.util.MessageDigestGenerator;
-=======
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-
->>>>>>> Stashed changes
import static org.apache.commons.io.FileUtils.deleteDirectory;
public class DriftTest {
@@ -32,11 +25,8 @@ public class DriftTest {
protected File resourceDir;
-<<<<<<< Updated upstream
private MessageDigestGenerator digestGenerator;
-=======
->>>>>>> Stashed changes
@BeforeClass
public void initResourcesAndChangeSetsDirs() throws Exception {
File basedir = new File("target", getClass().getSimpleName());
@@ -45,11 +35,8 @@ public class DriftTest {
changeSetsDir = mkdir(basedir, "changesets");
resourcesDir = mkdir(basedir, "resources");
-<<<<<<< Updated upstream
digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
-=======
->>>>>>> Stashed changes
}
@BeforeMethod
@@ -66,16 +53,11 @@ public class DriftTest {
return ++resourceId;
}
-<<<<<<< Updated upstream
protected File mkdir(File parent, String name) {
-=======
- File mkdir(File parent, String name) {
->>>>>>> Stashed changes
File dir = new File(parent, name);
dir.mkdirs();
return dir;
}
-<<<<<<< Updated upstream
protected File changeSetDir(String driftConfigName) {
File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
@@ -86,6 +68,4 @@ public class DriftTest {
protected String sha256(File file) throws IOException {
return digestGenerator.calcDigestString(file);
}
-=======
->>>>>>> Stashed changes
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java.orig b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java.orig
new file mode 100644
index 0000000..c65c7dc
--- /dev/null
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java.orig
@@ -0,0 +1,71 @@
+package org.rhq.core.pc.drift;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.poi.util.IOUtils;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+import org.rhq.core.domain.drift.DriftConfiguration;
+import org.rhq.core.util.MessageDigestGenerator;
+
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+
+public class DriftTest {
+
+ protected File changeSetsDir;
+
+ protected File resourcesDir;
+
+ protected ChangeSetManager changeSetMgr;
+
+ private int resourceId;
+
+ protected File resourceDir;
+
+ private MessageDigestGenerator digestGenerator;
+
+ @BeforeClass
+ public void initResourcesAndChangeSetsDirs() throws Exception {
+ File basedir = new File("target", getClass().getSimpleName());
+ deleteDirectory(basedir);
+ basedir.mkdir();
+
+ changeSetsDir = mkdir(basedir, "changesets");
+ resourcesDir = mkdir(basedir, "resources");
+
+ digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ }
+
+ @BeforeMethod
+ public void setUp() {
+ resourceDir = mkdir(resourcesDir, "resource-" + nextResourceId());
+ changeSetMgr = new ChangeSetManagerImpl(changeSetsDir);
+ }
+
+ protected int resourceId() {
+ return resourceId;
+ }
+
+ protected int nextResourceId() {
+ return ++resourceId;
+ }
+
+ protected File mkdir(File parent, String name) {
+ File dir = new File(parent, name);
+ dir.mkdirs();
+ return dir;
+ }
+
+ protected File changeSetDir(String driftConfigName) {
+ File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
+ dir.mkdirs();
+ return dir;
+ }
+
+ protected String sha256(File file) throws IOException {
+ return digestGenerator.calcDigestString(file);
+ }
+}
12 years, 10 months
[rhq] Branch 'drift' - 3 commits - modules/common modules/core
by John Sanda
modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReader.java | 2
modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReaderImpl.java | 39 ++
modules/common/drift/src/test/java/org/rhq/common/drift/ChangeSetReaderImplTest.java | 75 +++
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java | 188 +++++++---
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java | 80 +---
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java | 91 ++++
6 files changed, 373 insertions(+), 102 deletions(-)
New commits:
commit 5ecf1d7b1c9a02dc3967fe21ec6d844c09064531
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 30 22:40:13 2011 -0400
Adding/updating tests
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
index 13d6170..9481fa9 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
@@ -18,12 +18,20 @@ import org.rhq.common.drift.DirectoryEntry;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.drift.DriftConfiguration;
+<<<<<<< Updated upstream
import static org.apache.commons.io.IOUtils.readLines;
import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
+=======
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+import static org.apache.commons.io.IOUtils.readLines;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
+import static org.testng.Assert.assertEquals;
+>>>>>>> Stashed changes
import static org.unitils.thirdparty.org.apache.commons.io.FileUtils.touch;
public class DriftDetectorTest extends DriftTest {
@@ -32,9 +40,24 @@ public class DriftDetectorTest extends DriftTest {
ScheduleQueue scheduleQueue;
DriftClientTestStub driftClient;
+<<<<<<< Updated upstream
+
+ DriftDetector detector;
+=======
DriftDetector detector;
+// @BeforeClass
+// public void initDetector() throws Exception {
+// File basedir = new File("target", getClass().getSimpleName());
+// deleteDirectory(basedir);
+// basedir.mkdir();
+//
+// changeSetsDir = mkdir(basedir, "changesets");
+// resourcesDir = mkdir(basedir, "resources");
+// }
+>>>>>>> Stashed changes
+
@BeforeMethod
public void initDetector() {
driftClient = new DriftClientTestStub();
@@ -50,12 +73,19 @@ public class DriftDetectorTest extends DriftTest {
@SuppressWarnings("unchecked")
@Test
+<<<<<<< Updated upstream
public void excludeEmptyDirsFromCoverageChangeSet() throws Exception {
File confDir = mkdir(resourceDir, "conf");
+=======
+ public void coverageChangeSetExcludesEmptyDirs() throws Exception {
+ File confDir = new File(resourceDir, "conf");
+ confDir.mkdir();
+>>>>>>> Stashed changes
touch(new File(confDir, "server.conf"));
DriftConfiguration driftConfig = driftConfiguration("coverage-test", resourceDir.getAbsolutePath());
+<<<<<<< Updated upstream
scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
detector.run();
@@ -79,6 +109,14 @@ public class DriftDetectorTest extends DriftTest {
detector.run();
File changeSetDir = changeSetDir(driftConfig.getName());
+=======
+ DriftDetectionSchedule schedule = new DriftDetectionSchedule(resourceId(), driftConfig);
+
+ scheduleQueue.enqueue(schedule);
+ detector.run();
+
+ File changeSetDir = new File(new File(changeSetsDir, Integer.toString(resourceId())), "coverage-test");
+>>>>>>> Stashed changes
File changeSet = new File(changeSetDir, "changeset.txt");
List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
@@ -133,6 +171,7 @@ public class DriftDetectorTest extends DriftTest {
dirEntry = reader.readDirectoryEntry();
}
}
+<<<<<<< Updated upstream
// void assertChangeSetContainsDirEntry(List<String> changeSet, String... dirEntry) {
// String dirEntryHeader = dirEntry[0];
@@ -164,4 +203,6 @@ public class DriftDetectorTest extends DriftTest {
return config;
}
+=======
+>>>>>>> Stashed changes
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index 454a6c3..80f48eb 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -43,7 +43,11 @@ public class DriftFilesSenderTest extends DriftTest {
touch(new File(confDir, "server-1.conf"));
touch(new File(confDir, "server-2.conf"));
+<<<<<<< Updated upstream
File changeSetDir = changeSetDir(driftConfigName);
+=======
+ File changeSetDir = createChangeSetDir(resourceId(), driftConfigName);
+>>>>>>> Stashed changes
// Each item in changeSet is listed by the line it will appear in the actual file
// in an attemp to make it more self-documenting.
@@ -79,7 +83,11 @@ public class DriftFilesSenderTest extends DriftTest {
touch(new File(libDir, "server-1.jar"));
touch(new File(libDir, "server-2.jar"));
+<<<<<<< Updated upstream
File changeSetDir = changeSetDir(driftConfigName);
+=======
+ File changeSetDir = createChangeSetDir(resourceId(), driftConfigName);
+>>>>>>> Stashed changes
// Each item in changeSet is listed by the line it will appear in the actual file
// in an attemp to make it more self-documenting.
@@ -127,6 +135,15 @@ public class DriftFilesSenderTest extends DriftTest {
contentDir.getPath() + ". The SHA-256 hash should be used as the file name.");
}
+<<<<<<< Updated upstream
+=======
+ File createChangeSetDir(int resourceId, String driftConfigName) {
+ File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
+ dir.mkdirs();
+ return dir;
+ }
+
+>>>>>>> Stashed changes
void writeChangeSet(File changeSetDir, List<String> changeSet) throws Exception {
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(changeSetDir,
"changeset.txt")));
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
index c65c7dc..9d499ad 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
@@ -1,6 +1,7 @@
package org.rhq.core.pc.drift;
import java.io.File;
+<<<<<<< Updated upstream
import java.io.IOException;
import org.apache.commons.io.FileUtils;
@@ -11,6 +12,12 @@ import org.testng.annotations.BeforeMethod;
import org.rhq.core.domain.drift.DriftConfiguration;
import org.rhq.core.util.MessageDigestGenerator;
+=======
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+>>>>>>> Stashed changes
import static org.apache.commons.io.FileUtils.deleteDirectory;
public class DriftTest {
@@ -25,8 +32,11 @@ public class DriftTest {
protected File resourceDir;
+<<<<<<< Updated upstream
private MessageDigestGenerator digestGenerator;
+=======
+>>>>>>> Stashed changes
@BeforeClass
public void initResourcesAndChangeSetsDirs() throws Exception {
File basedir = new File("target", getClass().getSimpleName());
@@ -35,8 +45,11 @@ public class DriftTest {
changeSetsDir = mkdir(basedir, "changesets");
resourcesDir = mkdir(basedir, "resources");
+<<<<<<< Updated upstream
digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+=======
+>>>>>>> Stashed changes
}
@BeforeMethod
@@ -53,11 +66,16 @@ public class DriftTest {
return ++resourceId;
}
+<<<<<<< Updated upstream
protected File mkdir(File parent, String name) {
+=======
+ File mkdir(File parent, String name) {
+>>>>>>> Stashed changes
File dir = new File(parent, name);
dir.mkdirs();
return dir;
}
+<<<<<<< Updated upstream
protected File changeSetDir(String driftConfigName) {
File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
@@ -68,4 +86,6 @@ public class DriftTest {
protected String sha256(File file) throws IOException {
return digestGenerator.calcDigestString(file);
}
+=======
+>>>>>>> Stashed changes
}
commit d70622d559c65662753bb5b41de4c547d7e4d825
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 30 22:38:18 2011 -0400
Initial commit for DriftTest
Adding some more tests for DriftDetector and DriftFilesSender and
refactoring some common code into a common base class.
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
index efa504b..13d6170 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
@@ -1,12 +1,5 @@
package org.rhq.core.pc.drift;
-import static org.apache.commons.io.FileUtils.deleteDirectory;
-import static org.apache.commons.io.IOUtils.readLines;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
-import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
-import static org.testng.Assert.assertEquals;
-import static org.unitils.thirdparty.org.apache.commons.io.FileUtils.touch;
-
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
@@ -24,81 +17,103 @@ import org.rhq.common.drift.ChangeSetReaderImpl;
import org.rhq.common.drift.DirectoryEntry;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.drift.DriftConfiguration;
-import org.rhq.core.domain.drift.DriftConfiguration.BaseDirectory;
-import org.rhq.test.JMockTest;
-
-public class DriftDetectorTest extends JMockTest {
- File changeSetsDir;
+import static org.apache.commons.io.IOUtils.readLines;
+import static org.rhq.core.domain.drift.DriftCategory.FILE_ADDED;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.BaseDirValueContext.fileSystem;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.unitils.thirdparty.org.apache.commons.io.FileUtils.touch;
- File resourcesDir;
+public class DriftDetectorTest extends DriftTest {
- ChangeSetManager changeSetMgr;
ScheduleQueue scheduleQueue;
- @BeforeClass
- public void init() throws Exception {
- File basedir = new File("target", getClass().getSimpleName());
- deleteDirectory(basedir);
- basedir.mkdir();
-
- changeSetsDir = new File(basedir, "changesets");
- changeSetsDir.mkdir();
+ DriftClientTestStub driftClient;
- resourcesDir = new File(basedir, "resources");
- resourcesDir.mkdir();
- }
+ DriftDetector detector;
@BeforeMethod
- public void setUp() {
- changeSetMgr = new ChangeSetManagerImpl(changeSetsDir);
+ public void initDetector() {
+ driftClient = new DriftClientTestStub();
+ driftClient.setBaseDir(resourceDir);
+
scheduleQueue = new ScheduleQueueImpl();
+
+ detector = new DriftDetector();
+ detector.setDriftClient(driftClient);
+ detector.setChangeSetManager(changeSetMgr);
+ detector.setScheduleQueue(scheduleQueue);
}
@SuppressWarnings("unchecked")
@Test
- public void generateCoverageChangeSet() throws Exception {
- File server1Dir = new File(resourcesDir, "server-1");
- server1Dir.mkdir();
-
- File confDir = new File(server1Dir, "conf");
- confDir.mkdir();
-
+ public void excludeEmptyDirsFromCoverageChangeSet() throws Exception {
+ File confDir = mkdir(resourceDir, "conf");
touch(new File(confDir, "server.conf"));
- DriftConfiguration driftConfig = driftConfiguration("coverage-test", server1Dir.getAbsolutePath());
+ DriftConfiguration driftConfig = driftConfiguration("coverage-test", resourceDir.getAbsolutePath());
- int resourceId = 1;
- DriftDetectionSchedule schedule = new DriftDetectionSchedule(resourceId, driftConfig);
+ scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
+ detector.run();
- scheduleQueue.enqueue(schedule);
+ File changeSetDir = changeSetDir(driftConfig.getName());
+ File changeSet = new File(changeSetDir, "changeset.txt");
+ List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
- DriftClientTestStub driftClient = new DriftClientTestStub();
- driftClient.setBaseDir(server1Dir);
+ assertHeaderEquals(lines, driftConfig.getName(), driftConfig.getBasedir().getValueName(), COVERAGE.code());
+ assertThatChangeSetDoesNotContainEmptyDirs(changeSet);
+ }
- DriftDetector detector = new DriftDetector();
- detector.setDriftClient(driftClient);
- detector.setChangeSetManager(changeSetMgr);
- detector.setScheduleQueue(scheduleQueue);
+ @SuppressWarnings("unchecked")
+ @Test
+ public void usePeriodAsNameOfBasedirDirectoryEntry() throws Exception {
+ touch(new File(resourceDir, "data-1.txt"));
+ touch(new File(resourceDir, "data-2.txt"));
+ DriftConfiguration driftConfig = driftConfiguration("basedir-entry-test", resourceDir.getAbsolutePath());
+
+ scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), driftConfig));
detector.run();
- File changeSetDir = new File(new File(changeSetsDir, Integer.toString(resourceId)), "coverage-test");
+ File changeSetDir = changeSetDir(driftConfig.getName());
File changeSet = new File(changeSetDir, "changeset.txt");
-
List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
- assertHeaderEquals(lines, driftConfig.getName(), driftConfig.getBasedir().getValueName(), COVERAGE.code());
- assertThatChangeSetDoesNotContainEmptyDirs(changeSet);
+ assertEquals(lines.size(), 7, "Expected " + changeSet.getPath() + " to have seven lines.");
+ assertEquals(". 2", lines.get(3), "The directory header name is wrong for change set " +
+ changeSet.getAbsolutePath());
}
- DriftConfiguration driftConfiguration(String name, String basedir) {
- DriftConfiguration config = new DriftConfiguration(new Configuration());
- config.setName(name);
- config.setBasedir(new BaseDirectory(fileSystem, basedir));
+ @SuppressWarnings("unchecked")
+ @Test
+ public void includeNestedDirsInCoverageChangeSet() throws Exception {
+ File confDir = mkdir(resourceDir, "conf");
+ File server1Conf = new File(confDir, "server-1.conf");
+ touch(server1Conf);
- return config;
+ File subConfDir = mkdir(confDir, "subconf");
+ File server2Conf = new File(subConfDir, "server-2.conf");
+ touch(server2Conf);
+
+ DriftConfiguration config = driftConfiguration("nested-dirs-test", resourceDir.getAbsolutePath());
+
+ scheduleQueue.enqueue(new DriftDetectionSchedule(resourceId(), config));
+ detector.run();
+
+ File changesetDir = changeSetDir(config.getName());
+ File changeSet = new File(changesetDir, "changeset.txt");
+ List<String> lines = readLines(new BufferedInputStream(new FileInputStream(changeSet)));
+
+ assertEquals(lines.size(), 9, "Expected " + changeSet.getPath() + " to have 9 lines");
+
+ assertHeaderEquals(lines, "nested-dirs-test", resourceDir.getAbsolutePath(), "C");
+// assertChangeSetContainsDirEntry(lines,
+// "conf 1",
+// sha256(server1Conf) + " 0 " + server1Conf.getName() + " " + FILE_ADDED
+// );
}
void assertHeaderEquals(List<String> lines, String... expected) {
@@ -119,4 +134,34 @@ public class DriftDetectorTest extends JMockTest {
}
}
+// void assertChangeSetContainsDirEntry(List<String> changeSet, String... dirEntry) {
+// String dirEntryHeader = dirEntry[0];
+// int i = -1;
+// boolean found = false;
+//
+// for (String line : changeSet) {
+// if (line.equals(dirEntryHeader)) {
+// found = true;
+// }
+// ++i;
+// if (found) {
+// break;
+// }
+// }
+// }
+//
+// void assertChangeSetContainsDirEntry(File changeSet, String... dirEntry) throws Exception {
+// ChangeSetReader reader = new ChangeSetReaderImpl(changeSet);
+// DirectoryEntry actualDirEntry = reader.readDirectoryEntry();
+//
+// while (dir)
+// }
+
+ DriftConfiguration driftConfiguration(String name, String basedir) {
+ DriftConfiguration config = new DriftConfiguration(new Configuration());
+ config.setName(name);
+ config.setBasedir(new DriftConfiguration.BaseDirectory(fileSystem, basedir));
+
+ return config;
+ }
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index 53233e5..454a6c3 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -6,7 +6,6 @@ import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -14,57 +13,43 @@ import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftFile;
import static java.util.Arrays.asList;
-import static org.apache.commons.io.FileUtils.deleteDirectory;
import static org.apache.commons.io.FileUtils.touch;
import static org.apache.commons.io.IOUtils.writeLines;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
-public class DriftFilesSenderTest {
+public class DriftFilesSenderTest extends DriftTest {
- File changeSetsDir;
+ DriftClient driftClient;
- File resourcesDir;
-
- ChangeSetManager changeSetMgr;
-
- String driftConfigName = "test";
-
- File server1Dir;
-
- @BeforeClass
- public void init() throws Exception {
- File basedir = new File("target", getClass().getSimpleName());
- deleteDirectory(basedir);
- basedir.mkdir();
-
- changeSetsDir = mkdir(basedir, "changesets");
- resourcesDir = mkdir(basedir, "resources");
- }
+ DriftFilesSender sender;
@BeforeMethod
- public void setUp() {
- changeSetMgr = new ChangeSetManagerImpl(changeSetsDir);
+ public void initSender() {
+ driftClient = new DriftClientTestStub();
+
+ sender = new DriftFilesSender();
+ sender.setDriftClient(driftClient);
+ sender.setChangeSetManager(changeSetMgr);
+ sender.setResourceId(resourceId());
}
@Test
public void sendFilesInOneDirectory() throws Exception {
String driftConfigName = "single-directory-test";
- File server1Dir = mkdir(resourcesDir, "server-1");
- File confDir = mkdir(server1Dir, "conf");
+ File confDir = mkdir(resourceDir, "conf");
touch(new File(confDir, "server-1.conf"));
touch(new File(confDir, "server-2.conf"));
- int resourceId = 1;
- File changeSetDir = createChangeSetDir(resourceId, driftConfigName);
+ File changeSetDir = changeSetDir(driftConfigName);
// Each item in changeSet is listed by the line it will appear in the actual file
// in an attemp to make it more self-documenting.
writeChangeSet(changeSetDir, asList(
driftConfigName,
- server1Dir.getAbsolutePath(),
+ resourceDir.getAbsolutePath(),
COVERAGE.code(),
"conf 2",
"2e345df 0 server-1.conf A",
@@ -72,12 +57,8 @@ public class DriftFilesSenderTest {
""
));
- DriftFilesSender sender = new DriftFilesSender();
- sender.setDriftClient(new DriftClientTestStub());
- sender.setChangeSetManager(changeSetMgr);
- sender.setResourceId(resourceId);
sender.setDriftFiles(driftFiles("2e345df", "a5d8c3e"));
- sender.setHeaders(new Headers(driftConfigName, server1Dir.getAbsolutePath(), COVERAGE));
+ sender.setHeaders(new Headers(driftConfigName, resourceDir.getAbsolutePath(), COVERAGE));
sender.run();
File contentDir = mkdir(changeSetDir, "content");
@@ -91,22 +72,20 @@ public class DriftFilesSenderTest {
public void sendFilesInMultipleDirectories() throws Exception {
String driftConfigName = "multiple-directories-test";
- File server2Dir = mkdir(resourcesDir, "server-2");
- File confDir = mkdir(server2Dir, "conf");
- File libDir = mkdir(server2Dir, "lib");
+ File confDir = mkdir(resourceDir, "conf");
+ File libDir = mkdir(resourceDir, "lib");
touch(new File(confDir, "server-1.conf"));
touch(new File(confDir, "server-2.conf"));
touch(new File(libDir, "server-1.jar"));
touch(new File(libDir, "server-2.jar"));
- int resourceId = 2;
- File changeSetDir = createChangeSetDir(resourceId, driftConfigName);
+ File changeSetDir = changeSetDir(driftConfigName);
// Each item in changeSet is listed by the line it will appear in the actual file
// in an attemp to make it more self-documenting.
writeChangeSet(changeSetDir, asList(
driftConfigName,
- server2Dir.getAbsolutePath(),
+ resourceDir.getAbsolutePath(),
COVERAGE.code(),
"conf 2",
"2e345df 0 server-1.conf A",
@@ -118,14 +97,10 @@ public class DriftFilesSenderTest {
""
));
- DriftFilesSender sender = new DriftFilesSender();
- sender.setDriftClient(new DriftClientTestStub());
- sender.setChangeSetManager(changeSetMgr);
- sender.setResourceId(resourceId);
// Note that the order of the drift files is random. When the server sends a request
// for files we cannot assume that the files will be in any particular order.
sender.setDriftFiles(driftFiles("2e345df", "91d4abb", "a5d8c3e", "92c4abb"));
- sender.setHeaders(new Headers(driftConfigName, server2Dir.getAbsolutePath(), COVERAGE));
+ sender.setHeaders(new Headers(driftConfigName, resourceDir.getAbsolutePath(), COVERAGE));
sender.run();
File contentDir = mkdir(changeSetDir, "content");
@@ -152,18 +127,6 @@ public class DriftFilesSenderTest {
contentDir.getPath() + ". The SHA-256 hash should be used as the file name.");
}
- File mkdir(File parent, String name) {
- File dir = new File(parent, name);
- dir.mkdirs();
- return dir;
- }
-
- File createChangeSetDir(int resourceId, String driftConfigName) {
- File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
- dir.mkdirs();
- return dir;
- }
-
void writeChangeSet(File changeSetDir, List<String> changeSet) throws Exception {
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(changeSetDir,
"changeset.txt")));
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
new file mode 100644
index 0000000..c65c7dc
--- /dev/null
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftTest.java
@@ -0,0 +1,71 @@
+package org.rhq.core.pc.drift;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.poi.util.IOUtils;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+import org.rhq.core.domain.drift.DriftConfiguration;
+import org.rhq.core.util.MessageDigestGenerator;
+
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+
+public class DriftTest {
+
+ protected File changeSetsDir;
+
+ protected File resourcesDir;
+
+ protected ChangeSetManager changeSetMgr;
+
+ private int resourceId;
+
+ protected File resourceDir;
+
+ private MessageDigestGenerator digestGenerator;
+
+ @BeforeClass
+ public void initResourcesAndChangeSetsDirs() throws Exception {
+ File basedir = new File("target", getClass().getSimpleName());
+ deleteDirectory(basedir);
+ basedir.mkdir();
+
+ changeSetsDir = mkdir(basedir, "changesets");
+ resourcesDir = mkdir(basedir, "resources");
+
+ digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ }
+
+ @BeforeMethod
+ public void setUp() {
+ resourceDir = mkdir(resourcesDir, "resource-" + nextResourceId());
+ changeSetMgr = new ChangeSetManagerImpl(changeSetsDir);
+ }
+
+ protected int resourceId() {
+ return resourceId;
+ }
+
+ protected int nextResourceId() {
+ return ++resourceId;
+ }
+
+ protected File mkdir(File parent, String name) {
+ File dir = new File(parent, name);
+ dir.mkdirs();
+ return dir;
+ }
+
+ protected File changeSetDir(String driftConfigName) {
+ File dir = new File(new File(changeSetsDir, Integer.toString(resourceId)), driftConfigName);
+ dir.mkdirs();
+ return dir;
+ }
+
+ protected String sha256(File file) throws IOException {
+ return digestGenerator.calcDigestString(file);
+ }
+}
commit 54a3594808a16ec913eddfc25abab86d28d48ad6
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 30 22:36:06 2011 -0400
Making ChangeSetReader iteratable
Now you can iterate over directory entries as follows:
ChangeSetReader reader = ...
for (DirectoryEntry dirEntry : reader) {
for (FileEntry fileEntry : dirEntry) {
....
}
}
diff --git a/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReader.java b/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReader.java
index 93fe553..a39867a 100644
--- a/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReader.java
+++ b/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReader.java
@@ -2,7 +2,7 @@ package org.rhq.common.drift;
import java.io.IOException;
-public interface ChangeSetReader {
+public interface ChangeSetReader extends Iterable<DirectoryEntry> {
Headers getHeaders() throws IOException;
diff --git a/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReaderImpl.java b/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReaderImpl.java
index 7ebaabc..0d1e07e 100644
--- a/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReaderImpl.java
+++ b/modules/common/drift/src/main/java/org/rhq/common/drift/ChangeSetReaderImpl.java
@@ -7,6 +7,7 @@ import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
+import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -78,4 +79,42 @@ public class ChangeSetReaderImpl implements ChangeSetReader {
public void close() throws IOException {
reader.close();
}
+
+ @Override
+ public Iterator<DirectoryEntry> iterator() {
+
+ return new Iterator<DirectoryEntry>() {
+
+ private DirectoryEntry next;
+
+ {
+ try {
+ next = readDirectoryEntry();
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to create iterator: " + e);
+ }
+ }
+
+ @Override
+ public boolean hasNext() {
+ return next != null;
+ }
+
+ @Override
+ public DirectoryEntry next() {
+ try {
+ DirectoryEntry previous = next;
+ next = readDirectoryEntry();
+ return previous;
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to get next " + DirectoryEntry.class.getName() + ": " + e);
+ }
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
}
diff --git a/modules/common/drift/src/test/java/org/rhq/common/drift/ChangeSetReaderImplTest.java b/modules/common/drift/src/test/java/org/rhq/common/drift/ChangeSetReaderImplTest.java
index d56c3c7..a953414 100644
--- a/modules/common/drift/src/test/java/org/rhq/common/drift/ChangeSetReaderImplTest.java
+++ b/modules/common/drift/src/test/java/org/rhq/common/drift/ChangeSetReaderImplTest.java
@@ -1,6 +1,8 @@
package org.rhq.common.drift;
import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.List;
import org.testng.annotations.Test;
@@ -91,6 +93,79 @@ public class ChangeSetReaderImplTest {
assertFileEntryEquals(actualFileEntry, expectedFileEntry);
}
+ ////////////////////////////////////////////////////////
+ // Iterator tests //
+ ////////////////////////////////////////////////////////
+
+ // For iterator related tests we are only verifying the number of directory entries
+ // returned to make sure that the iteration logic is correct. The actual parsing is
+ // verified in other tests.
+ //
+ // jsanda
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void iterateOverChangeSetWithMultipledDirectoryEntries() throws Exception {
+ String changeset = "multiple-dir-entries-test\n" +
+ "myresource\n" +
+ "C\n" +
+ "conf 1\n" +
+ "abcd 0 resource.conf A\n" +
+ "\n" +
+ "lib 1\n" +
+ "1234 0 resource.jar A";
+
+ ChangeSetReaderImpl reader = new ChangeSetReaderImpl(new StringReader(changeset));
+ int numDirEntries = 0;
+
+ for (DirectoryEntry dirEntry : reader) {
+ ++numDirEntries;
+ }
+
+ assertEquals(numDirEntries, 2, "Expected iterator to return two directory entries");
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void iterateOverChangeSetOneDirectoryEntry() throws Exception {
+ String changeset = "single-dir-entry-test\n" +
+ "myresource\n" +
+ "C\n" +
+ "conf 1\n" +
+ "abcd 0 resource.conf A\n" +
+ "\n";
+
+ ChangeSetReaderImpl reader = new ChangeSetReaderImpl(new StringReader(changeset));
+ int numDirEntries = 0;
+
+ for (DirectoryEntry dirEntry : reader) {
+ ++numDirEntries;
+ }
+
+ assertEquals(numDirEntries, 1, "Expected iterator to return one directory entry");
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void iterateOverEmptyChangeSet() throws Exception {
+ // Note: We shouldn't ever be working with empty change set files (excluding the
+ // header) but this test is here to make sure ChangeReaderImpl is robust in handling
+ // edge cases.
+
+ String changeset = "empty-changeset-test\n" +
+ "myresouce\n" +
+ "C\n";
+
+ ChangeSetReaderImpl reader = new ChangeSetReaderImpl(new StringReader(changeset));
+ int numDirEntries = 0;
+
+ for (DirectoryEntry dirEntry : reader) {
+ ++numDirEntries;
+ }
+
+ assertEquals(numDirEntries, 0, "Expected iterator to return zero directory entries");
+ }
+
void assertHeadersEquals(Headers actual, Headers expected) {
assertEquals(actual.getDriftConfigurationName(), expected.getDriftConfigurationName(),
"The drift configuration name, which should be the first header, is wrong.");
12 years, 10 months