You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jj...@apache.org on 2018/11/30 10:52:36 UTC
[geode] branch develop updated: GEODE-5342: Fix disk-store
validation in commands (#2881)
This is an automated email from the ASF dual-hosted git repository.
jjramos pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 0a628c9 GEODE-5342: Fix disk-store validation in commands (#2881)
0a628c9 is described below
commit 0a628c99aac960b6b420d62c26e675ba68aba752
Author: Juan José Ramos <ju...@users.noreply.github.com>
AuthorDate: Fri Nov 30 10:52:26 2018 +0000
GEODE-5342: Fix disk-store validation in commands (#2881)
- Fixed minor warnings.
- Replaced the usage of `junit.Assert` by `assertj`.
- Offline gfsh comamnds related to disk-stores avoid creating the
disk-store's folder if it doesn't exist already.
---
.../cli/commands/DiskStoreCommandsDUnitTest.java | 107 ++++----
...t.java => DiskStoreFactoryIntegrationTest.java} | 304 +++++++++++----------
.../AlterDiskStoreCommandIntegrationTest.java} | 11 +-
.../cli/commands/AlterOfflineDiskStoreCommand.java | 11 +-
.../commands/CompactOfflineDiskStoreCommand.java | 19 +-
.../commands/DescribeOfflineDiskStoreCommand.java | 10 +-
.../commands/UpgradeOfflineDiskStoreCommand.java | 17 +-
.../cli/commands/ValidateDiskStoreCommand.java | 10 +-
8 files changed, 261 insertions(+), 228 deletions(-)
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index eaed28a..7a2e855 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -18,6 +18,9 @@ package org.apache.geode.management.internal.cli.commands;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -25,10 +28,13 @@ import java.util.Properties;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.Region;
@@ -41,18 +47,19 @@ import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.SnapshotTestUtil;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.internal.cli.result.CommandResult;
+import org.apache.geode.test.dunit.SerializableRunnableIF;
import org.apache.geode.test.dunit.rules.ClusterStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.PersistenceTest;
import org.apache.geode.test.junit.rules.GfshCommandRule;
import org.apache.geode.test.junit.rules.ServerStarterRule;
-@Category({PersistenceTest.class})
+@Category(PersistenceTest.class)
+@RunWith(JUnitParamsRunner.class)
public class DiskStoreCommandsDUnitTest {
-
+ private static final String GROUP = "GROUP1";
private static final String REGION_1 = "REGION1";
private static final String DISKSTORE = "DISKSTORE";
- private static final String GROUP = "GROUP1";
@Rule
public ClusterStartupRule rule = new ClusterStartupRule();
@@ -80,6 +87,15 @@ public class DiskStoreCommandsDUnitTest {
REGION_1, DISKSTORE, GROUP)).statusIsSuccess();
}
+ private static SerializableRunnableIF dataProducer() {
+ return () -> {
+ Cache cache = ClusterStartupRule.getCache();
+ assertThat(cache).isNotNull();
+ Region<String, String> r = cache.getRegion(REGION_1);
+ r.put("A", "B");
+ };
+ }
+
@Test
public void testMissingDiskStore() throws Exception {
Properties props = new Properties();
@@ -93,11 +109,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(locator, 2);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
gfsh.executeAndAssertThat("show missing-disk-stores")
.containsOutput("No missing disk store found");
@@ -106,7 +118,8 @@ public class DiskStoreCommandsDUnitTest {
server2.invoke(() -> {
Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
+ assertThat(cache).isNotNull();
+ Region<String, String> r = cache.getRegion(REGION_1);
r.put("A", "C");
});
@@ -136,6 +149,7 @@ public class DiskStoreCommandsDUnitTest {
server1.invoke(() -> {
Cache cache = ClusterStartupRule.getCache();
+ assertThat(cache).isNotNull();
Region<String, String> r = cache.getRegion(REGION_1);
assertThat(r.get("A")).isEqualTo("B");
});
@@ -149,11 +163,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(server1, 1);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
gfsh.executeAndAssertThat("show missing-disk-stores")
.containsOutput("No missing disk store found");
@@ -175,11 +185,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(server1, 1);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
gfsh.executeAndAssertThat("show missing-disk-stores")
.containsOutput("No missing disk store found");
@@ -198,15 +204,13 @@ public class DiskStoreCommandsDUnitTest {
}
private boolean diskStoreExistsInClusterConfig(MemberVM jmxManager) {
- boolean result = jmxManager.invoke(() -> {
+ return jmxManager.invoke(() -> {
InternalConfigurationPersistenceService sharedConfig =
((InternalLocator) Locator.getLocator()).getConfigurationPersistenceService();
List<DiskStoreType> diskStores = sharedConfig.getCacheConfig(GROUP).getDiskStores();
return diskStores.size() == 1 && DISKSTORE.equals(diskStores.get(0).getName());
});
-
- return result;
}
@Test
@@ -215,7 +219,7 @@ public class DiskStoreCommandsDUnitTest {
props.setProperty("groups", GROUP);
MemberVM locator = rule.startLocatorVM(0);
- MemberVM server1 = rule.startServerVM(1, props, locator.getPort());
+ rule.startServerVM(1, props, locator.getPort());
gfsh.connectAndVerify(locator);
@@ -233,7 +237,7 @@ public class DiskStoreCommandsDUnitTest {
props.setProperty("groups", GROUP);
MemberVM locator = rule.startLocatorVM(0);
- MemberVM server1 = rule.startServerVM(1, props, locator.getPort());
+ rule.startServerVM(1, props, locator.getPort());
gfsh.connectAndVerify(locator.getJmxPort(), GfshCommandRule.PortType.jmxManager);
@@ -257,11 +261,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(locator, 1);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
String backupDir = tempDir.newFolder().getCanonicalPath();
String diskDirs = new File(server1.getWorkingDir(), DISKSTORE).getAbsolutePath();
@@ -274,7 +274,7 @@ public class DiskStoreCommandsDUnitTest {
@Test
public void destroyDiskStoreIsIdempotent() throws Exception {
MemberVM locator = rule.startLocatorVM(0);
- MemberVM server1 = rule.startServerVM(1, locator.getPort());
+ rule.startServerVM(1, locator.getPort());
gfsh.connectAndVerify(locator);
@@ -286,8 +286,10 @@ public class DiskStoreCommandsDUnitTest {
.statusIsSuccess();
locator.invoke(() -> {
+ InternalLocator internalLocator = ClusterStartupRule.getLocator();
+ assertThat(internalLocator).isNotNull();
InternalConfigurationPersistenceService cc =
- ClusterStartupRule.getLocator().getConfigurationPersistenceService();
+ internalLocator.getConfigurationPersistenceService();
CacheConfig config = cc.getCacheConfig("cluster");
assertThat(config.getDiskStores().size()).isEqualTo(0);
});
@@ -311,7 +313,8 @@ public class DiskStoreCommandsDUnitTest {
server1.invoke(() -> {
InternalCache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
+ assertThat(cache).isNotNull();
+ Region<Integer, String> r = cache.getRegion(REGION_1);
// Make sure we have more than 1 log and there is something to compact
for (int i = 0; i < 10000; i++) {
r.put(i, "value_" + i);
@@ -338,11 +341,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(server1, 1);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
CommandResult result = gfsh.executeCommand(
String.format("describe disk-store --member=%s --name=%s", server1.getName(), DISKSTORE));
@@ -394,11 +393,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(server1, 1);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
// Should not be able to do this on a running system
String diskDirs = new File(server1.getWorkingDir(), DISKSTORE).getAbsolutePath();
@@ -419,12 +414,11 @@ public class DiskStoreCommandsDUnitTest {
props.setProperty("groups", GROUP);
MemberVM locator = rule.startLocatorVM(0);
- MemberVM server1 = rule.startServerVM(1, props, locator.getPort());
+ rule.startServerVM(1, props, locator.getPort());
gfsh.connectAndVerify(locator);
-
- gfsh.executeAndAssertThat("revoke missing-disk-store --id=unknown-diskstore")
- .statusIsError().containsOutput("Unable to find missing disk store to revoke");
+ gfsh.executeAndAssertThat("revoke missing-disk-store --id=unknown-diskstore").statusIsError()
+ .containsOutput("Unable to find missing disk store to revoke");
}
@Test
@@ -435,11 +429,7 @@ public class DiskStoreCommandsDUnitTest {
createDiskStoreAndRegion(server1, 1);
- server1.invoke(() -> {
- Cache cache = ClusterStartupRule.getCache();
- Region r = cache.getRegion(REGION_1);
- r.put("A", "B");
- });
+ server1.invoke(dataProducer());
String diskDirs = new File(server1.getWorkingDir(), DISKSTORE).getAbsolutePath();
gfsh.executeAndAssertThat(
@@ -456,4 +446,19 @@ public class DiskStoreCommandsDUnitTest {
DISKSTORE, diskDirs))
.statusIsError().containsOutput("The disk store does not contain a region named: /INVALID");
}
+
+ @Test
+ @Parameters({"compact offline-disk-store", "describe offline-disk-store",
+ "upgrade offline-disk-store", "validate offline-disk-store",
+ "alter disk-store --region=testRegion --enable-statistics=true"})
+ public void offlineDiskStoreCommandShouldNotCreateFolderIfDiskStoreDoesNotExist(
+ String baseCommand) {
+ Path nonExistingDiskStorePath =
+ Paths.get(tempDir.getRoot().getAbsolutePath() + File.separator + "nonExistingDiskStore");
+ assertThat(Files.exists(nonExistingDiskStorePath)).isFalse();
+ gfsh.executeAndAssertThat(baseCommand + " --name=" + DISKSTORE + " --disk-dirs="
+ + nonExistingDiskStorePath.toAbsolutePath().toString()).statusIsError()
+ .containsOutput("Could not find disk-dirs:");
+ assertThat(Files.exists(nonExistingDiskStorePath)).isFalse();
+ }
}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreFactoryJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreFactoryIntegrationTest.java
similarity index 55%
rename from geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreFactoryJUnitTest.java
rename to geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreFactoryIntegrationTest.java
index 2f15690..63748b0 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreFactoryJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreFactoryIntegrationTest.java
@@ -14,29 +14,33 @@
*/
package org.apache.geode.internal.cache;
+import static org.apache.geode.cache.DiskStoreFactory.DEFAULT_DISK_DIR_SIZE;
import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_TIME_STATISTICS;
import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_ARCHIVE_FILE;
import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_SAMPLING_ENABLED;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.assertj.core.api.Assertions.fail;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.io.File;
-import java.io.FilenameFilter;
+import java.io.IOException;
+import java.nio.file.Files;
import java.util.Arrays;
import java.util.Properties;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.apache.geode.cache.AttributesFactory;
import org.apache.geode.cache.Cache;
@@ -46,35 +50,36 @@ import org.apache.geode.cache.DiskStore;
import org.apache.geode.cache.DiskStoreFactory;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.distributed.DistributedSystem;
/**
* Tests DiskStoreFactory
*/
-public class DiskStoreFactoryJUnitTest {
+public class DiskStoreFactoryIntegrationTest {
private static Cache cache = null;
-
- private static DistributedSystem ds = null;
private static Properties props = new Properties();
+ @Rule
+ public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
static {
props.setProperty(MCAST_PORT, "0");
props.setProperty(LOCATORS, "");
props.setProperty(LOG_LEVEL, "config"); // to keep diskPerf logs smaller
props.setProperty(STATISTIC_SAMPLING_ENABLED, "true");
props.setProperty(ENABLE_TIME_STATISTICS, "true");
- props.setProperty(STATISTIC_ARCHIVE_FILE, "stats.gfs");
}
@Before
public void setUp() throws Exception {
+ props.setProperty(STATISTIC_ARCHIVE_FILE,
+ temporaryFolder.getRoot().getAbsolutePath() + File.separator + "stats.gfs");
createCache();
}
private Cache createCache() {
cache = new CacheFactory(props).create();
- ds = cache.getDistributedSystem();
+
return cache;
}
@@ -90,25 +95,28 @@ public class DiskStoreFactoryJUnitTest {
public void testGetDefaultInstance() {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testGetDefaultInstance";
- assertEquals(null, cache.findDiskStore(name));
+ assertThat(cache.findDiskStore(name)).isNull();
DiskStore ds = dsf.create(name);
- assertEquals(ds, cache.findDiskStore(name));
- assertEquals(name, ds.getName());
- assertEquals(DiskStoreFactory.DEFAULT_AUTO_COMPACT, ds.getAutoCompact());
- assertEquals(DiskStoreFactory.DEFAULT_COMPACTION_THRESHOLD, ds.getCompactionThreshold());
- assertEquals(DiskStoreFactory.DEFAULT_ALLOW_FORCE_COMPACTION, ds.getAllowForceCompaction());
- assertEquals(DiskStoreFactory.DEFAULT_MAX_OPLOG_SIZE, ds.getMaxOplogSize());
- assertEquals(DiskStoreFactory.DEFAULT_TIME_INTERVAL, ds.getTimeInterval());
- assertEquals(DiskStoreFactory.DEFAULT_WRITE_BUFFER_SIZE, ds.getWriteBufferSize());
- assertEquals(DiskStoreFactory.DEFAULT_QUEUE_SIZE, ds.getQueueSize());
- if (!Arrays.equals(DiskStoreFactory.DEFAULT_DISK_DIRS, ds.getDiskDirs())) {
- fail("expected=" + Arrays.toString(DiskStoreFactory.DEFAULT_DISK_DIRS) + " had="
- + Arrays.toString(ds.getDiskDirs()));
- }
- if (!Arrays.equals(DiskStoreFactory.DEFAULT_DISK_DIR_SIZES, ds.getDiskDirSizes())) {
- fail("expected=" + Arrays.toString(DiskStoreFactory.DEFAULT_DISK_DIR_SIZES) + " had="
- + Arrays.toString(ds.getDiskDirSizes()));
- }
+
+ assertThat(cache.findDiskStore(name)).isEqualTo(ds);
+ assertThat(ds.getName()).isEqualTo(name);
+ assertThat(ds.getAutoCompact()).isEqualTo(DiskStoreFactory.DEFAULT_AUTO_COMPACT);
+ assertThat(ds.getCompactionThreshold())
+ .isEqualTo(DiskStoreFactory.DEFAULT_COMPACTION_THRESHOLD);
+ assertThat(ds.getAllowForceCompaction())
+ .isEqualTo(DiskStoreFactory.DEFAULT_ALLOW_FORCE_COMPACTION);
+ assertThat(ds.getMaxOplogSize()).isEqualTo(DiskStoreFactory.DEFAULT_MAX_OPLOG_SIZE);
+ assertThat(ds.getTimeInterval()).isEqualTo(DiskStoreFactory.DEFAULT_TIME_INTERVAL);
+ assertThat(ds.getWriteBufferSize()).isEqualTo(DiskStoreFactory.DEFAULT_WRITE_BUFFER_SIZE);
+ assertThat(ds.getQueueSize()).isEqualTo(DiskStoreFactory.DEFAULT_QUEUE_SIZE);
+ assertThat(Arrays.equals(ds.getDiskDirs(), DiskStoreFactory.DEFAULT_DISK_DIRS))
+ .as("expected=" + Arrays.toString(DiskStoreFactory.DEFAULT_DISK_DIRS) + " had="
+ + Arrays.toString(ds.getDiskDirs()))
+ .isTrue();
+ assertThat(Arrays.equals(ds.getDiskDirSizes(), DiskStoreFactory.DEFAULT_DISK_DIR_SIZES))
+ .as("expected=" + Arrays.toString(DiskStoreFactory.DEFAULT_DISK_DIR_SIZES) + " had="
+ + Arrays.toString(ds.getDiskDirSizes()))
+ .isTrue();
}
@Test
@@ -122,13 +130,16 @@ public class DiskStoreFactoryJUnitTest {
.setTimeInterval(DiskStoreFactory.DEFAULT_TIME_INTERVAL + 1)
.setWriteBufferSize(DiskStoreFactory.DEFAULT_WRITE_BUFFER_SIZE + 1)
.setQueueSize(DiskStoreFactory.DEFAULT_QUEUE_SIZE + 1).create(name);
- assertEquals(!DiskStoreFactory.DEFAULT_AUTO_COMPACT, ds.getAutoCompact());
- assertEquals(DiskStoreFactory.DEFAULT_COMPACTION_THRESHOLD / 2, ds.getCompactionThreshold());
- assertEquals(!DiskStoreFactory.DEFAULT_ALLOW_FORCE_COMPACTION, ds.getAllowForceCompaction());
- assertEquals(DiskStoreFactory.DEFAULT_MAX_OPLOG_SIZE + 1, ds.getMaxOplogSize());
- assertEquals(DiskStoreFactory.DEFAULT_TIME_INTERVAL + 1, ds.getTimeInterval());
- assertEquals(DiskStoreFactory.DEFAULT_WRITE_BUFFER_SIZE + 1, ds.getWriteBufferSize());
- assertEquals(DiskStoreFactory.DEFAULT_QUEUE_SIZE + 1, ds.getQueueSize());
+
+ assertThat(ds.getAutoCompact()).isEqualTo(!DiskStoreFactory.DEFAULT_AUTO_COMPACT);
+ assertThat(ds.getCompactionThreshold())
+ .isEqualTo(DiskStoreFactory.DEFAULT_COMPACTION_THRESHOLD / 2);
+ assertThat(ds.getAllowForceCompaction())
+ .isEqualTo(!DiskStoreFactory.DEFAULT_ALLOW_FORCE_COMPACTION);
+ assertThat(ds.getMaxOplogSize()).isEqualTo(DiskStoreFactory.DEFAULT_MAX_OPLOG_SIZE + 1);
+ assertThat(ds.getTimeInterval()).isEqualTo(DiskStoreFactory.DEFAULT_TIME_INTERVAL + 1);
+ assertThat(ds.getWriteBufferSize()).isEqualTo(DiskStoreFactory.DEFAULT_WRITE_BUFFER_SIZE + 1);
+ assertThat(ds.getQueueSize()).isEqualTo(DiskStoreFactory.DEFAULT_QUEUE_SIZE + 1);
}
@Test
@@ -136,21 +147,16 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testCompactionThreshold1";
DiskStore ds = dsf.setCompactionThreshold(0).create(name);
- assertEquals(0, ds.getCompactionThreshold());
+ assertThat(ds.getCompactionThreshold()).isEqualTo(0);
name = "testCompactionThreshold2";
ds = dsf.setCompactionThreshold(100).create(name);
- assertEquals(100, ds.getCompactionThreshold());
+ assertThat(ds.getCompactionThreshold()).isEqualTo(100);
+
// check illegal stuff
- try {
- dsf.setCompactionThreshold(-1);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
- try {
- dsf.setCompactionThreshold(101);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ assertThatThrownBy(() -> dsf.setCompactionThreshold(-1))
+ .isInstanceOf(IllegalArgumentException.class);
+ assertThatThrownBy(() -> dsf.setCompactionThreshold(101))
+ .isInstanceOf(IllegalArgumentException.class);
}
@Test
@@ -158,16 +164,13 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testQueueSize";
DiskStore ds = dsf.setQueueSize(0).create(name);
- assertEquals(0, ds.getQueueSize());
+ assertThat(ds.getQueueSize()).isEqualTo(0);
name = "testQueueSize2";
ds = dsf.setQueueSize(Integer.MAX_VALUE).create(name);
- assertEquals(Integer.MAX_VALUE, ds.getQueueSize());
+ assertThat(ds.getQueueSize()).isEqualTo(Integer.MAX_VALUE);
+
// check illegal stuff
- try {
- dsf.setQueueSize(-1);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ assertThatThrownBy(() -> dsf.setQueueSize(-1)).isInstanceOf(IllegalArgumentException.class);
}
@Test
@@ -175,16 +178,14 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testWriteBufferSize";
DiskStore ds = dsf.setWriteBufferSize(0).create(name);
- assertEquals(0, ds.getWriteBufferSize());
+ assertThat(ds.getWriteBufferSize()).isEqualTo(0);
name = "testWriteBufferSize2";
ds = dsf.setWriteBufferSize(Integer.MAX_VALUE).create(name);
- assertEquals(Integer.MAX_VALUE, ds.getWriteBufferSize());
+ assertThat(ds.getWriteBufferSize()).isEqualTo(Integer.MAX_VALUE);
+
// check illegal stuff
- try {
- dsf.setWriteBufferSize(-1);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ assertThatThrownBy(() -> dsf.setWriteBufferSize(-1))
+ .isInstanceOf(IllegalArgumentException.class);
}
@Test
@@ -192,16 +193,13 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testTimeInterval";
DiskStore ds = dsf.setTimeInterval(0).create(name);
- assertEquals(0, ds.getTimeInterval());
+ assertThat(ds.getTimeInterval()).isEqualTo(0);
name = "testTimeInterval2";
ds = dsf.setTimeInterval(Long.MAX_VALUE).create(name);
- assertEquals(Long.MAX_VALUE, ds.getTimeInterval());
+ assertThat(ds.getTimeInterval()).isEqualTo(Long.MAX_VALUE);
+
// check illegal stuff
- try {
- dsf.setTimeInterval(-1);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ assertThatThrownBy(() -> dsf.setTimeInterval(-1)).isInstanceOf(IllegalArgumentException.class);
}
@Test
@@ -209,22 +207,16 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testMaxOplogSize";
DiskStore ds = dsf.setMaxOplogSize(0).create(name);
- assertEquals(0, ds.getMaxOplogSize());
+ assertThat(ds.getMaxOplogSize()).isEqualTo(0);
name = "testMaxOplogSize2";
long max = Long.MAX_VALUE / (1024 * 1024);
ds = dsf.setMaxOplogSize(max).create(name);
- assertEquals(max, ds.getMaxOplogSize());
+ assertThat(ds.getMaxOplogSize()).isEqualTo(max);
+
// check illegal stuff
- try {
- dsf.setMaxOplogSize(-1);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
- try {
- dsf.setMaxOplogSize(max + 1);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ assertThatThrownBy(() -> dsf.setMaxOplogSize(-1)).isInstanceOf(IllegalArgumentException.class);
+ assertThatThrownBy(() -> dsf.setMaxOplogSize(max + 1))
+ .isInstanceOf(IllegalArgumentException.class);
}
@Test
@@ -248,21 +240,13 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testDestroy";
DiskStore ds = dsf.create(name);
-
Region region = cache.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT)
.setDiskStoreName("testDestroy").create("region");
-
- try {
- ds.destroy();
- fail("Should have thrown an exception");
- } catch (IllegalStateException expected) {
- // expected
- }
-
- region.destroyRegion();
+ assertThatThrownBy(ds::destroy).isInstanceOf(IllegalStateException.class);
// This should now work
- ds.destroy();
+ region.destroyRegion();
+ assertThatCode(ds::destroy).doesNotThrowAnyException();
}
@Test
@@ -270,14 +254,12 @@ public class DiskStoreFactoryJUnitTest {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testDestroy";
DiskStore ds = dsf.create(name);
-
Region region = cache.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT)
.setDiskStoreName("testDestroy").create("region");
- region.close();
-
// This should now work
- ds.destroy();
+ region.close();
+ assertThatCode(ds::destroy).doesNotThrowAnyException();
}
@Test
@@ -288,18 +270,11 @@ public class DiskStoreFactoryJUnitTest {
Region region = cache.createRegionFactory(RegionShortcut.LOCAL_OVERFLOW)
.setDiskStoreName("testDestroy").create("region");
-
- try {
- ds.destroy();
- fail("Should have thrown an exception");
- } catch (IllegalStateException expected) {
- System.err.println("Got expected :" + expected.getMessage());
- }
-
- region.close();
+ assertThatThrownBy(ds::destroy).isInstanceOf(IllegalStateException.class);
// The destroy should now work.
- ds.destroy();
+ region.close();
+ assertThatCode(ds::destroy).doesNotThrowAnyException();
}
@Test
@@ -308,27 +283,29 @@ public class DiskStoreFactoryJUnitTest {
dsf.setAllowForceCompaction(true);
String name = "testForceCompaction";
DiskStore ds = dsf.create(name);
- assertEquals(false, ds.forceCompaction());
+ assertThat(ds.forceCompaction()).isFalse();
}
@Test
+ @SuppressWarnings("deprecation")
public void testMissingInitFile() {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testMissingInitFile";
DiskStore diskStore = dsf.create(name);
File ifFile = new File(diskStore.getDiskDirs()[0], "BACKUP" + name + DiskInitFile.IF_FILE_EXT);
- assertTrue(ifFile.exists());
- AttributesFactory af = new AttributesFactory();
+ assertThat(ifFile.exists()).isTrue();
+ AttributesFactory<String, String> af = new AttributesFactory<>();
af.setDiskStoreName(name);
af.setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
cache.createRegion("r", af.create());
cache.close();
- assertTrue(ifFile.exists());
- assertTrue(ifFile.delete());
- assertFalse(ifFile.exists());
+ assertThat(ifFile.exists()).isTrue();
+ assertThat(ifFile.delete()).isTrue();
+ assertThat(ifFile.exists()).isFalse();
cache = createCache();
dsf = cache.createDiskStoreFactory();
- assertEquals(null, ((GemFireCacheImpl) cache).findDiskStore(name));
+ assertThat(cache.findDiskStore(name)).isNull();
+
try {
dsf.create(name);
fail("expected IllegalStateException");
@@ -343,39 +320,33 @@ public class DiskStoreFactoryJUnitTest {
File[] dirs = diskStore.getDiskDirs();
for (File dir : dirs) {
- File[] files = dir.listFiles(new FilenameFilter() {
-
- @Override
- public boolean accept(File dir, String name) {
- return name.startsWith("BACKUP" + diskStoreName);
- }
-
- });
- for (File file : files) {
- file.delete();
- }
+ File[] files = dir.listFiles((file, name) -> name.startsWith("BACKUP" + diskStoreName));
+ assertThat(files).isNotNull();
+ Arrays.stream(files).forEach(file -> assertThat(file.delete()).isTrue());
}
}
@Test
+ @SuppressWarnings("deprecation")
public void testMissingCrfFile() {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testMissingCrfFile";
DiskStore diskStore = dsf.create(name);
File crfFile = new File(diskStore.getDiskDirs()[0], "BACKUP" + name + "_1.crf");
- AttributesFactory af = new AttributesFactory();
+ AttributesFactory<String, String> af = new AttributesFactory<>();
af.setDiskStoreName(name);
af.setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
- Region r = cache.createRegion("r", af.create());
+ Region<String, String> r = cache.createRegion("r", af.create());
r.put("key", "value");
- assertTrue(crfFile.exists());
+ assertThat(crfFile.exists()).isTrue();
cache.close();
- assertTrue(crfFile.exists());
- assertTrue(crfFile.delete());
- assertFalse(crfFile.exists());
+ assertThat(crfFile.exists()).isTrue();
+ assertThat(crfFile.delete()).isTrue();
+ assertThat(crfFile.exists()).isFalse();
cache = createCache();
dsf = cache.createDiskStoreFactory();
- assertEquals(null, ((GemFireCacheImpl) cache).findDiskStore(name));
+ assertThat(cache.findDiskStore(name)).isNull();
+
try {
dsf.create(name);
fail("expected IllegalStateException");
@@ -386,24 +357,26 @@ public class DiskStoreFactoryJUnitTest {
}
@Test
+ @SuppressWarnings("deprecation")
public void testMissingDrfFile() {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
String name = "testMissingDrfFile";
DiskStore diskStore = dsf.create(name);
File drfFile = new File(diskStore.getDiskDirs()[0], "BACKUP" + name + "_1.drf");
- AttributesFactory af = new AttributesFactory();
+ AttributesFactory<String, String> af = new AttributesFactory<>();
af.setDiskStoreName(name);
af.setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
- Region r = cache.createRegion("r", af.create());
+ Region<String, String> r = cache.createRegion("r", af.create());
r.put("key", "value");
- assertTrue(drfFile.exists());
+ assertThat(drfFile.exists()).isTrue();
cache.close();
- assertTrue(drfFile.exists());
- assertTrue(drfFile.delete());
- assertFalse(drfFile.exists());
+ assertThat(drfFile.exists()).isTrue();
+ assertThat(drfFile.delete()).isTrue();
+ assertThat(drfFile.exists()).isFalse();
cache = createCache();
dsf = cache.createDiskStoreFactory();
- assertEquals(null, ((GemFireCacheImpl) cache).findDiskStore(name));
+ assertThat(cache.findDiskStore(name)).isNull();
+
try {
dsf.create(name);
fail("expected IllegalStateException");
@@ -414,20 +387,20 @@ public class DiskStoreFactoryJUnitTest {
}
@Test
+ @SuppressWarnings("deprecation")
public void testRedefiningDefaultDiskStore() {
DiskStoreFactory dsf = cache.createDiskStoreFactory();
dsf.setAutoCompact(!DiskStoreFactory.DEFAULT_AUTO_COMPACT);
- String name = "testMissingDrfFile";
- assertEquals(null, cache.findDiskStore(DiskStoreFactory.DEFAULT_DISK_STORE_NAME));
+ assertThat(cache.findDiskStore(DiskStoreFactory.DEFAULT_DISK_STORE_NAME)).isNull();
DiskStore diskStore = dsf.create(DiskStoreFactory.DEFAULT_DISK_STORE_NAME);
- AttributesFactory af = new AttributesFactory();
+ AttributesFactory<String, String> af = new AttributesFactory<>();
af.setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
- Region r = cache.createRegion("r", af.create());
+ Region<String, String> r = cache.createRegion("r", af.create());
r.put("key", "value");
DiskStore ds = ((LocalRegion) r).getDiskStore();
- assertEquals(ds, cache.findDiskStore(DiskStoreFactory.DEFAULT_DISK_STORE_NAME));
- assertEquals(DiskStoreFactory.DEFAULT_DISK_STORE_NAME, ds.getName());
- assertEquals(!DiskStoreFactory.DEFAULT_AUTO_COMPACT, ds.getAutoCompact());
+ assertThat(cache.findDiskStore(DiskStoreFactory.DEFAULT_DISK_STORE_NAME)).isEqualTo(ds);
+ assertThat(ds.getName()).isEqualTo(DiskStoreFactory.DEFAULT_DISK_STORE_NAME);
+ assertThat(ds.getAutoCompact()).isEqualTo(!DiskStoreFactory.DEFAULT_AUTO_COMPACT);
cache.close();
// if test passed clean up files
removeFiles(diskStore);
@@ -444,10 +417,45 @@ public class DiskStoreFactoryJUnitTest {
} catch (RuntimeException e) {
threwException = true;
}
- assertTrue(threwException);
+ assertThat(threwException).isTrue();
verify(diskStore, times(1)).close();
}
- // setDiskDirs and setDiskDirsAndSizes are tested in DiskRegionIllegalArguementsJUnitTest
- // also setDiskUsageWarningPercentage and setDiskUsageCriticalPercentage
+ @Test
+ public void checkIfDirectoriesExistShouldCreateDirectoriesWhenTheyDoNotExist()
+ throws IOException {
+ File[] diskDirs = new File[3];
+ diskDirs[0] = new File(
+ temporaryFolder.getRoot().getAbsolutePath() + File.separator + "randomNonExistingDiskDir");
+ diskDirs[1] = temporaryFolder.newFolder("existingDiskDir");
+ diskDirs[2] = new File(temporaryFolder.getRoot().getAbsolutePath() + File.separator
+ + "anotherRandomNonExistingDiskDir");
+
+ assertThat(Files.exists(diskDirs[0].toPath())).isFalse();
+ assertThat(Files.exists(diskDirs[1].toPath())).isTrue();
+ assertThat(Files.exists(diskDirs[2].toPath())).isFalse();
+ DiskStoreFactoryImpl.checkIfDirectoriesExist(diskDirs);
+ Arrays.stream(diskDirs).forEach(diskDir -> assertThat(Files.exists(diskDir.toPath())).isTrue());
+ }
+
+ @Test
+ public void setDiskDirsShouldInitializeInternalMetadataAndCreateDirectoriesWhenTheyDoNotExist()
+ throws IOException {
+ File[] diskDirs = new File[3];
+ diskDirs[0] =
+ new File(temporaryFolder.getRoot().getAbsolutePath() + File.separator + "randomDiskDir");
+ diskDirs[1] = temporaryFolder.newFolder("existingDiskDir");
+ diskDirs[2] = new File(
+ temporaryFolder.getRoot().getAbsolutePath() + File.separator + "anotherRandomDiskDir");
+ assertThat(Files.exists(diskDirs[0].toPath())).isFalse();
+ assertThat(Files.exists(diskDirs[1].toPath())).isTrue();
+ assertThat(Files.exists(diskDirs[2].toPath())).isFalse();
+
+ DiskStoreFactoryImpl factoryImpl =
+ (DiskStoreFactoryImpl) cache.createDiskStoreFactory().setDiskDirs(diskDirs);
+ Arrays.stream(diskDirs).forEach(diskDir -> assertThat(Files.exists(diskDir.toPath())).isTrue());
+ assertThat(factoryImpl.getDiskStoreAttributes().diskDirs).isEqualTo(diskDirs);
+ assertThat(factoryImpl.getDiskStoreAttributes().diskDirSizes)
+ .isEqualTo(new int[] {DEFAULT_DISK_DIR_SIZE, DEFAULT_DISK_DIR_SIZE, DEFAULT_DISK_DIR_SIZE});
+ }
}
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/AlterDiskStoreJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/commands/AlterDiskStoreCommandIntegrationTest.java
similarity index 87%
rename from geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/AlterDiskStoreJUnitTest.java
rename to geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/commands/AlterDiskStoreCommandIntegrationTest.java
index f2f0440..9981e61 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/AlterDiskStoreJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/commands/AlterDiskStoreCommandIntegrationTest.java
@@ -20,13 +20,18 @@ import static org.mockito.Mockito.spy;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.apache.geode.management.cli.GfshCommand;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.test.junit.rules.GfshParserRule;
-public class AlterDiskStoreJUnitTest {
+public class AlterDiskStoreCommandIntegrationTest {
+
+ @Rule
+ public TemporaryFolder tempDir = new TemporaryFolder();
+
@Rule
public GfshParserRule gfsh = new GfshParserRule();
@@ -38,11 +43,11 @@ public class AlterDiskStoreJUnitTest {
}
@Test
- public void removeOptionMustBeUsedAlone() throws Exception {
+ public void removeOptionMustBeUsedAlone() {
CommandStringBuilder csb = new CommandStringBuilder(CliStrings.ALTER_DISK_STORE);
csb.addOption(CliStrings.ALTER_DISK_STORE__DISKSTORENAME, "diskStoreName");
csb.addOption(CliStrings.ALTER_DISK_STORE__REGIONNAME, "regionName");
- csb.addOption(CliStrings.ALTER_DISK_STORE__DISKDIRS, "./someDirectory");
+ csb.addOption(CliStrings.ALTER_DISK_STORE__DISKDIRS, tempDir.getRoot().toString());
csb.addOption(CliStrings.ALTER_DISK_STORE__CONCURRENCY__LEVEL, "5");
csb.addOption(CliStrings.ALTER_DISK_STORE__REMOVE, "true");
String commandString = csb.toString();
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterOfflineDiskStoreCommand.java
index 4ffcc63..7b5d204 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterOfflineDiskStoreCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterOfflineDiskStoreCommand.java
@@ -12,7 +12,6 @@
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
-
package org.apache.geode.management.internal.cli.commands;
import java.io.File;
@@ -30,7 +29,7 @@ import org.apache.geode.management.internal.cli.result.model.ResultModel;
public class AlterOfflineDiskStoreCommand extends SingleGfshCommand {
@CliCommand(value = CliStrings.ALTER_DISK_STORE, help = CliStrings.ALTER_DISK_STORE__HELP)
- @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GEODE_DISKSTORE})
+ @CliMetaData(shellOnly = true, relatedTopic = CliStrings.TOPIC_GEODE_DISKSTORE)
public ResultModel alterOfflineDiskStore(
@CliOption(key = CliStrings.ALTER_DISK_STORE__DISKSTORENAME, mandatory = true,
help = CliStrings.ALTER_DISK_STORE__DISKSTORENAME__HELP) String diskStoreName,
@@ -60,6 +59,13 @@ public class AlterOfflineDiskStoreCommand extends SingleGfshCommand {
help = CliStrings.ALTER_DISK_STORE__REMOVE__HELP, specifiedDefaultValue = "true",
unspecifiedDefaultValue = "false") boolean remove) {
+ String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
+ if (validatedDirectories != null) {
+ throw new IllegalArgumentException(
+ "Could not find " + CliStrings.ALTER_DISK_STORE__DISKDIRS + ": \""
+ + validatedDirectories + "\"");
+ }
+
try {
File[] dirs = null;
@@ -124,5 +130,4 @@ public class AlterOfflineDiskStoreCommand extends SingleGfshCommand {
return ResultModel.createError(e.getMessage());
}
}
-
}
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java
index 3c1d974..f6a7a55 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactOfflineDiskStoreCommand.java
@@ -12,7 +12,6 @@
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
-
package org.apache.geode.management.internal.cli.commands;
import java.io.BufferedReader;
@@ -39,7 +38,7 @@ import org.apache.geode.management.internal.cli.util.DiskStoreCompacter;
public class CompactOfflineDiskStoreCommand extends SingleGfshCommand {
@CliCommand(value = CliStrings.COMPACT_OFFLINE_DISK_STORE,
help = CliStrings.COMPACT_OFFLINE_DISK_STORE__HELP)
- @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GEODE_DISKSTORE})
+ @CliMetaData(shellOnly = true, relatedTopic = CliStrings.TOPIC_GEODE_DISKSTORE)
public ResultModel compactOfflineDiskStore(
@CliOption(key = CliStrings.COMPACT_OFFLINE_DISK_STORE__NAME, mandatory = true,
help = CliStrings.COMPACT_OFFLINE_DISK_STORE__NAME__HELP) String diskStoreName,
@@ -50,20 +49,20 @@ public class CompactOfflineDiskStoreCommand extends SingleGfshCommand {
help = CliStrings.COMPACT_OFFLINE_DISK_STORE__MAXOPLOGSIZE__HELP) long maxOplogSize,
@CliOption(key = CliStrings.COMPACT_OFFLINE_DISK_STORE__J,
help = CliStrings.COMPACT_OFFLINE_DISK_STORE__J__HELP) String[] jvmProps) {
+
+ String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
+ if (validatedDirectories != null) {
+ throw new IllegalArgumentException(
+ "Could not find " + CliStrings.COMPACT_OFFLINE_DISK_STORE__DISKDIRS + ": \""
+ + validatedDirectories + "\"");
+ }
+
ResultModel result = new ResultModel();
InfoResultModel infoResult = result.addInfo();
LogWrapper logWrapper = LogWrapper.getInstance(getCache());
-
Process compactorProcess = null;
try {
- String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
- if (validatedDirectories != null) {
- throw new IllegalArgumentException(
- "Could not find " + CliStrings.COMPACT_OFFLINE_DISK_STORE__DISKDIRS + ": \""
- + validatedDirectories + "\"");
- }
-
List<String> commandList = new ArrayList<>();
commandList.add(System.getProperty("java.home") + File.separatorChar + "bin"
+ File.separatorChar + "java");
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeOfflineDiskStoreCommand.java
index e73d919..2411b60 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeOfflineDiskStoreCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeOfflineDiskStoreCommand.java
@@ -12,7 +12,6 @@
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
-
package org.apache.geode.management.internal.cli.commands;
import java.io.ByteArrayOutputStream;
@@ -33,7 +32,7 @@ import org.apache.geode.management.internal.cli.result.model.ResultModel;
public class DescribeOfflineDiskStoreCommand extends SingleGfshCommand {
@CliCommand(value = CliStrings.DESCRIBE_OFFLINE_DISK_STORE,
help = CliStrings.DESCRIBE_OFFLINE_DISK_STORE__HELP)
- @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GEODE_DISKSTORE})
+ @CliMetaData(shellOnly = true, relatedTopic = CliStrings.TOPIC_GEODE_DISKSTORE)
public ResultModel describeOfflineDiskStore(
@CliOption(key = CliStrings.DESCRIBE_OFFLINE_DISK_STORE__DISKSTORENAME, mandatory = true,
help = CliStrings.DESCRIBE_OFFLINE_DISK_STORE__DISKSTORENAME__HELP) String diskStoreName,
@@ -44,6 +43,13 @@ public class DescribeOfflineDiskStoreCommand extends SingleGfshCommand {
@CliOption(key = CliStrings.DESCRIBE_OFFLINE_DISK_STORE__REGIONNAME,
help = CliStrings.DESCRIBE_OFFLINE_DISK_STORE__REGIONNAME__HELP) String regionName) {
+ String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
+ if (validatedDirectories != null) {
+ throw new IllegalArgumentException(
+ "Could not find " + CliStrings.DESCRIBE_OFFLINE_DISK_STORE__DISKDIRS + ": \""
+ + validatedDirectories + "\"");
+ }
+
try {
final File[] dirs = new File[diskDirs.length];
for (int i = 0; i < diskDirs.length; i++) {
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java
index 7e48c08..f1496ad 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/UpgradeOfflineDiskStoreCommand.java
@@ -12,7 +12,6 @@
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
-
package org.apache.geode.management.internal.cli.commands;
import java.io.BufferedReader;
@@ -39,7 +38,7 @@ import org.apache.geode.management.internal.cli.util.DiskStoreUpgrader;
public class UpgradeOfflineDiskStoreCommand extends SingleGfshCommand {
@CliCommand(value = CliStrings.UPGRADE_OFFLINE_DISK_STORE,
help = CliStrings.UPGRADE_OFFLINE_DISK_STORE__HELP)
- @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GEODE_DISKSTORE})
+ @CliMetaData(shellOnly = true, relatedTopic = CliStrings.TOPIC_GEODE_DISKSTORE)
public ResultModel upgradeOfflineDiskStore(
@CliOption(key = CliStrings.UPGRADE_OFFLINE_DISK_STORE__NAME, mandatory = true,
help = CliStrings.UPGRADE_OFFLINE_DISK_STORE__NAME__HELP) String diskStoreName,
@@ -51,6 +50,13 @@ public class UpgradeOfflineDiskStoreCommand extends SingleGfshCommand {
@CliOption(key = CliStrings.UPGRADE_OFFLINE_DISK_STORE__J,
help = CliStrings.UPGRADE_OFFLINE_DISK_STORE__J__HELP) String[] jvmProps) {
+ String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
+ if (validatedDirectories != null) {
+ throw new IllegalArgumentException(
+ "Could not find " + CliStrings.UPGRADE_OFFLINE_DISK_STORE__DISKDIRS + ": \""
+ + validatedDirectories + "\"");
+ }
+
ResultModel result = new ResultModel();
InfoResultModel infoResult = result.addInfo();
LogWrapper logWrapper = LogWrapper.getInstance(getCache());
@@ -58,13 +64,6 @@ public class UpgradeOfflineDiskStoreCommand extends SingleGfshCommand {
Process upgraderProcess = null;
try {
- String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
- if (validatedDirectories != null) {
- throw new IllegalArgumentException(
- "Could not find " + CliStrings.UPGRADE_OFFLINE_DISK_STORE__DISKDIRS + ": \""
- + validatedDirectories + "\"");
- }
-
List<String> commandList = new ArrayList<>();
commandList.add(System.getProperty("java.home") + File.separatorChar + "bin"
+ File.separatorChar + "java");
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ValidateDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ValidateDiskStoreCommand.java
index 077b576..efbff96 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ValidateDiskStoreCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ValidateDiskStoreCommand.java
@@ -12,7 +12,6 @@
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
-
package org.apache.geode.management.internal.cli.commands;
import java.io.BufferedReader;
@@ -38,7 +37,7 @@ import org.apache.geode.management.internal.cli.util.DiskStoreValidater;
public class ValidateDiskStoreCommand extends GfshCommand {
@CliCommand(value = CliStrings.VALIDATE_DISK_STORE, help = CliStrings.VALIDATE_DISK_STORE__HELP)
- @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GEODE_DISKSTORE})
+ @CliMetaData(shellOnly = true, relatedTopic = CliStrings.TOPIC_GEODE_DISKSTORE)
public ResultModel validateDiskStore(
@CliOption(key = CliStrings.VALIDATE_DISK_STORE__NAME, mandatory = true,
help = CliStrings.VALIDATE_DISK_STORE__NAME__HELP) String diskStoreName,
@@ -47,6 +46,13 @@ public class ValidateDiskStoreCommand extends GfshCommand {
@CliOption(key = CliStrings.VALIDATE_DISK_STORE__J,
help = CliStrings.VALIDATE_DISK_STORE__J__HELP) String[] jvmProps) {
+ String validatedDirectories = DiskStoreCommandsUtils.validatedDirectories(diskDirs);
+ if (validatedDirectories != null) {
+ throw new IllegalArgumentException(
+ "Could not find " + CliStrings.VALIDATE_DISK_STORE__DISKDIRS + ": \""
+ + validatedDirectories + "\"");
+ }
+
ResultModel result = new ResultModel();
InfoResultModel infoResult = result.addInfo();
LogWrapper logWrapper = LogWrapper.getInstance(getCache());