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/11/20 17:42:25 UTC

[geode] branch develop updated: GEODE-5971: Refactor Start/Status/Stop Locator commands to return ResultModel (#2869)

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 5a8ef65  GEODE-5971: Refactor Start/Status/Stop Locator commands to return ResultModel (#2869)
5a8ef65 is described below

commit 5a8ef6562ecd52da0308f7014320ad0182360ce9
Author: Jens Deppe <jd...@pivotal.io>
AuthorDate: Tue Nov 20 09:42:15 2018 -0800

    GEODE-5971: Refactor Start/Status/Stop Locator commands to return ResultModel (#2869)
---
 .../internal/cli/commands/StartLocatorCommand.java | 54 +++++++++++-----------
 .../internal/cli/commands/StartServerCommand.java  | 23 +++++----
 .../commands/lifecycle/StatusLocatorCommand.java   | 24 +++++-----
 .../cli/commands/lifecycle/StopLocatorCommand.java | 13 +++---
 4 files changed, 56 insertions(+), 58 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java
index aa4680b..0874a04 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartLocatorCommand.java
@@ -43,12 +43,11 @@ import org.apache.geode.internal.process.ProcessType;
 import org.apache.geode.internal.util.IOUtils;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
 import org.apache.geode.management.internal.cli.GfshParser;
 import org.apache.geode.management.internal.cli.domain.ConnectToLocatorResult;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.InfoResultData;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
+import org.apache.geode.management.internal.cli.result.model.InfoResultModel;
+import org.apache.geode.management.internal.cli.result.model.ResultModel;
 import org.apache.geode.management.internal.cli.shell.Gfsh;
 import org.apache.geode.management.internal.cli.shell.JmxOperationInvoker;
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
@@ -61,7 +60,7 @@ public class StartLocatorCommand extends InternalGfshCommand {
   @CliCommand(value = CliStrings.START_LOCATOR, help = CliStrings.START_LOCATOR__HELP)
   @CliMetaData(shellOnly = true,
       relatedTopic = {CliStrings.TOPIC_GEODE_LOCATOR, CliStrings.TOPIC_GEODE_LIFECYCLE})
-  public Result startLocator(
+  public ResultModel startLocator(
       @CliOption(key = CliStrings.START_LOCATOR__MEMBER_NAME,
           help = CliStrings.START_LOCATOR__MEMBER_NAME__HELP) String memberName,
       @CliOption(key = CliStrings.START_LOCATOR__BIND_ADDRESS,
@@ -141,7 +140,7 @@ public class StartLocatorCommand extends InternalGfshCommand {
 
   }
 
-  Result doStartLocator(
+  ResultModel doStartLocator(
       String memberName,
       String bindAddress,
       String classpath,
@@ -171,13 +170,13 @@ public class StartLocatorCommand extends InternalGfshCommand {
       throws MalformedObjectNameException, IOException, InterruptedException,
       ClassNotFoundException {
     if (gemfirePropertiesFile != null && !gemfirePropertiesFile.exists()) {
-      return ResultBuilder.createUserErrorResult(
+      return ResultModel.createError(
           CliStrings.format(CliStrings.GEODE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, StringUtils.EMPTY,
               gemfirePropertiesFile.getAbsolutePath()));
     }
 
     if (gemfireSecurityPropertiesFile != null && !gemfireSecurityPropertiesFile.exists()) {
-      return ResultBuilder.createUserErrorResult(
+      return ResultModel.createError(
           CliStrings.format(CliStrings.GEODE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, "Security ",
               gemfireSecurityPropertiesFile.getAbsolutePath()));
     }
@@ -285,7 +284,7 @@ public class StartLocatorCommand extends InternalGfshCommand {
         } else {
           final int exitValue = locatorProcess.exitValue();
 
-          return ResultBuilder.createShellClientErrorResult(
+          return ResultModel.createError(
               String.format(CliStrings.START_LOCATOR__PROCESS_TERMINATED_ABNORMALLY_ERROR_MESSAGE,
                   exitValue, locatorLauncher.getWorkingDirectory(), message.toString()));
         }
@@ -305,21 +304,22 @@ public class StartLocatorCommand extends InternalGfshCommand {
         (registeredLocatorSignalListener && locatorSignalListener.isSignaled()
             && ServerLauncher.ServerState.isStartingNotRespondingOrNull(locatorState));
 
-    InfoResultData infoResultData = ResultBuilder.createInfoResultData();
+    ResultModel result = new ResultModel();
+    InfoResultModel infoResult = result.addInfo();
 
     if (loadSharedConfigurationFromDirectory) {
-      infoResultData.addLine("Warning: Option --load-cluster-config-from-dir is deprecated, use '"
+      infoResult.addLine("Warning: Option --load-cluster-config-from-dir is deprecated, use '"
           + CliStrings.IMPORT_SHARED_CONFIG
           + "' command instead to import any existing configuration.\n");
     }
 
     if (asyncStart) {
-      infoResultData.addLine(
+      infoResult.addLine(
           String.format(CliStrings.ASYNC_PROCESS_LAUNCH_MESSAGE, CliStrings.LOCATOR_TERM_NAME));
-      return ResultBuilder.buildResult(infoResultData);
+      return result;
     }
 
-    infoResultData.addLine(locatorState.toString());
+    infoResult.addLine(locatorState.toString());
     String locatorHostName;
     InetAddress bindAddr = locatorLauncher.getBindAddress();
     if (bindAddr != null) {
@@ -341,16 +341,16 @@ public class StartLocatorCommand extends InternalGfshCommand {
     // Else, ask the user to use the "connect" command to connect to the Locator.
     if (shouldAutoConnect(connect)) {
       boolean connected =
-          doAutoConnect(locatorHostName, locatorPort, configProperties, infoResultData);
+          doAutoConnect(locatorHostName, locatorPort, configProperties, infoResult);
 
       // Report on the state of the Shared Configuration service if enabled...
       if (enableSharedConfiguration && connected) {
-        infoResultData.addLine(ClusterConfigurationStatusRetriever.fromLocator(locatorHostName,
+        infoResult.addLine(ClusterConfigurationStatusRetriever.fromLocator(locatorHostName,
             locatorPort, configProperties));
       }
     }
 
-    return ResultBuilder.buildResult(infoResultData);
+    return result;
   }
 
   // TODO should we connect implicitly when in non-interactive, headless mode (e.g. gfsh -e "start
@@ -362,7 +362,7 @@ public class StartLocatorCommand extends InternalGfshCommand {
   }
 
   private boolean doAutoConnect(final String locatorHostname, final int locatorPort,
-      final Properties configurationProperties, final InfoResultData infoResultData) {
+      final Properties configurationProperties, final InfoResultModel infoResult) {
     boolean connectSuccess = false;
     boolean jmxManagerAuthEnabled = false;
     boolean jmxManagerSslEnabled = false;
@@ -385,8 +385,8 @@ public class StartLocatorCommand extends InternalGfshCommand {
         String shellAndLogMessage = CliStrings.format(CliStrings.CONNECT__MSG__SUCCESS,
             "JMX Manager " + memberEndpoint.toString(false));
 
-        infoResultData.addLine("\n");
-        infoResultData.addLine(shellAndLogMessage);
+        infoResult.addLine("\n");
+        infoResult.addLine(shellAndLogMessage);
         getGfsh().logToFile(shellAndLogMessage, null);
 
         connectSuccess = true;
@@ -411,20 +411,20 @@ public class StartLocatorCommand extends InternalGfshCommand {
 
     if (!connectSuccess) {
       doOnConnectionFailure(locatorHostname, locatorPort, jmxManagerAuthEnabled,
-          jmxManagerSslEnabled, infoResultData);
+          jmxManagerSslEnabled, infoResult);
     }
 
     if (StringUtils.isNotBlank(responseFailureMessage)) {
-      infoResultData.addLine("\n");
-      infoResultData.addLine(responseFailureMessage);
+      infoResult.addLine("\n");
+      infoResult.addLine(responseFailureMessage);
     }
     return connectSuccess;
   }
 
   private void doOnConnectionFailure(final String locatorHostName, final int locatorPort,
       final boolean jmxManagerAuthEnabled, final boolean jmxManagerSslEnabled,
-      final InfoResultData infoResultData) {
-    infoResultData.addLine("\n");
+      final InfoResultModel infoResult) {
+    infoResult.addLine("\n");
     CommandStringBuilder commandUsage = new CommandStringBuilder(CliStrings.CONNECT)
         .addOption(CliStrings.CONNECT__LOCATOR, locatorHostName + "[" + locatorPort + "]");
 
@@ -438,12 +438,12 @@ public class StartLocatorCommand extends InternalGfshCommand {
       message.append(jmxManagerAuthEnabled ? " and " : StringUtils.EMPTY)
           .append("SSL configuration");
     }
-    infoResultData.addLine(CliStrings.format(
+    infoResult.addLine(CliStrings.format(
         CliStrings.START_LOCATOR__USE__0__TO__CONNECT_WITH_SECURITY, commandUsage.toString()));
     if (jmxManagerAuthEnabled || jmxManagerSslEnabled) {
       message.append(" required to connect to the Manager.");
-      infoResultData.addLine("\n");
-      infoResultData.addLine(message.toString());
+      infoResult.addLine("\n");
+      infoResult.addLine(message.toString());
     }
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java
index ec87c2f..8d37214 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StartServerCommand.java
@@ -41,11 +41,10 @@ import org.apache.geode.internal.process.ProcessType;
 import org.apache.geode.internal.util.IOUtils;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
 import org.apache.geode.management.internal.cli.CliUtil;
 import org.apache.geode.management.internal.cli.GfshParser;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
+import org.apache.geode.management.internal.cli.result.model.ResultModel;
 import org.apache.geode.management.internal.cli.shell.Gfsh;
 import org.apache.geode.management.internal.security.ResourceConstants;
 
@@ -55,7 +54,7 @@ public class StartServerCommand extends InternalGfshCommand {
   @CliCommand(value = CliStrings.START_SERVER, help = CliStrings.START_SERVER__HELP)
   @CliMetaData(shellOnly = true,
       relatedTopic = {CliStrings.TOPIC_GEODE_SERVER, CliStrings.TOPIC_GEODE_LIFECYCLE})
-  public Result startServer(
+  public ResultModel startServer(
       @CliOption(key = CliStrings.START_SERVER__NAME,
           help = CliStrings.START_SERVER__NAME__HELP) String memberName,
       @CliOption(key = CliStrings.START_SERVER__ASSIGN_BUCKETS, unspecifiedDefaultValue = "false",
@@ -194,8 +193,8 @@ public class StartServerCommand extends InternalGfshCommand {
         passwordToUse = getGfsh().readPassword(CliStrings.START_SERVER__PASSWORD + ": ");
       }
       if (StringUtils.isBlank(passwordToUse)) {
-        return ResultBuilder
-            .createConnectionErrorResult(CliStrings.START_SERVER__MSG__PASSWORD_MUST_BE_SPECIFIED);
+        return ResultModel
+            .createError(CliStrings.START_SERVER__MSG__PASSWORD_MUST_BE_SPECIFIED);
       }
     }
 
@@ -215,7 +214,7 @@ public class StartServerCommand extends InternalGfshCommand {
         httpServicePort, httpServiceBindAddress, userName, passwordToUse, redirectOutput);
   }
 
-  Result doStartServer(String memberName, Boolean assignBuckets, String bindAddress,
+  ResultModel doStartServer(String memberName, Boolean assignBuckets, String bindAddress,
       String cacheXmlPathname, String classpath, Float criticalHeapPercentage,
       Float criticalOffHeapPercentage, String workingDirectory, Boolean disableDefaultServer,
       Boolean disableExitWhenOutOfMemory, Boolean enableTimeStatistics,
@@ -237,7 +236,7 @@ public class StartServerCommand extends InternalGfshCommand {
 
     if (StringUtils.isNotBlank(cacheXmlPathname)) {
       if (!IOUtils.isExistingPathname(cacheXmlPathname)) {
-        return ResultBuilder.createUserErrorResult(
+        return ResultModel.createError(
             CliStrings.format(CliStrings.CACHE_XML_NOT_FOUND_MESSAGE, cacheXmlPathname));
       } else {
         getGfsh().logWarning(
@@ -246,13 +245,13 @@ public class StartServerCommand extends InternalGfshCommand {
     }
 
     if (gemfirePropertiesFile != null && !gemfirePropertiesFile.exists()) {
-      return ResultBuilder.createUserErrorResult(
+      return ResultModel.createError(
           CliStrings.format(CliStrings.GEODE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, StringUtils.EMPTY,
               gemfirePropertiesFile.getAbsolutePath()));
     }
 
     if (gemfireSecurityPropertiesFile != null && !gemfireSecurityPropertiesFile.exists()) {
-      return ResultBuilder.createUserErrorResult(
+      return ResultModel.createError(
           CliStrings.format(CliStrings.GEODE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, "Security ",
               gemfireSecurityPropertiesFile.getAbsolutePath()));
     }
@@ -402,7 +401,7 @@ public class StartServerCommand extends InternalGfshCommand {
         } else {
           final int exitValue = serverProcess.exitValue();
 
-          return ResultBuilder.createShellClientErrorResult(
+          return ResultModel.createError(
               String.format(CliStrings.START_SERVER__PROCESS_TERMINATED_ABNORMALLY_ERROR_MESSAGE,
                   exitValue, serverLauncher.getWorkingDirectory(), message.toString()));
 
@@ -422,9 +421,9 @@ public class StartServerCommand extends InternalGfshCommand {
 
     if (asyncStart) { // async start
       Gfsh.print(String.format(CliStrings.ASYNC_PROCESS_LAUNCH_MESSAGE, SERVER_TERM_NAME));
-      return ResultBuilder.createInfoResult("");
+      return ResultModel.createInfo("");
     } else {
-      return ResultBuilder.createInfoResult(serverState.toString());
+      return ResultModel.createInfo(serverState.toString());
     }
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StatusLocatorCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StatusLocatorCommand.java
index cd7c6ac..5fc6c07 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StatusLocatorCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StatusLocatorCommand.java
@@ -28,18 +28,17 @@ import org.apache.geode.internal.lang.StringUtils;
 import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
 import org.apache.geode.management.internal.cli.commands.InternalGfshCommand;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.InfoResultData;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
+import org.apache.geode.management.internal.cli.result.model.InfoResultModel;
+import org.apache.geode.management.internal.cli.result.model.ResultModel;
 import org.apache.geode.management.internal.configuration.utils.ClusterConfigurationStatusRetriever;
 
 public class StatusLocatorCommand extends InternalGfshCommand {
   @CliCommand(value = CliStrings.STATUS_LOCATOR, help = CliStrings.STATUS_LOCATOR__HELP)
   @CliMetaData(shellOnly = true,
       relatedTopic = {CliStrings.TOPIC_GEODE_LOCATOR, CliStrings.TOPIC_GEODE_LIFECYCLE})
-  public Result statusLocator(
+  public ResultModel statusLocator(
       @CliOption(key = CliStrings.STATUS_LOCATOR__MEMBER,
           optionContext = ConverterHint.LOCATOR_MEMBER_IDNAME,
           help = CliStrings.STATUS_LOCATOR__MEMBER__HELP) final String member,
@@ -62,11 +61,11 @@ public class StatusLocatorCommand extends InternalGfshCommand {
               LocatorLauncher.LocatorState.fromJson(locatorProxy.status());
           return createStatusLocatorResult(state);
         } else {
-          return ResultBuilder.createUserErrorResult(CliStrings.format(
+          return ResultModel.createError(CliStrings.format(
               CliStrings.STATUS_LOCATOR__NO_LOCATOR_FOUND_FOR_MEMBER_ERROR_MESSAGE, member));
         }
       } else {
-        return ResultBuilder.createUserErrorResult(CliStrings.format(
+        return ResultModel.createError(CliStrings.format(
             CliStrings.STATUS_SERVICE__GFSH_NOT_CONNECTED_ERROR_MESSAGE, LOCATOR_TERM_NAME));
       }
     } else {
@@ -78,18 +77,19 @@ public class StatusLocatorCommand extends InternalGfshCommand {
       final LocatorLauncher.LocatorState status = locatorLauncher.status();
       if (status.getStatus().equals(AbstractLauncher.Status.NOT_RESPONDING)
           || status.getStatus().equals(AbstractLauncher.Status.STOPPED)) {
-        return ResultBuilder.createShellClientErrorResult(status.toString());
+        return ResultModel.createError(status.toString());
       }
       return createStatusLocatorResult(status);
     }
 
   }
 
-  protected Result createStatusLocatorResult(final LocatorLauncher.LocatorState state)
+  protected ResultModel createStatusLocatorResult(final LocatorLauncher.LocatorState state)
       throws NumberFormatException, IOException, ClassNotFoundException {
-    InfoResultData infoResultData = ResultBuilder.createInfoResultData();
-    infoResultData.addLine(state.toString());
-    infoResultData.addLine(ClusterConfigurationStatusRetriever.fromLocator(state));
-    return ResultBuilder.buildResult(infoResultData);
+    ResultModel result = new ResultModel();
+    InfoResultModel info = result.addInfo();
+    info.addLine(state.toString());
+    info.addLine(ClusterConfigurationStatusRetriever.fromLocator(state));
+    return result;
   }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StopLocatorCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StopLocatorCommand.java
index cef8293..6690ab2 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StopLocatorCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/lifecycle/StopLocatorCommand.java
@@ -29,10 +29,9 @@ import org.apache.geode.internal.util.StopWatch;
 import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
 import org.apache.geode.management.internal.cli.commands.InternalGfshCommand;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
+import org.apache.geode.management.internal.cli.result.model.ResultModel;
 import org.apache.geode.management.internal.cli.shell.Gfsh;
 
 public class StopLocatorCommand extends InternalGfshCommand {
@@ -41,7 +40,7 @@ public class StopLocatorCommand extends InternalGfshCommand {
   @CliCommand(value = CliStrings.STOP_LOCATOR, help = CliStrings.STOP_LOCATOR__HELP)
   @CliMetaData(shellOnly = true,
       relatedTopic = {CliStrings.TOPIC_GEODE_LOCATOR, CliStrings.TOPIC_GEODE_LIFECYCLE})
-  public Result stopLocator(
+  public ResultModel stopLocator(
       @CliOption(key = CliStrings.STOP_LOCATOR__MEMBER,
           optionContext = ConverterHint.LOCATOR_MEMBER_IDNAME,
           help = CliStrings.STOP_LOCATOR__MEMBER__HELP) final String member,
@@ -70,11 +69,11 @@ public class StopLocatorCommand extends InternalGfshCommand {
           locatorState = LocatorLauncher.LocatorState.fromJson(locatorProxy.status());
           locatorProxy.shutDownMember();
         } else {
-          return ResultBuilder.createUserErrorResult(CliStrings
+          return ResultModel.createError(CliStrings
               .format(CliStrings.STOP_LOCATOR__NO_LOCATOR_FOUND_FOR_MEMBER_ERROR_MESSAGE, member));
         }
       } else {
-        return ResultBuilder.createUserErrorResult(CliStrings
+        return ResultModel.createError(CliStrings
             .format(CliStrings.STOP_SERVICE__GFSH_NOT_CONNECTED_ERROR_MESSAGE, LOCATOR_TERM_NAME));
       }
     } else {
@@ -104,9 +103,9 @@ public class StopLocatorCommand extends InternalGfshCommand {
         }
       }
 
-      return ResultBuilder.createInfoResult(StringUtils.EMPTY);
+      return ResultModel.createInfo(StringUtils.EMPTY);
     } else {
-      return ResultBuilder.createUserErrorResult(locatorState.toString());
+      return ResultModel.createError(locatorState.toString());
     }
   }
 }