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 ed575a1  GEODE-5011: Require all ResultModel sections to be explicitly 
named (#1944)
ed575a1 is described below

commit ed575a149a28736f048c2a7e82e7c70474613415
Author: Jens Deppe <jde...@pivotal.io>
AuthorDate: Tue May 15 10:42:12 2018 -0700

    GEODE-5011: Require all ResultModel sections to be explicitly named (#1944)
    
    
    - Remove the auto-indexed naming inherited from the previous implementation.
    - Remove section named "error"
    - When using createError, the section will just be named "info", however the
      state will be set to ERROR.
---
 .../jdbc/internal/cli/ListConnectionCommand.java   |  4 +-
 .../jdbc/internal/cli/ListMappingCommand.java      |  4 +-
 .../cli/commands/AlterAsyncEventQueueCommand.java  |  3 +-
 .../cli/commands/DescribeConfigCommand.java        | 30 ++++---
 .../cli/commands/DescribeJndiBindingCommand.java   |  4 +-
 .../internal/cli/commands/ExportConfigCommand.java |  2 +-
 .../internal/cli/commands/ListMembersCommand.java  |  5 +-
 .../internal/cli/commands/QueryInterceptor.java    |  6 +-
 .../internal/cli/domain/DataCommandResult.java     | 17 ++--
 .../internal/cli/remote/CommandExecutor.java       |  2 +-
 .../internal/cli/result/model/ResultModel.java     | 93 +++++++++++++++++-----
 .../sanctioned-geode-core-serializables.txt        |  2 +-
 .../cli/commands/GemfireDataCommandsDUnitTest.java |  9 ++-
 .../cli/commands/GetCommandIntegrationTest.java    | 25 +++---
 .../cli/commands/ListMembersCommandDUnitTest.java  |  3 +-
 .../cli/commands/ListMembersCommandTest.java       |  9 ++-
 .../cli/commands/LocateEntryDUnitTest.java         |  9 ++-
 .../cli/commands/PutCommandIntegrationTest.java    | 13 +--
 .../cli/commands/QueryCommandIntegrationTest.java  | 13 +--
 .../DataCommandFunctionWithPDXJUnitTest.java       |  2 +-
 .../model/LegacyVsResultModelComparisonTest.java   |  6 +-
 .../commands/DescribeClientCommandDUnitTest.java   |  2 +-
 22 files changed, 178 insertions(+), 85 deletions(-)

diff --git 
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommand.java
 
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommand.java
index ddcdd89..a1d5345 100644
--- 
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommand.java
+++ 
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommand.java
@@ -37,6 +37,7 @@ import org.apache.geode.security.ResourcePermission;
 
 @Experimental
 public class ListConnectionCommand extends GfshCommand {
+  public static final String JDBC_CONNECTIONS_SECTION = "jdbc-connections";
   static final String LIST_JDBC_CONNECTION = "list jdbc-connections";
   static final String LIST_JDBC_CONNECTION__HELP =
       EXPERIMENTAL + "Display jdbc connections for all members.";
@@ -82,7 +83,8 @@ public class ListConnectionCommand extends GfshCommand {
 
     // output
     ResultModel resultModel = new ResultModel();
-    boolean connectionsExist = fillTabularResultData(connections, 
resultModel.addTable());
+    boolean connectionsExist =
+        fillTabularResultData(connections, 
resultModel.addTable(JDBC_CONNECTIONS_SECTION));
     if (connectionsExist) {
       resultModel.setHeader(EXPERIMENTAL);
       return resultModel;
diff --git 
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
 
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
index c37236d..64900c9 100644
--- 
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
+++ 
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
@@ -37,6 +37,7 @@ import org.apache.geode.security.ResourcePermission;
 
 @Experimental
 public class ListMappingCommand extends GfshCommand {
+  public static final String JDBC_MAPPINGS_SECTION = "jdbc-mappings";
   static final String LIST_MAPPING = "list jdbc-mappings";
   static final String LIST_MAPPING__HELP = EXPERIMENTAL + "Display jdbc 
mappings for all members.";
 
@@ -82,7 +83,8 @@ public class ListMappingCommand extends GfshCommand {
 
     // output
     ResultModel resultModel = new ResultModel();
-    boolean mappingsExist = fillTabularResultData(mappings, 
resultModel.addTable());
+    boolean mappingsExist =
+        fillTabularResultData(mappings, 
resultModel.addTable(JDBC_MAPPINGS_SECTION));
     if (mappingsExist) {
       resultModel.setHeader(EXPERIMENTAL);
       return resultModel;
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterAsyncEventQueueCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterAsyncEventQueueCommand.java
index 9999d26..505200f 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterAsyncEventQueueCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/AlterAsyncEventQueueCommand.java
@@ -52,6 +52,7 @@ import org.apache.geode.security.ResourcePermission;
  */
 public class AlterAsyncEventQueueCommand extends InternalGfshCommand {
 
+  public static final String GROUP_STATUS_SECTION = "group-status";
   static final String COMMAND_NAME = "alter async-event-queue";
   static final String ID = "id";
   static final String BATCH_SIZE = "batch-size";
@@ -98,7 +99,7 @@ public class AlterAsyncEventQueueCommand extends 
InternalGfshCommand {
     }
 
     ResultModel result = new ResultModel();
-    TabularResultModel tableData = result.addTable();
+    TabularResultModel tableData = result.addTable(GROUP_STATUS_SECTION);
     boolean xmlUpdated = false;
     try {
       Region<String, Configuration> configRegion = 
service.getConfigurationRegion();
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 fe024ae..74ba46c 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
@@ -39,6 +39,14 @@ import 
org.apache.geode.management.internal.security.ResourceOperation;
 import org.apache.geode.security.ResourcePermission;
 
 public class DescribeConfigCommand extends InternalGfshCommand {
+  public static final String API_PROPERTIES_SECTION = "api-properties";
+  public static final String RUNTIME_PROPERTIES_SECTION = "runtime-properties";
+  public static final String FILE_PROPERTIES_SECTION = "file-properties";
+  public static final String DEFAULT_PROPERTIES_SECTION = "default-properties";
+  public static final String CACHE_ATTRIBUTES_SECTION = "cache-attributes";
+  public static final String CACHESERVER_ATTRIBUTES_SECTION = 
"cacheserver-attributes";
+  public static final String JVM_ARGS_SECTION = "jvm-args";
+
   private final GetMemberConfigInformationFunction getMemberConfigFunction =
       new GetMemberConfigInformationFunction();
 
@@ -73,7 +81,7 @@ public class DescribeConfigCommand extends 
InternalGfshCommand {
             
.setHeader(CliStrings.format(CliStrings.DESCRIBE_CONFIG__HEADER__TEXT, 
memberNameOrId));
 
         List<String> jvmArgsList = memberConfigInfo.getJvmInputArguments();
-        TabularResultModel jvmInputArgs = result.addTable();
+        TabularResultModel jvmInputArgs = result.addTable(JVM_ARGS_SECTION);
 
         for (String jvmArg : jvmArgsList) {
           // This redaction should be redundant, since jvmArgs should have 
already been redacted in
@@ -81,22 +89,25 @@ public class DescribeConfigCommand extends 
InternalGfshCommand {
           jvmInputArgs.accumulate("JVM command line arguments", 
ArgumentRedactor.redact(jvmArg));
         }
 
-        addSection(result, memberConfigInfo.getGfePropsSetUsingApi(),
+        addSection(API_PROPERTIES_SECTION, result, 
memberConfigInfo.getGfePropsSetUsingApi(),
             "GemFire properties defined using the API");
-        addSection(result, memberConfigInfo.getGfePropsRuntime(),
+        addSection(RUNTIME_PROPERTIES_SECTION, result, 
memberConfigInfo.getGfePropsRuntime(),
             "GemFire properties defined at the runtime");
-        addSection(result, memberConfigInfo.getGfePropsSetFromFile(),
+        addSection(FILE_PROPERTIES_SECTION, result, 
memberConfigInfo.getGfePropsSetFromFile(),
             "GemFire properties defined with the property file");
-        addSection(result, memberConfigInfo.getGfePropsSetWithDefaults(),
+        addSection(DEFAULT_PROPERTIES_SECTION, result,
+            memberConfigInfo.getGfePropsSetWithDefaults(),
             "GemFire properties using default values");
-        addSection(result, memberConfigInfo.getCacheAttributes(), "Cache 
attributes");
+        addSection(CACHE_ATTRIBUTES_SECTION, result, 
memberConfigInfo.getCacheAttributes(),
+            "Cache attributes");
 
         List<Map<String, String>> cacheServerAttributesList =
             memberConfigInfo.getCacheServerAttributes();
 
         if (cacheServerAttributesList != null && 
!cacheServerAttributesList.isEmpty()) {
           for (Map<String, String> cacheServerAttributes : 
cacheServerAttributesList) {
-            addSection(result, cacheServerAttributes, "Cache-server 
attributes");
+            addSection(CACHESERVER_ATTRIBUTES_SECTION, result, 
cacheServerAttributes,
+                "Cache-server attributes");
           }
         }
       }
@@ -110,9 +121,10 @@ public class DescribeConfigCommand extends 
InternalGfshCommand {
     return result;
   }
 
-  private void addSection(ResultModel model, Map<String, String> attrMap, 
String headerText) {
+  private void addSection(String namedSection, ResultModel model, Map<String, 
String> attrMap,
+      String headerText) {
     if (attrMap != null && !attrMap.isEmpty()) {
-      DataResultModel dataSection = model.addData();
+      DataResultModel dataSection = model.addData(namedSection);
       dataSection.setHeader(headerText);
       Set<String> attributes = new TreeSet<>(attrMap.keySet());
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeJndiBindingCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeJndiBindingCommand.java
index 08175cb..7ebfff7 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeJndiBindingCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeJndiBindingCommand.java
@@ -34,8 +34,8 @@ import 
org.apache.geode.management.internal.security.ResourceOperation;
 import org.apache.geode.security.ResourcePermission;
 
 public class DescribeJndiBindingCommand extends InternalGfshCommand {
+  public static final String JNDI_PROPERTIES_SECTION = "jndi-properties";
   private static final Logger logger = LogService.getLogger();
-
   static final String DESCRIBE_JNDI_BINDING = "describe jndi-binding";
   private static final String DESCRIBE_JNDIBINDING__HELP =
       "Describe the configuration of the given jndi binding.";
@@ -49,7 +49,7 @@ public class DescribeJndiBindingCommand extends 
InternalGfshCommand {
       help = "Name of the binding to describe") String bindingName) {
 
     ResultModel crm = new ResultModel();
-    TabularResultModel tabularData = crm.addTable();
+    TabularResultModel tabularData = crm.addTable(JNDI_PROPERTIES_SECTION);
 
     InternalConfigurationPersistenceService ccService =
         (InternalConfigurationPersistenceService) 
getConfigurationPersistenceService();
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java
index bb82b3c..090e299 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportConfigCommand.java
@@ -69,7 +69,7 @@ public class ExportConfigCommand extends InternalGfshCommand {
           help = CliStrings.EXPORT_CONFIG__DIR__HELP) String dir) {
 
     ResultModel crm = new ResultModel();
-    InfoResultModel infoData = crm.addInfo();
+    InfoResultModel infoData = crm.addInfo(ResultModel.INFO_SECTION);
 
     Set<DistributedMember> targetMembers = findMembers(group, member);
     if (targetMembers.isEmpty()) {
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListMembersCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListMembersCommand.java
index a779189..c32f105 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListMembersCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListMembersCommand.java
@@ -33,6 +33,9 @@ import 
org.apache.geode.management.internal.security.ResourceOperation;
 import org.apache.geode.security.ResourcePermission;
 
 public class ListMembersCommand extends InternalGfshCommand {
+
+  public static final String MEMBERS_SECTION = "members";
+
   @CliCommand(value = {CliStrings.LIST_MEMBER}, help = 
CliStrings.LIST_MEMBER__HELP)
   @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_SERVER)
   @ResourceOperation(resource = ResourcePermission.Resource.CLUSTER,
@@ -50,7 +53,7 @@ public class ListMembersCommand extends InternalGfshCommand {
       return crm;
     }
 
-    TabularResultModel resultData = crm.addTable();
+    TabularResultModel resultData = crm.addTable(MEMBERS_SECTION);
     final DistributedMember coordinatorMember = getCoordinator();
     for (DistributedMember member : memberSet) {
       resultData.accumulate("Name", member.getName());
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueryInterceptor.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueryInterceptor.java
index 8b5940e..092c008 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueryInterceptor.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueryInterceptor.java
@@ -27,6 +27,7 @@ import org.springframework.shell.event.ParseResult;
 
 import org.apache.geode.management.internal.cli.AbstractCliAroundInterceptor;
 import org.apache.geode.management.internal.cli.GfshParseResult;
+import org.apache.geode.management.internal.cli.domain.DataCommandResult;
 import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.result.ModelCommandResult;
 import org.apache.geode.management.internal.cli.result.model.DataResultModel;
@@ -57,7 +58,8 @@ public class QueryInterceptor extends 
AbstractCliAroundInterceptor {
     }
 
     ResultModel model = ((ModelCommandResult) result).getResultData();
-    Map<String, String> sectionResultData = 
model.getDataSection("0").getContent();
+    Map<String, String> sectionResultData =
+        model.getDataSection(DataCommandResult.DATA_INFO_SECTION).getContent();
 
     String limit = sectionResultData.get("Limit");
     String resultString = sectionResultData.get("Result");
@@ -75,7 +77,7 @@ public class QueryInterceptor extends 
AbstractCliAroundInterceptor {
     }
 
     ResultModel newModel = new ResultModel();
-    DataResultModel data = newModel.addData();
+    DataResultModel data = 
newModel.addData(DataCommandResult.DATA_INFO_SECTION);
 
     data.addData("Result", resultString);
     if (StringUtils.isNotBlank(limit)) {
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
index b23d0ea..3f9f533 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
@@ -43,9 +43,13 @@ import org.apache.geode.pdx.PdxInstance;
  * Domain object used for Data Commands Functions
  */
 public class DataCommandResult implements Serializable {
-  private static Logger logger = LogManager.getLogger();
 
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = 2601227194108110936L;
+
+  public static Logger logger = LogManager.getLogger();
+  public static final String DATA_INFO_SECTION = "data-info";
+  public static final String QUERY_SECTION = "query";
+  public static final String LOCATION_SECTION = "location";
   private String command;
   private Object putResult;
   private Object getResult;
@@ -376,7 +380,7 @@ public class DataCommandResult implements Serializable {
     }
 
     ResultModel result = new ResultModel();
-    DataResultModel data = result.addData();
+    DataResultModel data = result.addData(DATA_INFO_SECTION);
 
     if (errorString != null) {
       data.addData("Message", errorString);
@@ -416,7 +420,7 @@ public class DataCommandResult implements Serializable {
     data.addData("Key", inputKey);
 
     if (locateEntryLocations != null) {
-      TabularResultModel locationTable = result.addTable();
+      TabularResultModel locationTable = result.addTable(LOCATION_SECTION);
 
       int totalLocations = 0;
 
@@ -494,9 +498,9 @@ public class DataCommandResult implements Serializable {
    */
   public ResultModel toSelectCommandResult() {
     ResultModel result = new ResultModel();
+    DataResultModel data = result.addData(DATA_INFO_SECTION);
     if (!operationCompletedSuccessfully) {
       result.setStatus(Result.Status.ERROR);
-      DataResultModel data = result.addData();
       data.addData(RESULT_FLAG, operationCompletedSuccessfully);
       if (errorString != null) {
         data.addData("Message", errorString);
@@ -505,8 +509,7 @@ public class DataCommandResult implements Serializable {
       }
       return result;
     } else {
-      DataResultModel data = result.addData();
-      TabularResultModel table = result.addTable();
+      TabularResultModel table = 
result.addTable(DataCommandResult.QUERY_SECTION);
       data.addData(RESULT_FLAG, operationCompletedSuccessfully);
       if (infoString != null) {
         data.addData("Message", infoString);
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/CommandExecutor.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/CommandExecutor.java
index 65642f0..e4e2f5e 100755
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/CommandExecutor.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/remote/CommandExecutor.java
@@ -113,7 +113,7 @@ public class CommandExecutor {
     }
 
     // if command result is ok, we will need to see if we need to update 
cluster configuration
-    InfoResultModel infoResultModel = resultModel.addInfo();
+    InfoResultModel infoResultModel = 
resultModel.addInfo(ResultModel.INFO_SECTION);
     ConfigurationPersistenceService ccService = 
gfshCommand.getConfigurationPersistenceService();
     if (ccService == null) {
       infoResultModel.addLine(
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/model/ResultModel.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/model/ResultModel.java
index 7097958..1529d79 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/model/ResultModel.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/result/model/ResultModel.java
@@ -35,28 +35,45 @@ import 
org.apache.geode.management.internal.cli.functions.CliFunctionResult;
 /**
  * This class is the primary container for results returned from a {@link 
GfshCommand}.
  * <br/>
- * The following different types of 'models' can be added to an instance of 
{@code ResultModel}.
- * <ol>
+ * The following different types of 'models' (or sections in the older 
terminology) can be added to
+ * an instance of {@code ResultModel}.
+ * <ul>
  * <li>{@code InfoResultModel}</li>
  * This model holds multiple lines of text.
  * <li>{@code TabularResultModel}</li>
  * This model holds a table of named columns and associated row values.
  * <li>{@code DataResultModel}</li>
  * This model holds a map of key/value pairs
- * </ol>
+ * </ul>
  * The order in which models are added is maintained and will be presented to 
the user in the same
  * order.
  * <br/>
  * Errors should just be added as {@code InfoResultModel}s and then the status 
should be set
- * appropriately to indicate an error.
+ * appropriately to indicate an error. Once a {@code ResultModel}s status has 
been set to ERROR, it
+ * cannot be reset to OK.
+ * <br/>
+ * Each added section should be given a descriptive name. This name will 
eventually become part of
+ * the API when the JSON results are displayable via gfsh. So pick carefully 
:).
+ * <br/>
+ * A few common and generic names are already defined:
+ * <ul>
+ * <li>{@code INFO_SECTION}</li>
+ * Used for sections created by the {@code addInfo()} and {@code createInfo} 
methods.
+ * <li>{@code ERROR_SECTION}</li>
+ * Used for sections created by the {@code createError()} method.
+ * <li>{@code MEMBER_STATUS_SECTION}</li>
+ * Used for sections created by the various {@code createMemberStatusResult()} 
methods.
+ * </ul>
  *
  */
 public class ResultModel {
 
+  public static final String INFO_SECTION = "info";
+  public static final String MEMBER_STATUS_SECTION = "member-status";
+
   private String header;
   private String footer;
   private Map<String, AbstractResultModel> sections = new LinkedHashMap<>();
-  private int sectionCount = 0;
   private Result.Status status = Result.Status.OK;
   private Object configObject;
   private Map<String, FileResultModel> files = new LinkedHashMap<>();
@@ -83,6 +100,10 @@ public class ResultModel {
     return status == Result.Status.OK;
   }
 
+  /**
+   * Set the status of this {@code ResultModel}. Effectively, the only option 
is to set it to
+   * ERROR. Once the state is set to ERROR it cannot be unset again.
+   */
   public void setStatus(Result.Status status) {
     if (this.status == Result.Status.ERROR && status != this.status) {
       throw new IllegalStateException("Can't change the error state of the 
result.");
@@ -136,11 +157,24 @@ public class ResultModel {
     files.put(fileName, fileModel);
   }
 
+  /**
+   * Overloaded method to create an {@code InfoResultModel} section called 
"info".
+   */
   public InfoResultModel addInfo() {
-    return addInfo(Integer.toString(sectionCount++));
+    return addInfo(INFO_SECTION);
   }
 
   public InfoResultModel addInfo(String namedSection) {
+    Object model = sections.get(namedSection);
+    if (model != null) {
+      if (model instanceof InfoResultModel) {
+        return (InfoResultModel) model;
+      } else {
+        throw new IllegalStateException(String.format(
+            "Section requested is %s, not InfoResultModel", 
model.getClass().getSimpleName()));
+      }
+    }
+
     InfoResultModel section = new InfoResultModel();
     sections.put(namedSection, section);
 
@@ -153,11 +187,17 @@ public class ResultModel {
         .map(InfoResultModel.class::cast).collect(Collectors.toList());
   }
 
-  public TabularResultModel addTable() {
-    return addTable(Integer.toString(sectionCount++));
-  }
-
   public TabularResultModel addTable(String namedSection) {
+    Object model = sections.get(namedSection);
+    if (model != null) {
+      if (model instanceof TabularResultModel) {
+        return (TabularResultModel) model;
+      } else {
+        throw new IllegalStateException(String.format(
+            "Section requested is %s, not TabularResultModel", 
model.getClass().getSimpleName()));
+      }
+    }
+
     TabularResultModel section = new TabularResultModel();
     sections.put(namedSection, section);
 
@@ -174,11 +214,17 @@ public class ResultModel {
     return (TabularResultModel) sections.get(name);
   }
 
-  public DataResultModel addData() {
-    return addData(Integer.toString(sectionCount++));
-  }
-
   public DataResultModel addData(String namedSection) {
+    Object model = sections.get(namedSection);
+    if (model != null) {
+      if (model instanceof DataResultModel) {
+        return (DataResultModel) model;
+      } else {
+        throw new IllegalStateException(String.format(
+            "Section requested is %s, not DataResultModel", 
model.getClass().getSimpleName()));
+      }
+    }
+
     DataResultModel section = new DataResultModel();
     sections.put(namedSection, section);
 
@@ -211,7 +257,6 @@ public class ResultModel {
     return toJson();
   }
 
-
   // ********************************************
   // static convenience methods
   // ********************************************
@@ -220,16 +265,22 @@ public class ResultModel {
     return createError("Error processing command: " + message);
   }
 
+  /**
+   * Helper method to create an {@code InfoResultModel} named "info". This 
method will also set
+   * the status to ERROR.
+   */
   public static ResultModel createError(String message) {
-    ResultModel result = new ResultModel();
-    result.addInfo().addLine(message);
+    ResultModel result = createInfo(message);
     result.setStatus(Result.Status.ERROR);
     return result;
   }
 
+  /**
+   * Helper method to create an {@code InfoResultModel} named "info".
+   */
   public static ResultModel createInfo(String message) {
     ResultModel result = new ResultModel();
-    result.addInfo().addLine(message);
+    result.addInfo(INFO_SECTION).addLine(message);
     result.setStatus(Result.Status.OK);
     return result;
   }
@@ -238,11 +289,15 @@ public class ResultModel {
     return createMemberStatusResult(functionResults, null, null);
   }
 
+  /**
+   * Helper method to create an {@code TabularResultModel} named 
"member-status". Typically used
+   * to tabulate the status from calls to a number of members.
+   */
   public static ResultModel createMemberStatusResult(List<CliFunctionResult> 
functionResults,
       String header, String footer) {
     ResultModel result = new ResultModel();
     boolean atLeastOneSuccess = false;
-    TabularResultModel tabularResultModel = result.addTable();
+    TabularResultModel tabularResultModel = 
result.addTable(MEMBER_STATUS_SECTION);
     tabularResultModel.setHeader(header);
     tabularResultModel.setFooter(footer);
     tabularResultModel.setColumnHeader("Member", "Status");
diff --git 
a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
 
b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
index 7a2e627..2ffc4ea 100644
--- 
a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
+++ 
b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
@@ -490,7 +490,7 @@ 
org/apache/geode/management/internal/cli/domain/AsyncEventQueueDetails,true,1,ba
 
org/apache/geode/management/internal/cli/domain/CacheServerInfo,true,1,bindAddress:java/lang/String,isRunning:boolean,port:int
 
org/apache/geode/management/internal/cli/domain/ClassName,true,1,className:java/lang/String,initProperties:java/util/Properties
 
org/apache/geode/management/internal/cli/domain/DataCommandRequest,false,command:java/lang/String,key:java/lang/String,keyClass:java/lang/String,loadOnCacheMiss:boolean,principal:java/lang/Object,putIfAbsent:boolean,query:java/lang/String,recursive:boolean,regionName:java/lang/String,removeAllKeys:java/lang/String,value:java/lang/String,valueClass:java/lang/String
-org/apache/geode/management/internal/cli/domain/DataCommandResult,true,1,command:java/lang/String,error:java/lang/Throwable,errorString:java/lang/String,getResult:java/lang/Object,hasResultForAggregation:boolean,infoString:java/lang/String,inputKey:java/lang/Object,inputQuery:java/lang/Object,inputValue:java/lang/Object,keyClass:java/lang/String,limit:int,locateEntryLocations:java/util/List,locateEntryResult:org/apache/geode/management/internal/cli/domain/DataCommandResult$KeyInfo,operat
 [...]
+org/apache/geode/management/internal/cli/domain/DataCommandResult,true,2601227194108110936,command:java/lang/String,error:java/lang/Throwable,errorString:java/lang/String,getResult:java/lang/Object,hasResultForAggregation:boolean,infoString:java/lang/String,inputKey:java/lang/Object,inputQuery:java/lang/Object,inputValue:java/lang/Object,keyClass:java/lang/String,limit:int,locateEntryLocations:java/util/List,locateEntryResult:org/apache/geode/management/internal/cli/domain/DataCommandRes
 [...]
 
org/apache/geode/management/internal/cli/domain/DataCommandResult$KeyInfo,false,host:java/lang/String,locations:java/util/ArrayList,memberId:java/lang/String,memberName:java/lang/String,pid:int
 
org/apache/geode/management/internal/cli/domain/DataCommandResult$SelectResultRow,true,1,columnValues:java/util/Map,type:int
 
org/apache/geode/management/internal/cli/domain/DiskStoreDetails,false,allowForceCompaction:java/lang/Boolean,asyncEventQueueDetailsSet:java/util/Set,autoCompact:java/lang/Boolean,cacheServerDetailsSet:java/util/Set,compactionThreshold:java/lang/Integer,diskDirDetailsSet:java/util/Set,diskUsageCriticalPercentage:java/lang/Float,diskUsageWarningPercentage:java/lang/Float,gatewayDetailsSet:java/util/Set,id:java/util/UUID,maxOplogSize:java/lang/Long,memberId:java/lang/String,memberName:java
 [...]
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
index 240252d..5df743c 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
@@ -64,6 +64,7 @@ import org.apache.geode.management.cli.Result;
 import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.HeadlessGfsh;
 import org.apache.geode.management.internal.cli.domain.DataCommandRequest;
+import org.apache.geode.management.internal.cli.domain.DataCommandResult;
 import org.apache.geode.management.internal.cli.dto.Value1;
 import org.apache.geode.management.internal.cli.dto.Value2;
 import org.apache.geode.management.internal.cli.result.CommandResult;
@@ -752,7 +753,7 @@ public class GemfireDataCommandsDUnitTest extends 
CliCommandTestBase {
   private void validateResult(CommandResult cmdResult, Boolean expected) {
     if (ResultData.TYPE_MODEL.equals(cmdResult.getType())) {
       ResultModel rd = (ResultModel) cmdResult.getResultData();
-      DataResultModel result = rd.getDataSection("0");
+      DataResultModel result = 
rd.getDataSection(DataCommandResult.DATA_INFO_SECTION);
       
assertThat(result.getContent().get("Result")).isEqualTo(expected.toString());
     } else
       fail("Expected CompositeResult Returned Result Type " + 
cmdResult.getType());
@@ -762,12 +763,14 @@ public class GemfireDataCommandsDUnitTest extends 
CliCommandTestBase {
       Integer expectedRows, String[] cols) {
     if (ResultData.TYPE_MODEL.equals(cmdResult.getType())) {
       ResultModel rd = (ResultModel) cmdResult.getResultData();
-      Map<String, String> data = rd.getDataSection("0").getContent();
+      Map<String, String> data =
+          rd.getDataSection(DataCommandResult.DATA_INFO_SECTION).getContent();
       assertThat(data.get("Result")).isEqualTo(expectedFlag.toString());
       if (expectedFlag && expectedRows != -1) {
         assertThat(data.get("Rows")).isEqualTo(expectedRows.toString());
         if (expectedRows > 0 && cols != null) {
-          Map<String, List<String>> table = 
rd.getTableSection("1").getContent();
+          Map<String, List<String>> table =
+              rd.getTableSection(DataCommandResult.QUERY_SECTION).getContent();
           assertThat(table.keySet()).contains(cols);
         }
       }
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GetCommandIntegrationTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GetCommandIntegrationTest.java
index 83a86bc..dfba38b 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GetCommandIntegrationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GetCommandIntegrationTest.java
@@ -38,6 +38,7 @@ import org.apache.geode.cache.RegionFactory;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.cli.domain.DataCommandResult;
 import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.pdx.PdxInstance;
 import org.apache.geode.pdx.PdxInstanceFactory;
@@ -117,20 +118,20 @@ public class GetCommandIntegrationTest {
     CommandResult result = gfsh.executeCommand("get --region=Users 
--key=jonbloom");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
 
     result = gfsh.executeCommand("get --region=Users --key=jondoe 
--load-on-cache-miss=false");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Message")).isEqualTo("Key is not present in the 
region");
 
     result = gfsh.executeCommand("get --region=Users --key=jondoe");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
     assertThat(data.get("Value 
Class")).isEqualTo(User.class.getCanonicalName());
 
@@ -138,7 +139,7 @@ public class GetCommandIntegrationTest {
     result = gfsh.executeCommand("get --region=Users --key=missingUser 
--load-on-cache-miss");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Value")).isEqualTo("null");
   }
@@ -148,20 +149,20 @@ public class GetCommandIntegrationTest {
     CommandResult result = gfsh.executeCommand("get --region=UsersPdx 
--key=jonbloom");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
 
     result = gfsh.executeCommand("get --region=UsersPdx --key=jondoe 
--load-on-cache-miss=false");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Message")).isEqualTo("Key is not present in the 
region");
 
     result = gfsh.executeCommand("get --region=UsersPdx --key=jondoe");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
     assertThat(data.get("Value 
Class")).isEqualTo(PdxInstanceImpl.class.getCanonicalName());
 
@@ -169,7 +170,7 @@ public class GetCommandIntegrationTest {
     result = gfsh.executeCommand("get --region=UsersPdx --key=missingUser 
--load-on-cache-miss");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Value")).isEqualTo("null");
   }
@@ -179,7 +180,7 @@ public class GetCommandIntegrationTest {
     CommandResult result = gfsh.executeCommand("get --region=UsersString 
--key=jonbloom");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
     assertThat(data.get("Value")).isEqualTo("\"6a6f6e626c6f6f6d\"");
 
@@ -187,7 +188,7 @@ public class GetCommandIntegrationTest {
         gfsh.executeCommand("get --region=UsersString --key=jondoe 
--load-on-cache-miss=false");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Message")).isEqualTo("Key is not present in the 
region");
     assertThat(data.get("Value")).isEqualTo("null");
@@ -195,7 +196,7 @@ public class GetCommandIntegrationTest {
     result = gfsh.executeCommand("get --region=UsersString --key=jondoe");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
     assertThat(data.get("Value Class")).isEqualTo(String.class.getName());
     assertThat(data.get("Value")).isEqualTo("\"6a6f6e646f65\"");
@@ -204,7 +205,7 @@ public class GetCommandIntegrationTest {
     result = gfsh.executeCommand("get --region=UsersString --key=missingUser 
--load-on-cache-miss");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Value")).isEqualTo("null");
   }
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandDUnitTest.java
index 91c9b2d..abfc2fa 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandDUnitTest.java
@@ -68,7 +68,8 @@ public class ListMembersCommandDUnitTest {
 
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, List<String>> table = result.getMapFromTableContent("0");
+    Map<String, List<String>> table =
+        result.getMapFromTableContent(ListMembersCommand.MEMBERS_SECTION);
 
     assertThat(table.get("Name").size()).isEqualTo(4);
     assertThat(table.get("Name")).contains("locator-0", "server-1", 
"server-2", "server-3");
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandTest.java
index 39cbb69..58fc605 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandTest.java
@@ -79,7 +79,8 @@ public class ListMembersCommandTest {
     members.add(member1);
 
     CommandResult result = gfsh.executeCommandWithInstance(command, "list 
members");
-    Map<String, List<String>> table = result.getMapFromTableContent("0");
+    Map<String, List<String>> table =
+        result.getMapFromTableContent(ListMembersCommand.MEMBERS_SECTION);
 
     assertThat(table.get("Name")).contains("name");
     assertThat(table.get("Id")).contains("id [Coordinator]");
@@ -91,7 +92,8 @@ public class ListMembersCommandTest {
     doReturn(null).when(command).getCoordinator();
 
     CommandResult result = gfsh.executeCommandWithInstance(command, "list 
members");
-    Map<String, List<String>> table = result.getMapFromTableContent("0");
+    Map<String, List<String>> table =
+        result.getMapFromTableContent(ListMembersCommand.MEMBERS_SECTION);
 
     assertThat(table.get("Name")).contains("name");
     assertThat(table.get("Id")).contains("id");
@@ -103,7 +105,8 @@ public class ListMembersCommandTest {
     members.add(member2);
 
     CommandResult result = gfsh.executeCommandWithInstance(command, "list 
members");
-    Map<String, List<String>> table = result.getMapFromTableContent("0");
+    Map<String, List<String>> table =
+        result.getMapFromTableContent(ListMembersCommand.MEMBERS_SECTION);
 
     assertThat(table.get("Name")).contains("name", "name2");
     assertThat(table.get("Id")).contains("id [Coordinator]", "id2");
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/LocateEntryDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/LocateEntryDUnitTest.java
index 97511fe..3feccde 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/LocateEntryDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/LocateEntryDUnitTest.java
@@ -27,6 +27,7 @@ import org.junit.experimental.categories.Category;
 
 import org.apache.geode.distributed.ConfigurationProperties;
 import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.cli.domain.DataCommandResult;
 import org.apache.geode.management.internal.cli.dto.Key;
 import org.apache.geode.management.internal.cli.dto.Value;
 import org.apache.geode.management.internal.cli.result.CommandResult;
@@ -83,7 +84,7 @@ public class LocateEntryDUnitTest {
     CommandResult result = gfsh.executeCommand("locate entry --region=regionA 
--key=key");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Locations Found")).isEqualTo("1");
   }
 
@@ -92,7 +93,7 @@ public class LocateEntryDUnitTest {
     CommandResult result = gfsh.executeCommand("locate entry --region=regionB 
--key=key");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Locations Found")).isEqualTo("2");
   }
 
@@ -102,7 +103,7 @@ public class LocateEntryDUnitTest {
         gfsh.executeCommand("locate entry --region=regionB --key=key 
--recursive=true");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Locations Found")).isEqualTo("4");
   }
 
@@ -117,7 +118,7 @@ public class LocateEntryDUnitTest {
             + Key.class.getCanonicalName() + " --value-class=" + 
Value.class.getCanonicalName());
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Locations Found")).isEqualTo("1");
   }
 }
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandIntegrationTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandIntegrationTest.java
index c618f4f..34261ed 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandIntegrationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/PutCommandIntegrationTest.java
@@ -27,6 +27,7 @@ import org.junit.rules.RuleChain;
 
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.cli.domain.DataCommandResult;
 import org.apache.geode.management.internal.cli.dto.Car;
 import org.apache.geode.management.internal.cli.dto.Key;
 import org.apache.geode.management.internal.cli.dto.Key1;
@@ -115,7 +116,7 @@ public class PutCommandIntegrationTest {
     CommandResult result =
         gfsh.executeCommand("put --region=/testRegion --key=key1 
--value=value1");
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
 
     // if unspecified then override
@@ -141,7 +142,7 @@ public class PutCommandIntegrationTest {
         "put --region=testRegion --key=('key':'1') --value=('value':'1') " + 
"--key-class="
             + Key.class.getCanonicalName() + " --value-class=" + 
Value.class.getCanonicalName());
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
   }
 
@@ -151,7 +152,7 @@ public class PutCommandIntegrationTest {
         "put --region=testRegion --key={\"key\":\"1\"} 
--value={\"value\":\"1\"} " + "--key-class="
             + Key.class.getCanonicalName() + " --value-class=" + 
Value.class.getCanonicalName());
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
   }
 
@@ -178,7 +179,7 @@ public class PutCommandIntegrationTest {
     CommandResult result = gfsh.executeCommand(command);
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
 
     // put the car json
@@ -193,7 +194,7 @@ public class PutCommandIntegrationTest {
     result = gfsh.executeCommand(command);
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
 
     // put with json with single character field
@@ -202,7 +203,7 @@ public class PutCommandIntegrationTest {
     result = gfsh.executeCommand(command);
     assertThat(result.getStatus()).isEqualTo(Result.Status.OK);
 
-    data = result.getMapFromSection("0");
+    data = result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("true");
   }
 }
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueryCommandIntegrationTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueryCommandIntegrationTest.java
index dae707b..fc0b08b 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueryCommandIntegrationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/QueryCommandIntegrationTest.java
@@ -37,6 +37,7 @@ import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.cli.domain.DataCommandResult;
 import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.shell.Gfsh;
 import org.apache.geode.test.junit.categories.GfshTest;
@@ -200,7 +201,7 @@ public class QueryCommandIntegrationTest {
     gfsh.executeAndAssertThat("set variable --name=QUERY_LIMIT 
--value=10").statusIsSuccess();
     CommandResult result = gfsh.executeCommand(
         "query --query='select c.name, c.address from ${DATA_REGION} c limit 
${QUERY_LIMIT}'");
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
 
     assertThat(data.get("Rows")).isEqualTo("10");
   }
@@ -216,7 +217,7 @@ public class QueryCommandIntegrationTest {
   public void invalidQueryGivesDescriptiveErrorMessage() {
     CommandResult result = gfsh.executeCommand("query --query='this is not a 
valid query'");
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Result")).isEqualTo("false");
     assertThat(data.get("Message"))
         .startsWith("Query is invalid due to error : <Syntax error in query:");
@@ -233,7 +234,8 @@ public class QueryCommandIntegrationTest {
     CommandResult result =
         gfsh.executeCommand("query --query='select c.unknown from 
/complexRegion c limit 10'");
 
-    Map<String, List<String>> table = result.getMapFromTableContent("1");
+    Map<String, List<String>> table =
+        result.getMapFromTableContent(DataCommandResult.QUERY_SECTION);
     assertThat(table.get("Value").size()).isEqualTo(10);
     assertThat(table.get("Value").get(0)).isEqualTo("UNDEFINED");
   }
@@ -243,10 +245,11 @@ public class QueryCommandIntegrationTest {
     CommandResult result = gfsh.executeCommand(
         "query --query=\"(select c.address from /complexRegion c where c.name 
= 'name1' limit 1).size\"");
 
-    Map<String, String> data = result.getMapFromSection("0");
+    Map<String, String> data = 
result.getMapFromSection(DataCommandResult.DATA_INFO_SECTION);
     assertThat(data.get("Rows")).isEqualTo("1");
 
-    Map<String, List<String>> table = result.getMapFromTableContent("1");
+    Map<String, List<String>> table =
+        result.getMapFromTableContent(DataCommandResult.QUERY_SECTION);
     assertThat(table.get("Result")).contains("1");
   }
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DataCommandFunctionWithPDXJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DataCommandFunctionWithPDXJUnitTest.java
index 66e962e..6cca659 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DataCommandFunctionWithPDXJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DataCommandFunctionWithPDXJUnitTest.java
@@ -136,7 +136,7 @@ public class DataCommandFunctionWithPDXJUnitTest {
     request.setQuery(query);
     DataCommandResult result = new DataCommandFunction().select(request, 
cache);
     ResultModel m = result.toSelectCommandResult();
-    return m.getTableSection("1");
+    return m.getTableSection(DataCommandResult.QUERY_SECTION);
   }
 
   private void assertThatRowIsBuiltCorrectly(Map<String, List<String>> table, 
int rowNum,
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/result/model/LegacyVsResultModelComparisonTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/result/model/LegacyVsResultModelComparisonTest.java
index 054474d..c806df4 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/result/model/LegacyVsResultModelComparisonTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/result/model/LegacyVsResultModelComparisonTest.java
@@ -54,7 +54,7 @@ public class LegacyVsResultModelComparisonTest {
 
     // Create the new model results
     ResultModel newCrm = new ResultModel();
-    TabularResultModel modelTable = newCrm.addTable();
+    TabularResultModel modelTable = newCrm.addTable("0");
     modelTable.setHeader("Heads");
     modelTable.accumulate("Name", "server1");
     modelTable.accumulate("Name", "server2");
@@ -112,13 +112,13 @@ public class LegacyVsResultModelComparisonTest {
     newCrm.setHeader("Heads");
     newCrm.setFooter("Tails");
 
-    TabularResultModel newTable1 = newCrm.addTable();
+    TabularResultModel newTable1 = newCrm.addTable("0");
     newTable1.setHeader("section-0 table-1 header");
     newTable1.accumulate("Parameter", "param1");
     newTable1.accumulate("Value", "value1");
     newTable1.setFooter("section-0 table-1 footer");
 
-    DataResultModel newSection1 = newCrm.addData();
+    DataResultModel newSection1 = newCrm.addData("1");
     newSection1.setHeader("section 0 header");
     newSection1.addData("param-1", "value-1");
     newSection1.addData("param-3", "value-3");
diff --git 
a/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java
 
b/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java
index c3835a3..e6088f9 100644
--- 
a/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java
+++ 
b/geode-cq/src/test/java/org/apache/geode/management/internal/cli/commands/DescribeClientCommandDUnitTest.java
@@ -123,7 +123,7 @@ public class DescribeClientCommandDUnitTest {
   private void validateResults(boolean subscriptionEnabled) {
     CommandResult result = gfsh.executeCommand("list members");
     // list is always locator-0, server-1, server-2
-    String server1 = result.getTableColumnValues("0", "Id").get(1);
+    String server1 = result.getTableColumnValues("members", "Id").get(1);
 
     result = gfsh.executeCommand("list clients");
     String clientId = 
result.getColumnFromTableContent(CliStrings.LIST_CLIENT_COLUMN_Clients,

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

Reply via email to