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";