You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by je...@apache.org on 2018/04/19 19:04:21 UTC

[geode] branch develop updated: GEODE-5110: Remove use of subSections in CompositeResultData structures (#1826)

This is an automated email from the ASF dual-hosted git repository.

jensdeppe 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 8ec0c53  GEODE-5110: Remove use of subSections in CompositeResultData structures (#1826)
8ec0c53 is described below

commit 8ec0c53bd47a5519e43153d0ff75e1fc84cde96a
Author: Jens Deppe <jd...@pivotal.io>
AuthorDate: Thu Apr 19 12:04:16 2018 -0700

    GEODE-5110: Remove use of subSections in CompositeResultData structures (#1826)
---
 .../cli/commands/CompactDiskStoreCommand.java      |  12 +--
 .../cli/commands/DescribeConfigCommand.java        |  20 +---
 .../cli/commands/DescribeRegionCommand.java        |   4 +-
 .../internal/cli/result/CompositeResultData.java   | 113 ---------------------
 .../cli/commands/DescribeRegionDUnitTest.java      |  14 ++-
 .../cli/commands/DescribeRegionJUnitTest.java      |  12 +--
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |  39 ++++++-
 7 files changed, 59 insertions(+), 155 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java
index 18fff7f..328fcb4 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CompactDiskStoreCommand.java
@@ -136,17 +136,15 @@ public class CompactDiskStoreCommand extends InternalGfshCommand {
             Set<Map.Entry<DistributedMember, PersistentID>> entries = overallCompactInfo.entrySet();
 
             for (Map.Entry<DistributedMember, PersistentID> entry : entries) {
-              String memberId = entry.getKey().getId();
+              String memberId = entry.getKey().getName();
               section = compositeResultData.addSection(memberId);
-              section.addData("On Member", memberId);
+              section.setHeader("On Member: " + memberId);
 
               PersistentID persistentID = entry.getValue();
               if (persistentID != null) {
-                CompositeResultData.SectionResultData subSection =
-                    section.addSection("DiskStore" + memberId);
-                subSection.addData("UUID", persistentID.getUUID());
-                subSection.addData("Host", persistentID.getHost().getHostName());
-                subSection.addData("Directory", persistentID.getDirectory());
+                section.addData("UUID", persistentID.getUUID());
+                section.addData("Host", persistentID.getHost().getHostName());
+                section.addData("Directory", persistentID.getDirectory());
               }
             }
             compositeResultData.setHeader("Compacted " + diskStoreName + groupInfo);
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeConfigCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeConfigCommand.java
index 100fdfb..2029584 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeConfigCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeConfigCommand.java
@@ -75,7 +75,7 @@ public class DescribeConfigCommand extends InternalGfshCommand {
         crd.setHeader(CliStrings.format(CliStrings.DESCRIBE_CONFIG__HEADER__TEXT, memberNameOrId));
 
         List<String> jvmArgsList = memberConfigInfo.getJvmInputArguments();
-        TabularResultData jvmInputArgs = crd.addSection().addSection().addTable();
+        TabularResultData jvmInputArgs = crd.addSection().addTable();
 
         for (String jvmArg : jvmArgsList) {
           // This redaction should be redundant, since jvmArgs should have already been redacted in
@@ -97,11 +97,8 @@ public class DescribeConfigCommand extends InternalGfshCommand {
             memberConfigInfo.getCacheServerAttributes();
 
         if (cacheServerAttributesList != null && !cacheServerAttributesList.isEmpty()) {
-          CompositeResultData.SectionResultData cacheServerSection = crd.addSection();
-          cacheServerSection.setHeader("Cache-server attributes");
-
           for (Map<String, String> cacheServerAttributes : cacheServerAttributesList) {
-            addSubSection(cacheServerSection, cacheServerAttributes);
+            addSection(crd, cacheServerAttributes, "Cache-server attributes");
           }
         }
         result = ResultBuilder.buildResult(crd);
@@ -132,17 +129,4 @@ public class DescribeConfigCommand extends InternalGfshCommand {
     }
   }
 
-  private void addSubSection(CompositeResultData.SectionResultData section,
-      Map<String, String> attrMap) {
-    if (!attrMap.isEmpty()) {
-      CompositeResultData.SectionResultData subSection = section.addSection();
-      Set<String> attributes = new TreeSet<>(attrMap.keySet());
-      subSection.setHeader("");
-
-      for (String attribute : attributes) {
-        String attributeValue = attrMap.get(attribute);
-        subSection.addData(attribute, attributeValue);
-      }
-    }
-  }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
index 96dd2fd..d15895f 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
@@ -134,7 +134,7 @@ public class DescribeRegionCommand extends InternalGfshCommand {
           StringUtils.join(regionDescription.getHostingMembers(), '\n'));
       regionSection.addSeparator('.');
 
-      TabularResultData commonNonDefaultAttrTable = regionSection.addSection().addTable();
+      TabularResultData commonNonDefaultAttrTable = regionSection.addTable();
 
       commonNonDefaultAttrTable.setHeader(CliStrings
           .format(CliStrings.DESCRIBE_REGION__NONDEFAULT__COMMONATTRIBUTES__HEADER, memberType));
@@ -159,7 +159,7 @@ public class DescribeRegionCommand extends InternalGfshCommand {
           regionDescription.getRegionDescriptionPerMemberMap();
       Set<String> members = regDescPerMemberMap.keySet();
 
-      TabularResultData table = regionSection.addSection().addTable();
+      TabularResultData table = regionSection.addTable();
 
       boolean setHeader = false;
       for (String member : members) {
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
index 993406f..b947621 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/CompositeResultData.java
@@ -88,16 +88,6 @@ public class CompositeResultData extends AbstractResultData {
     return new SectionResultData(sectionData);
   }
 
-  public CompositeResultData addSeparator(char buildSeparatorFrom) {
-    try {
-      contentObject.put(SEPARATOR, buildSeparatorFrom);
-    } catch (GfJsonException e) {
-      throw new ResultDataException(e.getMessage());
-    }
-
-    return this;
-  }
-
   public SectionResultData retrieveSectionByIndex(int index) {
     SectionResultData sectionToRetrieve = null;
     int i = 0;
@@ -132,7 +122,6 @@ public class CompositeResultData extends AbstractResultData {
   public static class SectionResultData {
     protected GfJsonObject sectionGfJsonObject;
 
-    private int subsectionCount = 0;
     private int tablesCount = 0;
 
     SectionResultData() {
@@ -194,21 +183,6 @@ public class CompositeResultData extends AbstractResultData {
       return this;
     }
 
-    public SectionResultData addSection() {
-      return addSection(String.valueOf(subsectionCount));
-    }
-
-    public SectionResultData addSection(String keyToAccess) {
-      GfJsonObject sectionData = new GfJsonObject();
-      try {
-        sectionGfJsonObject.putAsJSONObject(generateSectionKey(keyToAccess), sectionData);
-      } catch (GfJsonException e) {
-        throw new ResultDataException(e.getMessage());
-      }
-      subsectionCount++;
-      return new SectionResultData(sectionData);
-    }
-
     public TabularResultData addTable() {
       return addTable(String.valueOf(tablesCount));
     }
@@ -225,33 +199,6 @@ public class CompositeResultData extends AbstractResultData {
       return tabularResultData;
     }
 
-    public SectionResultData retrieveSectionByIndex(int index) {
-      SectionResultData sectionToRetrieve = null;
-      int i = 0;
-      for (Iterator<String> iterator = sectionGfJsonObject.keys(); iterator.hasNext();) {
-        String key = iterator.next();
-        if (key.startsWith(CompositeResultData.SECTION_DATA_ACCESSOR)) {
-          if (i == index) {
-            sectionToRetrieve = new SectionResultData(sectionGfJsonObject.getJSONObject(key));
-            break;
-          }
-          i++;
-        }
-      }
-
-      return sectionToRetrieve;
-    }
-
-    public SectionResultData retrieveSection(String keyToRetrieve) {
-      SectionResultData sectionToRetrieve = null;
-      if (sectionGfJsonObject.has(generateSectionKey(keyToRetrieve))) {
-        GfJsonObject sectionData =
-            sectionGfJsonObject.getJSONObject(generateSectionKey(keyToRetrieve));
-        sectionToRetrieve = new SectionResultData(sectionData);
-      }
-      return sectionToRetrieve;
-    }
-
     public TabularResultData retrieveTableByIndex(int index) {
       TabularResultData tabularResultData = null;
       int i = 0;
@@ -292,22 +239,6 @@ public class CompositeResultData extends AbstractResultData {
       return sectionGfJsonObject.getString(name);
     }
 
-    public String[] retrieveStringArray(String name) {
-      String[] stringArray;
-      Object retrievedObject = sectionGfJsonObject.get(name);
-
-      if (retrievedObject instanceof GfJsonArray) {
-        stringArray = GfJsonArray.toStringArray(((GfJsonArray) retrievedObject));
-      } else {
-        try {
-          stringArray = GfJsonArray.toStringArray(new GfJsonArray(retrievedObject));
-        } catch (GfJsonException e) {
-          throw new ResultDataException(e.getMessage());
-        }
-      }
-      return stringArray;
-    }
-
     public static String generateSectionKey(String keyToRetrieve) {
       return SECTION_DATA_ACCESSOR + "-" + keyToRetrieve;
     }
@@ -317,48 +248,4 @@ public class CompositeResultData extends AbstractResultData {
     }
   }
 
-  public static void main(String[] args) {
-    CompositeResultData crd = new CompositeResultData();
-
-    SectionResultData r1Section = crd.addSection("R1");
-    r1Section.addData("Region", "R1").addData("IsPartitioned", false).addData("IsPersistent", true)
-        .addData("Disk Store", "DiskStore1").addData("Group", "Group1");
-    TabularResultData r1Table = r1Section.addTable("R1Members");
-    r1Table.accumulate("Member Id", "host1(3467):12435:12423")
-        .accumulate("PrimaryEntryCount", 20000).accumulate("BackupEntryCount", 20000)
-        .accumulate("Memory(MB)", "100").accumulate("NumOfCopies", 1);
-    r1Table.accumulate("Member Id", "host3(5756):57665:90923")
-        .accumulate("PrimaryEntryCount", 25000).accumulate("BackupEntryCount", 10000)
-        .accumulate("Memory(MB)", "200").accumulate("NumOfCopies", 1);
-
-    SectionResultData r3Section = crd.addSection("R3");
-    r3Section.addData("Region", "R3").addData("IsPartitioned", true).addData("IsPersistent", true)
-        .addData("Disk Store", "DiskStore2").addData("Group", "Group2")
-        .addData("ColocatedWith", "-");
-    SectionResultData r3SubSection = r3Section.addSection("R3Config");
-    r3SubSection.addData("Configuration", "");
-    r3SubSection.addData("Config1", "abcd");
-    r3SubSection.addData("Config2", "abcde");
-    r3SubSection.addData("Config3", "abcdfg");
-    TabularResultData r3Table = r3Section.addTable("R3Members");
-    r3Table.accumulate("Member Id", "host1(3467):12435:12423")
-        .accumulate("PrimaryEntryCount", 20000).accumulate("BackupEntryCount", 20000)
-        .accumulate("Memory(MB)", "100").accumulate("NumOfCopies", 1)
-        .accumulate("NumOfBuckets", 100);
-    r3Table.accumulate("Member Id", "host2(3353):23545:14723")
-        .accumulate("PrimaryEntryCount", 20000).accumulate("BackupEntryCount", 20000)
-        .accumulate("Memory(MB)", "100").accumulate("NumOfCopies", 1)
-        .accumulate("NumOfBuckets", 100);
-    r3Table.accumulate("Member Id", "host3(5756):57665:90923")
-        .accumulate("PrimaryEntryCount", 25000).accumulate("BackupEntryCount", 10000)
-        .accumulate("Memory(MB)", "200").accumulate("NumOfCopies", 1)
-        .accumulate("NumOfBuckets", 100);
-
-    try {
-      System.out.println(crd.getGfJsonObject().toIndentedString(0));
-
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
-  }
 }
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionDUnitTest.java
index 99ac56c..e7234fb 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionDUnitTest.java
@@ -170,16 +170,16 @@ public class DescribeRegionDUnitTest {
     CommandResult result = gfsh.executeAndAssertThat("describe region --name=" + PR1)
         .statusIsSuccess().getCommandResult();
 
-    List<String> names = result.getColumnFromTableContent("Name", 0, 0, 0);
+    List<String> names = result.getColumnFromTableContent("Name", 0, 0);
     assertThat(names).containsOnlyOnce(RegionAttributesNames.ENTRY_IDLE_TIME_CUSTOM_EXPIRY);
 
-    List<String> values = result.getColumnFromTableContent("Value", 0, 0, 0);
+    List<String> values = result.getColumnFromTableContent("Value", 0, 0);
     assertThat(values).containsOnlyOnce(TestCustomIdleExpiry.class.getName());
 
-    names = result.getColumnFromTableContent("Name", 0, 1, 0);
+    names = result.getColumnFromTableContent("Name", 0, 1);
     assertThat(names).containsOnlyOnce(RegionAttributesNames.ENTRY_TIME_TO_LIVE_CUSTOM_EXPIRY);
 
-    values = result.getColumnFromTableContent("Value", 0, 1, 0);
+    values = result.getColumnFromTableContent("Value", 0, 1);
     assertThat(values).containsOnlyOnce(TestCustomTTLExpiry.class.getName());
   }
 
@@ -215,8 +215,7 @@ public class DescribeRegionDUnitTest {
         gfsh.executeAndAssertThat(command).statusIsSuccess().getCommandResult();
 
     Map<String, String> hostingMembers = commandResult.getMapFromSection("1");
-    Map<String, List<String>> hostingMembersTable =
-        commandResult.getMapFromTableContent("1", "0", "0");
+    Map<String, List<String>> hostingMembersTable = commandResult.getMapFromTableContent("1", "0");
 
     assertThat(hostingMembers.get("Name")).isEqualTo(HOSTING_AND_ACCESSOR_REGION_NAME);
     assertThat(hostingMembers.get("Data Policy")).isEqualTo("partition");
@@ -227,8 +226,7 @@ public class DescribeRegionDUnitTest {
     assertThat(hostingMembersTable.get("Value")).contains("PARTITION", "0");
 
     Map<String, String> accessorMembers = commandResult.getMapFromSection("0");
-    Map<String, List<String>> accessorMembersTable =
-        commandResult.getMapFromTableContent("0", "0", "0");
+    Map<String, List<String>> accessorMembersTable = commandResult.getMapFromTableContent("0", "0");
 
     assertThat(accessorMembers.get("Name")).isEqualTo(HOSTING_AND_ACCESSOR_REGION_NAME);
     assertThat(accessorMembers.get("Data Policy")).isEqualTo("partition");
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionJUnitTest.java
index 7fb985a..af19532 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeRegionJUnitTest.java
@@ -103,9 +103,9 @@ public class DescribeRegionJUnitTest {
             .doesNotContainOutput("Non-Default Attributes Specific To");
 
     Map<String, List<String>> shared =
-        commandAssert.getCommandResult().getMapFromTableContent(0, 0, 0);
+        commandAssert.getCommandResult().getMapFromTableContent(0, 0);
     Map<String, List<String>> memberSpecific =
-        commandAssert.getCommandResult().getMapFromTableContent(0, 1, 0);
+        commandAssert.getCommandResult().getMapFromTableContent(0, 1);
 
     assertThat(shared.get("Name")).contains("regKey", "evictKey", "partKey");
     assertThat(shared.get("Value")).contains("regVal", "evictVal", "partVal");
@@ -134,9 +134,9 @@ public class DescribeRegionJUnitTest {
             .doesNotContainOutput("Non-Default Attributes Specific To");
 
     Map<String, List<String>> shared =
-        commandAssert.getCommandResult().getMapFromTableContent(0, 0, 0);
+        commandAssert.getCommandResult().getMapFromTableContent(0, 0);
     Map<String, List<String>> memberSpecific =
-        commandAssert.getCommandResult().getMapFromTableContent(0, 1, 0);
+        commandAssert.getCommandResult().getMapFromTableContent(0, 1);
 
     assertThat(shared.get("Name")).contains("regKey", "evictKey", "partKey");
     assertThat(shared.get("Value")).contains("regVal", "evictVal", "partVal");
@@ -172,9 +172,9 @@ public class DescribeRegionJUnitTest {
         gfsh.executeAndAssertThat(command, COMMAND + " --name=" + regionName).statusIsSuccess();
 
     Map<String, List<String>> shared =
-        commandAssert.getCommandResult().getMapFromTableContent(0, 0, 0);
+        commandAssert.getCommandResult().getMapFromTableContent(0, 0);
     Map<String, List<String>> memberSpecific =
-        commandAssert.getCommandResult().getMapFromTableContent(0, 1, 0);
+        commandAssert.getCommandResult().getMapFromTableContent(0, 1);
 
     assertThat(shared.get("Type")).containsExactly("Eviction");
     assertThat(shared.get("Name")).containsExactly("sharedEvictionKey");
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index b1f6a99..45f3aa6 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -35,7 +35,9 @@ import org.apache.geode.cache.Region;
 import org.apache.geode.distributed.Locator;
 import org.apache.geode.distributed.internal.InternalClusterConfigurationService;
 import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.SnapshotTestUtil;
+import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 import org.apache.geode.test.junit.categories.DistributedTest;
@@ -60,7 +62,8 @@ public class DiskStoreCommandsDUnitTest {
   public TemporaryFolder tempDir = new TemporaryFolder();
 
   private void createDiskStoreAndRegion(MemberVM jmxManager, int serverCount) {
-    gfsh.executeAndAssertThat(String.format("create disk-store --name=%s --dir=%s --group=%s",
+    gfsh.executeAndAssertThat(String.format(
+        "create disk-store --name=%s --dir=%s --group=%s --auto-compact=false --compaction-threshold=99 --max-oplog-size=1 --allow-force-compaction=true",
         DISKSTORE, DISKSTORE, GROUP));
 
     List<String> diskStores =
@@ -283,4 +286,38 @@ public class DiskStoreCommandsDUnitTest {
     gfsh.executeAndAssertThat(String.format("destroy disk-store --name=%s --if-exists", DISKSTORE))
         .statusIsSuccess();
   }
+
+  @Test
+  public void testCompactDiskStore() throws Exception {
+    Properties props = new Properties();
+    props.setProperty("groups", GROUP);
+
+    MemberVM locator = rule.startLocatorVM(0);
+    MemberVM server1 = rule.startServerVM(1, props, locator.getPort());
+    rule.startServerVM(2, props, locator.getPort());
+
+    gfsh.connectAndVerify(locator);
+
+    createDiskStoreAndRegion(locator, 2);
+
+    server1.invoke(() -> {
+      InternalCache cache = ClusterStartupRule.getCache();
+      Region 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);
+        r.put(i, "another_value_" + i);
+      }
+    });
+
+    gfsh.executeAndAssertThat(
+        String.format("compact disk-store --name=%s --group=%s", DISKSTORE, GROUP))
+        .statusIsSuccess();
+
+    CommandResult cmdResult = gfsh.getCommandResult();
+    assertThat(cmdResult.getMapFromSection("server-1").keySet()).contains("UUID", "Host",
+        "Directory");
+    assertThat(cmdResult.getMapFromSection("server-2").keySet()).contains("UUID", "Host",
+        "Directory");
+  }
 }

-- 
To stop receiving notification emails like this one, please contact
jensdeppe@apache.org.