You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/10/09 00:53:24 UTC

[35/50] [abbrv] git commit: SLIDER-365 slider "resolve" command to retrieve service record

SLIDER-365 slider "resolve" command to retrieve service record


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/d084e9e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/d084e9e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/d084e9e8

Branch: refs/heads/develop
Commit: d084e9e86f145655af3eafe2da76db08269db54a
Parents: c51f2f0
Author: Steve Loughran <st...@apache.org>
Authored: Mon Oct 6 13:53:49 2014 -0700
Committer: Steve Loughran <st...@apache.org>
Committed: Mon Oct 6 13:53:49 2014 -0700

----------------------------------------------------------------------
 .../org/apache/slider/client/SliderClient.java  | 56 ++++++++++--
 .../common/params/ActionRegistryArgs.java       |  9 +-
 .../slider/common/params/ActionResolveArgs.java | 92 ++++++++++++++++++++
 .../apache/slider/common/params/Arguments.java  |  1 +
 .../apache/slider/common/params/ClientArgs.java | 65 ++++++++------
 .../slider/common/params/SliderActions.java     |  1 +
 6 files changed, 183 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d084e9e8/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index 26e5707..a5bbccc 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -72,6 +72,7 @@ import org.apache.slider.common.params.ActionFreezeArgs;
 import org.apache.slider.common.params.ActionGetConfArgs;
 import org.apache.slider.common.params.ActionKillContainerArgs;
 import org.apache.slider.common.params.ActionRegistryArgs;
+import org.apache.slider.common.params.ActionResolveArgs;
 import org.apache.slider.common.params.ActionStatusArgs;
 import org.apache.slider.common.params.ActionThawArgs;
 import org.apache.slider.common.params.Arguments;
@@ -332,9 +333,11 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
       exitCode = actionThaw(clusterName, serviceArgs.getActionThawArgs());
     } else if (ACTION_DESTROY.equals(action)) {
       exitCode = actionDestroy(clusterName);
+    } else if (ACTION_DIAGNOSTIC.equals(action)) {
+      exitCode = actionDiagnostic(serviceArgs.getActionDiagnosticArgs());
     } else if (ACTION_EXISTS.equals(action)) {
       exitCode = actionExists(clusterName,
-           serviceArgs.getActionExistsArgs().live);
+          serviceArgs.getActionExistsArgs().live);
     } else if (ACTION_FLEX.equals(action)) {
       exitCode = actionFlex(clusterName, serviceArgs.getActionFlexArgs());
     } else if (ACTION_GETCONF.equals(action)) {
@@ -351,8 +354,9 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
     } else if (ACTION_LIST.equals(action)) {
       exitCode = actionList(clusterName);
     } else if (ACTION_REGISTRY.equals(action)) {
-      exitCode = actionRegistry(
-          serviceArgs.getActionRegistryArgs());
+      exitCode = actionRegistry(serviceArgs.getActionRegistryArgs());
+    } else if (ACTION_RESOLVE.equals(action)) {
+      exitCode = actionResolve(serviceArgs.getActionResolveArgs());
     } else if (ACTION_STATUS.equals(action)) {
       exitCode = actionStatus(clusterName,
           serviceArgs.getActionStatusArgs());
@@ -362,8 +366,6 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
     } else if (ACTION_VERSION.equals(action)) {
 
       exitCode = actionVersion();
-    } else if (ACTION_DIAGNOSTIC.equals(action)) {
-        exitCode = actionDiagnostic(serviceArgs.getActionDiagnosticArgs());
     } else {
       throw new SliderException(EXIT_UNIMPLEMENTED,
           "Unimplemented: " + action);
@@ -2387,13 +2389,51 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
   /**
    * Registry operation
    *
+   * @param args registry Arguments
+   * @return 0 for success, -1 for some issues that aren't errors, just failures
+   * to retrieve information (e.g. no configurations for that entry)
+   * @throws YarnException YARN problems
+   * @throws IOException Network or other problems
+   */
+  public int actionResolve(ActionResolveArgs args) throws
+      YarnException,
+      IOException {
+    // as this is also a test entry point, validate
+    // the arguments
+    args.validate();
+    RegistryOperations operations = getRegistryOperations();
+    String serviceclassPath = args.path;
+    Collection<ServiceRecord> serviceRecords;
+    try {
+      if (args.list) {
+        actionRegistryListYarn(args);
+      } else  {
+        ServiceRecord instance = lookupServiceRecord(registryArgs);
+        serviceRecords = new ArrayList<ServiceRecord>(1);
+        serviceRecords.add(instance);
+      }
+//      JDK7
+    } catch (FileNotFoundException e) {
+      log.info("{}", e);
+      log.debug("{}", e, e);
+      return EXIT_NOT_FOUND;
+    } catch (PathNotFoundException e) {
+      log.info("{}", e);
+      log.debug("{}", e, e);
+      return EXIT_NOT_FOUND;
+    }
+    return EXIT_SUCCESS;
+  }
+
+  /**
+   * Registry operation
+   *
    * @param registryArgs registry Arguments
    * @return 0 for success, -1 for some issues that aren't errors, just failures
    * to retrieve information (e.g. no configurations for that entry)
    * @throws YarnException YARN problems
    * @throws IOException Network or other problems
    */
-  @VisibleForTesting
   public int actionRegistry(ActionRegistryArgs registryArgs) throws
       YarnException,
       IOException {
@@ -2418,11 +2458,11 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
       }
 //      JDK7
     } catch (FileNotFoundException e) {
-      log.info("{}", e.toString());
+      log.info("{}", e);
       log.debug("{}", e, e);
       return EXIT_NOT_FOUND;
     } catch (PathNotFoundException e) {
-      log.info("{}", e.toString());
+      log.info("{}", e);
       log.debug("{}", e, e);
       return EXIT_NOT_FOUND;
     }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d084e9e8/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
index b3d2f9c..6de9a45 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
@@ -42,16 +42,17 @@ import java.io.File;
 
 public class ActionRegistryArgs extends AbstractActionArgs {
 
-
   public static final String USAGE =
       "Usage: " + SliderActions.ACTION_REGISTRY
-      + " <"
+      + " ("
       + Arguments.ARG_LIST + "|"
       + Arguments.ARG_LISTCONF + "|"
       + Arguments.ARG_LISTFILES + "|"
       + Arguments.ARG_GETCONF + "> "
       + Arguments.ARG_NAME + " <name> "
+      + " )"
       + "[" + Arguments.ARG_VERBOSE + "] "
+      + "[" + Arguments.ARG_OUTPUT + " <filename> ] "
       + "[" + Arguments.ARG_SERVICETYPE + " <servicetype> ] "
       + "[" + Arguments.ARG_FORMAT + " <xml|json|properties>] "
       ;
@@ -67,7 +68,6 @@ public class ActionRegistryArgs extends AbstractActionArgs {
     return ACTION_REGISTRY;
   }
 
-
   /**
    * Get the min #of params expected
    * @return the min number of params in the {@link #parameters} field
@@ -89,7 +89,6 @@ public class ActionRegistryArgs extends AbstractActionArgs {
       description = "get configuration")
   public String getConf;
 
-
   @Parameter(names = {ARG_LISTFILES}, 
       description = "list files")
   public String listFiles;
@@ -103,7 +102,7 @@ public class ActionRegistryArgs extends AbstractActionArgs {
       description = "Format for a response: <xml|json|properties>")
   public String format = ConfigFormat.XML.toString() ;
 
-  @Parameter(names = {ARG_DEST},
+  @Parameter(names = {ARG_OUTPUT, ARG_OUTPUT_SHORT, ARG_DEST},
       description = "Output destination")
   public File dest;
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d084e9e8/slider-core/src/main/java/org/apache/slider/common/params/ActionResolveArgs.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ActionResolveArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ActionResolveArgs.java
new file mode 100644
index 0000000..9b6a5f1
--- /dev/null
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ActionResolveArgs.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.slider.common.params;
+
+import com.beust.jcommander.Parameter;
+import com.beust.jcommander.Parameters;
+import org.apache.slider.common.SliderKeys;
+import org.apache.slider.core.exceptions.BadCommandArgumentsException;
+import org.apache.slider.core.exceptions.UsageException;
+
+import java.io.File;
+
+import static org.apache.slider.common.params.SliderActions.ACTION_REGISTRY;
+import static org.apache.slider.common.params.SliderActions.ACTION_RESOLVE;
+import static org.apache.slider.common.params.SliderActions.DESCRIBE_ACTION_REGISTRY;
+
+/**
+ * Resolve registry entries
+ * 
+ * --path {path}
+ * --out {destfile}
+ * --verbose
+ * --list
+ */
+@Parameters(commandNames = {ACTION_REGISTRY},
+            commandDescription = DESCRIBE_ACTION_REGISTRY)
+public class ActionResolveArgs extends AbstractActionArgs {
+
+  public static final String USAGE =
+      "Usage: " + SliderActions.ACTION_RESOLVE
+      + " "
+      + Arguments.ARG_PATH + " <path> "
+      + "[" + Arguments.ARG_LIST + "] "
+      + "[" + Arguments.ARG_VERBOSE + "] "
+      + "[" + Arguments.ARG_OUTPUT + " <filename> ] "
+      ;
+  public ActionResolveArgs() {
+  }
+
+  @Override
+  public String getActionName() {
+    return ACTION_RESOLVE;
+  }
+
+  /**
+   * Get the min #of params expected
+   * @return the min number of params in the {@link #parameters} field
+   */
+  @Override
+  public int getMinParams() {
+    return 0;
+  }
+  
+  @Parameter(names = {ARG_LIST}, 
+      description = "list services")
+  public boolean list;
+
+
+  @Parameter(names = {ARG_PATH},
+      description = "resolve a path")
+  public String path;
+
+  @Parameter(names = {ARG_OUTPUT, ARG_OUTPUT_SHORT},
+      description = "Output destination")
+  public File out;
+
+ @Parameter(names = {ARG_VERBOSE},
+      description = "verbose output")
+  public boolean verbose;
+
+  @Parameter(names = {ARG_INTERNAL},
+      description = "fetch internal registry entries")
+  public boolean internal;
+
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d084e9e8/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java b/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
index 2b45ce8..bbd7da6 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
@@ -62,6 +62,7 @@ public interface Arguments {
   String ARG_OUTPUT = "--out";
   String ARG_OUTPUT_SHORT = "-o";
   String ARG_PACKAGE = "--package";
+  String ARG_PATH = "--path";
   String ARG_PROVIDER = "--provider";
   String ARG_RESOURCES = "--resources";
   String ARG_RES_COMP_OPT = "--rescompopt";

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d084e9e8/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
index cd981b1..0fffffb 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
@@ -58,6 +58,7 @@ public class ClientArgs extends CommonArgs {
     new ActionKillContainerArgs();
   private final ActionListArgs actionListArgs = new ActionListArgs();
   private final ActionRegistryArgs actionRegistryArgs = new ActionRegistryArgs();
+  private final ActionResolveArgs actionResolveArgs = new ActionResolveArgs();
   private final ActionStatusArgs actionStatusArgs = new ActionStatusArgs();
   private final ActionThawArgs actionThawArgs = new ActionThawArgs();
   private final ActionVersionArgs actionVersionArgs = new ActionVersionArgs();
@@ -77,25 +78,26 @@ public class ClientArgs extends CommonArgs {
   protected void addActionArguments() {
 
     addActions(
-      actionAMSuicideArgs,
-      actionBuildArgs,
-      actionCreateArgs,
-      actionUpdateArgs,
-      actionDestroyArgs,
-      actionExistsArgs,
-      actionFlexArgs,
-      actionFreezeArgs,
-      actionGetConfArgs,
-      actionKillContainerArgs,
-      actionListArgs,
-      actionRegistryArgs,
-      actionStatusArgs,
-      actionThawArgs,
-      actionHelpArgs,
-      actionVersionArgs,
-      actionInstallPackageArgs,
-      actionDiagnosticArgs
-              );
+        actionAMSuicideArgs,
+        actionBuildArgs,
+        actionCreateArgs,
+        actionUpdateArgs,
+        actionDestroyArgs,
+        actionDiagnosticArgs,
+        actionExistsArgs,
+        actionFlexArgs,
+        actionFreezeArgs,
+        actionGetConfArgs,
+        actionHelpArgs,
+        actionInstallPackageArgs,
+        actionKillContainerArgs,
+        actionListArgs,
+        actionRegistryArgs,
+        actionResolveArgs,
+        actionStatusArgs,
+        actionThawArgs,
+        actionVersionArgs
+    );
   }
 
   @Override
@@ -173,6 +175,10 @@ public class ClientArgs extends CommonArgs {
     return actionRegistryArgs;
   }
 
+  public ActionResolveArgs getActionResolveArgs() {
+    return actionResolveArgs;
+  }
+
   public ActionStatusArgs getActionStatusArgs() {
     return actionStatusArgs;
   }
@@ -200,12 +206,6 @@ public class ClientArgs extends CommonArgs {
       //its a builder, so set those actions too
       buildingActionArgs = actionCreateArgs;
 
-    } else if (SliderActions.ACTION_UPDATE.equals(action)) {
-      bindCoreAction(actionUpdateArgs);
-
-    } else if (SliderActions.ACTION_INSTALL_PACKAGE.equals(action)) {
-      bindCoreAction(actionInstallPackageArgs);
-
     }else if (SliderActions.ACTION_FREEZE.equals(action)) {
       bindCoreAction(actionFreezeArgs);
 
@@ -218,6 +218,9 @@ public class ClientArgs extends CommonArgs {
     } else if (SliderActions.ACTION_DESTROY.equals(action)) {
       bindCoreAction(actionDestroyArgs);
 
+    } else if (SliderActions.ACTION_DIAGNOSTIC.equals(action)) {
+      bindCoreAction(actionDiagnosticArgs);
+
     } else if (SliderActions.ACTION_EXISTS.equals(action)) {
       bindCoreAction(actionExistsArgs);
 
@@ -231,6 +234,9 @@ public class ClientArgs extends CommonArgs {
                SliderActions.ACTION_USAGE.equals(action)) {
       bindCoreAction(actionHelpArgs);
 
+    } else if (SliderActions.ACTION_INSTALL_PACKAGE.equals(action)) {
+      bindCoreAction(actionInstallPackageArgs);
+
     } else if (SliderActions.ACTION_KILL_CONTAINER.equals(action)) {
       bindCoreAction(actionKillContainerArgs);
 
@@ -240,15 +246,18 @@ public class ClientArgs extends CommonArgs {
     } else if (SliderActions.ACTION_REGISTRY.equals(action)) {
       bindCoreAction(actionRegistryArgs);
 
+    } else if (SliderActions.ACTION_RESOLVE.equals(action)) {
+      bindCoreAction(actionRegistryArgs);
+
     } else if (SliderActions.ACTION_STATUS.equals(action)) {
       bindCoreAction(actionStatusArgs);
 
+    } else if (SliderActions.ACTION_UPDATE.equals(action)) {
+      bindCoreAction(actionUpdateArgs);
+
     } else if (SliderActions.ACTION_VERSION.equals(action)) {
       bindCoreAction(actionVersionArgs);
 
-    } else if (SliderActions.ACTION_DIAGNOSTIC.equals(action)) {
-        bindCoreAction(actionDiagnosticArgs);
-
     } else if (action == null || action.isEmpty()) {
       throw new BadCommandArgumentsException(ErrorStrings.ERROR_NO_ACTION);
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d084e9e8/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java b/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
index 29fd098..7400f46 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
@@ -40,6 +40,7 @@ public interface SliderActions {
   String ACTION_PREFLIGHT = "preflight";
   String ACTION_RECONFIGURE = "reconfigure";
   String ACTION_REGISTRY = "registry";
+  String ACTION_RESOLVE = "resolve";
   String ACTION_STATUS = "status";
   String ACTION_THAW = "start";
   String ACTION_USAGE = "usage";