You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ji...@apache.org on 2017/09/25 23:38:54 UTC
[55/86] [abbrv] hadoop git commit: YARN-7091. Rename application to
service in yarn-native-services. Contributed by Jian He
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java
deleted file mode 100644
index 1049698..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java
+++ /dev/null
@@ -1,872 +0,0 @@
-/**
- * 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.hadoop.yarn.service.client;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.retry.RetryNTimes;
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.classification.InterfaceStability;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.fs.permission.FsPermission;
-import org.apache.hadoop.net.NetUtils;
-import org.apache.hadoop.registry.client.api.RegistryConstants;
-import org.apache.hadoop.registry.client.api.RegistryOperations;
-import org.apache.hadoop.registry.client.api.RegistryOperationsFactory;
-import org.apache.hadoop.registry.client.binding.RegistryUtils;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.apache.hadoop.service.CompositeService;
-import org.apache.hadoop.util.VersionInfo;
-import org.apache.hadoop.yarn.api.ApplicationConstants;
-import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
-import org.apache.hadoop.yarn.api.protocolrecords.UpdateApplicationTimeoutsRequest;
-import org.apache.hadoop.yarn.api.records.ApplicationId;
-import org.apache.hadoop.yarn.api.records.ApplicationReport;
-import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
-import org.apache.hadoop.yarn.api.records.ApplicationTimeout;
-import org.apache.hadoop.yarn.api.records.ApplicationTimeoutType;
-import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
-import org.apache.hadoop.yarn.api.records.LocalResource;
-import org.apache.hadoop.yarn.api.records.LocalResourceType;
-import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.hadoop.yarn.api.records.YarnApplicationState;
-import org.apache.hadoop.yarn.client.api.YarnClient;
-import org.apache.hadoop.yarn.client.api.YarnClientApplication;
-import org.apache.hadoop.yarn.conf.YarnConfiguration;
-import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.hadoop.yarn.ipc.YarnRPC;
-import org.apache.hadoop.yarn.proto.ClientAMProtocol.ComponentCountProto;
-import org.apache.hadoop.yarn.proto.ClientAMProtocol.FlexComponentsRequestProto;
-import org.apache.hadoop.yarn.proto.ClientAMProtocol.GetStatusRequestProto;
-import org.apache.hadoop.yarn.proto.ClientAMProtocol.GetStatusResponseProto;
-import org.apache.hadoop.yarn.proto.ClientAMProtocol.StopRequestProto;
-import org.apache.hadoop.yarn.service.ClientAMProtocol;
-import org.apache.hadoop.yarn.service.ServiceMaster;
-import org.apache.hadoop.yarn.service.api.records.Application;
-import org.apache.hadoop.yarn.service.api.records.Component;
-import org.apache.hadoop.yarn.service.client.params.AbstractClusterBuildingActionArgs;
-import org.apache.hadoop.yarn.service.client.params.ActionDependencyArgs;
-import org.apache.hadoop.yarn.service.client.params.ActionFlexArgs;
-import org.apache.hadoop.yarn.service.client.params.Arguments;
-import org.apache.hadoop.yarn.service.client.params.ClientArgs;
-import org.apache.hadoop.yarn.service.client.params.CommonArgs;
-import org.apache.hadoop.yarn.service.conf.SliderExitCodes;
-import org.apache.hadoop.yarn.service.conf.YarnServiceConstants;
-import org.apache.hadoop.yarn.service.conf.YarnServiceConf;
-import org.apache.hadoop.yarn.service.provider.AbstractClientProvider;
-import org.apache.hadoop.yarn.service.provider.ProviderUtils;
-import org.apache.hadoop.yarn.service.utils.ServiceApiUtil;
-import org.apache.hadoop.yarn.service.utils.ServiceRegistryUtils;
-import org.apache.hadoop.yarn.service.utils.SliderFileSystem;
-import org.apache.hadoop.yarn.service.utils.SliderUtils;
-import org.apache.hadoop.yarn.util.Records;
-import org.apache.hadoop.yarn.util.Times;
-import org.apache.hadoop.yarn.service.exceptions.BadClusterStateException;
-import org.apache.hadoop.yarn.service.exceptions.BadConfigException;
-import org.apache.hadoop.yarn.service.exceptions.SliderException;
-import org.apache.hadoop.yarn.service.exceptions.UsageException;
-import org.apache.hadoop.yarn.service.containerlaunch.ClasspathConstructor;
-import org.apache.hadoop.yarn.service.containerlaunch.JavaCommandLineBuilder;
-import org.apache.hadoop.yarn.service.utils.ZookeeperUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.text.MessageFormat;
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-import static org.apache.hadoop.yarn.api.records.YarnApplicationState.*;
-import static org.apache.hadoop.yarn.service.client.params.SliderActions.ACTION_CREATE;
-import static org.apache.hadoop.yarn.service.client.params.SliderActions.ACTION_FLEX;
-import static org.apache.hadoop.yarn.service.conf.YarnServiceConf.YARN_QUEUE;
-import static org.apache.hadoop.yarn.service.utils.SliderUtils.*;
-
-@InterfaceAudience.Public
-@InterfaceStability.Unstable
-public class ServiceClient extends CompositeService
- implements SliderExitCodes, YarnServiceConstants {
- private static final Logger LOG =
- LoggerFactory.getLogger(ServiceClient.class);
- private SliderFileSystem fs;
- private YarnClient yarnClient;
- // Avoid looking up applicationId from fs all the time.
- private Map<String, ApplicationId> cachedAppIds = new ConcurrentHashMap<>();
- private Map<String, ClientAMProtocol> cachedAMProxies = new ConcurrentHashMap<>();
-
- private RegistryOperations registryClient;
- private CuratorFramework curatorClient;
- private YarnRPC rpc;
-
- private static EnumSet<YarnApplicationState> terminatedStates =
- EnumSet.of(FINISHED, FAILED, KILLED);
- private static EnumSet<YarnApplicationState> liveStates =
- EnumSet.of(NEW, NEW_SAVING, SUBMITTED, RUNNING);
-
- public ServiceClient() {
- super(ServiceClient.class.getName());
- }
-
- @Override protected void serviceInit(Configuration configuration)
- throws Exception {
- fs = new SliderFileSystem(configuration);
- yarnClient = YarnClient.createYarnClient();
- rpc = YarnRPC.create(configuration);
- addService(yarnClient);
- super.serviceInit(configuration);
- }
-
- @Override
- protected void serviceStop() throws Exception {
- if (registryClient != null) {
- registryClient.stop();
- }
- super.serviceStop();
- }
-
- private Application loadAppJsonFromLocalFS(
- AbstractClusterBuildingActionArgs args) throws IOException {
- File file = args.getAppDef();
- Path filePath = new Path(file.getAbsolutePath());
- LOG.info("Loading app json from: " + filePath);
- Application application = ServiceApiUtil.jsonSerDeser
- .load(FileSystem.getLocal(getConfig()), filePath);
- if (args.lifetime > 0) {
- application.setLifetime(args.lifetime);
- }
- application.setName(args.getClusterName());
- return application;
- }
-
- public int actionBuild(AbstractClusterBuildingActionArgs args)
- throws IOException, YarnException {
- return actionBuild(loadAppJsonFromLocalFS(args));
- }
-
- public int actionBuild(Application application)
- throws YarnException, IOException {
- Path appDir = checkAppNotExistOnHdfs(application);
- ServiceApiUtil.validateAndResolveApplication(application, fs, getConfig());
- createDirAndPersistApp(appDir, application);
- return EXIT_SUCCESS;
- }
-
- public int actionCreate(AbstractClusterBuildingActionArgs args)
- throws IOException, YarnException {
- actionCreate(loadAppJsonFromLocalFS(args));
- return EXIT_SUCCESS;
- }
-
- public ApplicationId actionCreate(Application application)
- throws IOException, YarnException {
- String appName = application.getName();
- validateClusterName(appName);
- ServiceApiUtil.validateAndResolveApplication(application, fs, getConfig());
- verifyNoLiveAppInRM(appName, "create");
- Path appDir = checkAppNotExistOnHdfs(application);
-
- // Write the definition first and then submit - AM will read the definition
- createDirAndPersistApp(appDir, application);
- ApplicationId appId = submitApp(application);
- cachedAppIds.put(appName, appId);
- application.setId(appId.toString());
- // update app definition with appId
- persistAppDef(appDir, application);
- return appId;
- }
-
- // Called by ServiceCLI
- protected int actionFlexByCLI(ClientArgs args)
- throws YarnException, IOException {
- ActionFlexArgs flexArgs = args.getActionFlexArgs();
- Map<String, Long> componentCounts =
- new HashMap<>(flexArgs.getComponentMap().size());
- Application persistedApp =
- ServiceApiUtil.loadApplication(fs, flexArgs.getClusterName());
- if (!StringUtils.isEmpty(persistedApp.getId())) {
- cachedAppIds.put(persistedApp.getName(),
- ApplicationId.fromString(persistedApp.getId()));
- }
- for (Map.Entry<String, String> entry : flexArgs.getComponentMap()
- .entrySet()) {
- String compName = entry.getKey();
- ServiceApiUtil.validateCompName(compName);
- Component component = persistedApp.getComponent(compName);
- if (component == null) {
- throw new IllegalArgumentException(entry.getKey() + " does not exist !");
- }
- long numberOfContainers =
- parseNumberOfContainers(component, entry.getValue());
- componentCounts.put(compName, numberOfContainers);
- }
- // throw usage exception if no changes proposed
- if (componentCounts.size() == 0) {
- actionHelp(ACTION_FLEX, args);
- }
- flexComponents(args.getClusterName(), componentCounts, persistedApp);
- return EXIT_SUCCESS;
- }
-
- // Parse the number of containers requested by user, e.g.
- // +5 means add 5 additional containers
- // -5 means reduce 5 containers, if it goes to negative, sets it to 0
- // 5 means sets it to 5 containers.
- private long parseNumberOfContainers(Component component, String newNumber) {
-
- long orig = component.getNumberOfContainers();
- if (newNumber.startsWith("+")) {
- return orig + Long.parseLong(newNumber.substring(1));
- } else if (newNumber.startsWith("-")) {
- long ret = orig - Long.parseLong(newNumber.substring(1));
- if (ret < 0) {
- LOG.warn(MessageFormat.format(
- "[COMPONENT {}]: component count goes to negative ({}{} = {}), reset it to 0.",
- component.getName(), orig, newNumber, ret));
- ret = 0;
- }
- return ret;
- } else {
- return Long.parseLong(newNumber);
- }
- }
-
- // Called by Rest Service
- public Map<String, Long> flexByRestService(String appName,
- Map<String, Long> componentCounts) throws YarnException, IOException {
- // load app definition
- Application persistedApp = ServiceApiUtil.loadApplication(fs, appName);
- cachedAppIds.put(persistedApp.getName(),
- ApplicationId.fromString(persistedApp.getId()));
- return flexComponents(appName, componentCounts, persistedApp);
- }
-
- private Map<String, Long> flexComponents(String appName,
- Map<String, Long> componentCounts, Application persistedApp)
- throws YarnException, IOException {
- validateClusterName(appName);
-
- Map<String, Long> original = new HashMap<>(componentCounts.size());
-
- ComponentCountProto.Builder countBuilder = ComponentCountProto.newBuilder();
- FlexComponentsRequestProto.Builder requestBuilder =
- FlexComponentsRequestProto.newBuilder();
-
- for (Component persistedComp : persistedApp.getComponents()) {
- String name = persistedComp.getName();
- if (componentCounts.containsKey(persistedComp.getName())) {
- original.put(name, persistedComp.getNumberOfContainers());
- persistedComp.setNumberOfContainers(componentCounts.get(name));
-
- // build the request
- countBuilder.setName(persistedComp.getName())
- .setNumberOfContainers(persistedComp.getNumberOfContainers());
- requestBuilder.addComponents(countBuilder.build());
- }
- }
- if (original.size() < componentCounts.size()) {
- componentCounts.keySet().removeAll(original.keySet());
- throw new YarnException("Components " + componentCounts.keySet()
- + " do not exist in app definition.");
- }
- ServiceApiUtil.jsonSerDeser
- .save(fs.getFileSystem(), ServiceApiUtil.getAppJsonPath(fs, appName),
- persistedApp, true);
- ClientAMProtocol proxy = getAMProxy(appName);
- if (proxy == null) {
- String message = appName + " is not running";
- LOG.error(message);
- throw new YarnException(message);
- }
- proxy.flexComponents(requestBuilder.build());
- for (Map.Entry<String, Long> entry : original.entrySet()) {
- LOG.info("[COMPONENT {}]: number of containers changed from {} to {}",
- entry.getKey(), entry.getValue(),
- componentCounts.get(entry.getKey()));
- }
- return original;
- }
-
- public int actionStop(String appName, boolean waitForAppStopped)
- throws YarnException, IOException {
- validateClusterName(appName);
- getAppId(appName);
- ApplicationId currentAppId = cachedAppIds.get(appName);
- ApplicationReport report = yarnClient.getApplicationReport(currentAppId);
- if (terminatedStates.contains(report.getYarnApplicationState())) {
- LOG.info("Application {} is already in a terminated state {}", appName,
- report.getYarnApplicationState());
- return EXIT_SUCCESS;
- }
- LOG.info("Stopping application {}, with appId = {}", appName, currentAppId);
- try {
- ClientAMProtocol proxy = getAMProxy(appName, report);
- cachedAppIds.remove(appName);
- cachedAMProxies.remove(appName);
- if (proxy != null) {
- // try to stop the app gracefully.
- StopRequestProto request = StopRequestProto.newBuilder().build();
- proxy.stop(request);
- LOG.info("Application " + appName + " is being gracefully stopped...");
- } else {
- yarnClient.killApplication(currentAppId,
- appName + " is forcefully killed by user!");
- LOG.info("Forcefully kill the application: " + appName);
- return EXIT_SUCCESS;
- }
-
- if (!waitForAppStopped) {
- return EXIT_SUCCESS;
- }
- // Wait until the app is killed.
- long startTime = System.currentTimeMillis();
- int pollCount = 0;
- while (true) {
- Thread.sleep(2000);
- report = yarnClient.getApplicationReport(currentAppId);
- if (terminatedStates.contains(report.getYarnApplicationState())) {
- LOG.info("Application " + appName + " is stopped.");
- break;
- }
- // Forcefully kill after 10 seconds.
- if ((System.currentTimeMillis() - startTime) > 10000) {
- LOG.info("Stop operation timeout stopping, forcefully kill the app "
- + appName);
- yarnClient.killApplication(currentAppId,
- "Forcefully kill the app by user");
- break;
- }
- if (++pollCount % 10 == 0) {
- LOG.info("Waiting for application " + appName + " to be stopped.");
- }
- }
- } catch (IOException | YarnException | InterruptedException e) {
- LOG.info("Failed to stop " + appName
- + " gracefully, forcefully kill the app.");
- yarnClient.killApplication(currentAppId, "Forcefully kill the app");
- }
- return EXIT_SUCCESS;
- }
-
- public int actionDestroy(String appName) throws Exception {
- validateClusterName(appName);
- verifyNoLiveAppInRM(appName, "Destroy");
- Path appDir = fs.buildClusterDirPath(appName);
- FileSystem fileSystem = fs.getFileSystem();
- // remove from the appId cache
- cachedAppIds.remove(appName);
- cachedAMProxies.remove(appName);
- if (fileSystem.exists(appDir)) {
- if (fileSystem.delete(appDir, true)) {
- LOG.info("Successfully deleted application dir for " + appName + ": "
- + appDir);
- } else {
- String message =
- "Failed to delete application + " + appName + " at: " + appDir;
- LOG.info(message);
- throw new YarnException(message);
- }
- }
- deleteZKNode(appName);
- String registryPath = ServiceRegistryUtils.registryPathForInstance(appName);
- try {
- getRegistryClient().delete(registryPath, true);
- } catch (IOException e) {
- LOG.warn("Error deleting registry entry {}", registryPath, e);
- }
- LOG.info("Destroyed cluster {}", appName);
- return EXIT_SUCCESS;
- }
-
- private synchronized RegistryOperations getRegistryClient()
- throws SliderException, IOException {
-
- if (registryClient == null) {
- registryClient =
- RegistryOperationsFactory.createInstance("ServiceClient", getConfig());
- registryClient.init(getConfig());
- registryClient.start();
- }
- return registryClient;
- }
-
- private void deleteZKNode(String clusterName) throws Exception {
- CuratorFramework curatorFramework = getCuratorClient();
- String user = RegistryUtils.currentUser();
- String zkPath = ServiceRegistryUtils.mkClusterPath(user, clusterName);
- if (curatorFramework.checkExists().forPath(zkPath) != null) {
- curatorFramework.delete().deletingChildrenIfNeeded().forPath(zkPath);
- LOG.info("Deleted zookeeper path: " + zkPath);
- }
- }
-
- private synchronized CuratorFramework getCuratorClient()
- throws BadConfigException {
- String registryQuorum =
- getConfig().get(RegistryConstants.KEY_REGISTRY_ZK_QUORUM);
-
- // though if neither is set: trouble
- if (SliderUtils.isUnset(registryQuorum)) {
- throw new BadConfigException(
- "No Zookeeper quorum provided in the" + " configuration property "
- + RegistryConstants.KEY_REGISTRY_ZK_QUORUM);
- }
- ZookeeperUtils.splitToHostsAndPortsStrictly(registryQuorum);
-
- if (curatorClient == null) {
- curatorClient =
- CuratorFrameworkFactory.builder().connectString(registryQuorum)
- .sessionTimeoutMs(10000).retryPolicy(new RetryNTimes(5, 2000))
- .build();
- curatorClient.start();
- }
- return curatorClient;
- }
-
- private int actionHelp(String actionName, CommonArgs args)
- throws YarnException, IOException {
- throw new UsageException(CommonArgs.usage(args, actionName));
- }
-
- private void verifyNoLiveAppInRM(String appname, String action)
- throws IOException, YarnException {
- Set<String> types = new HashSet<>(1);
- types.add(YarnServiceConstants.APP_TYPE);
- Set<String> tags = null;
- if (appname != null) {
- tags = Collections.singleton(SliderUtils.createNameTag(appname));
- }
- GetApplicationsRequest request = GetApplicationsRequest.newInstance();
- request.setApplicationTypes(types);
- request.setApplicationTags(tags);
- request.setApplicationStates(liveStates);
- List<ApplicationReport> reports = yarnClient.getApplications(request);
- if (!reports.isEmpty()) {
- throw new YarnException(
- "Failed to " + action + " application, as " + appname
- + " already exists.");
- }
- }
-
- private ApplicationId submitApp(Application app)
- throws IOException, YarnException {
- String appName = app.getName();
- Configuration conf = getConfig();
- Path appRootDir = fs.buildClusterDirPath(app.getName());
-
- YarnClientApplication yarnApp = yarnClient.createApplication();
- ApplicationSubmissionContext submissionContext =
- yarnApp.getApplicationSubmissionContext();
- ServiceApiUtil.validateCompResourceSize(
- yarnApp.getNewApplicationResponse().getMaximumResourceCapability(),
- app);
-
- submissionContext.setKeepContainersAcrossApplicationAttempts(true);
- if (app.getLifetime() > 0) {
- Map<ApplicationTimeoutType, Long> appTimeout = new HashMap<>();
- appTimeout.put(ApplicationTimeoutType.LIFETIME, app.getLifetime());
- submissionContext.setApplicationTimeouts(appTimeout);
- }
- submissionContext.setMaxAppAttempts(conf.getInt(
- YarnServiceConf.AM_RESTART_MAX, 2));
-
- Map<String, LocalResource> localResources = new HashMap<>();
-
- // copy local slideram-log4j.properties to hdfs and add to localResources
- boolean hasAMLog4j =
- addAMLog4jResource(appName, conf, localResources);
- // copy jars to hdfs and add to localResources
- addJarResource(appName, localResources);
- // add keytab if in secure env
- addKeytabResourceIfSecure(fs, localResources, conf, appName);
- if (LOG.isDebugEnabled()) {
- printLocalResources(localResources);
- }
- Map<String, String> env = addAMEnv(conf);
-
- // create AM CLI
- String cmdStr =
- buildCommandLine(appName, conf, appRootDir, hasAMLog4j);
- submissionContext.setResource(Resource.newInstance(YarnServiceConf
- .getLong(YarnServiceConf.AM_RESOURCE_MEM, YarnServiceConf.DEFAULT_KEY_AM_RESOURCE_MEM,
- app.getConfiguration(), conf), 1));
- String queue = app.getQueue();
- if (StringUtils.isEmpty(queue)) {
- queue = conf.get(YARN_QUEUE, "default");
- }
- submissionContext.setQueue(queue);
- submissionContext.setApplicationName(appName);
- submissionContext.setApplicationType(YarnServiceConstants.APP_TYPE);
- Set<String> appTags =
- AbstractClientProvider.createApplicationTags(appName, null, null);
- if (!appTags.isEmpty()) {
- submissionContext.setApplicationTags(appTags);
- }
- ContainerLaunchContext amLaunchContext =
- Records.newRecord(ContainerLaunchContext.class);
- amLaunchContext.setCommands(Collections.singletonList(cmdStr));
- amLaunchContext.setEnvironment(env);
- amLaunchContext.setLocalResources(localResources);
- submissionContext.setAMContainerSpec(amLaunchContext);
- yarnClient.submitApplication(submissionContext);
- return submissionContext.getApplicationId();
- }
-
- private void printLocalResources(Map<String, LocalResource> map) {
- LOG.debug("Added LocalResource for localization: ");
- StringBuilder builder = new StringBuilder();
- for (Map.Entry<String, LocalResource> entry : map.entrySet()) {
- builder.append(entry.getKey()).append(" -> ")
- .append(entry.getValue().getResource().getFile())
- .append(System.lineSeparator());
- }
- LOG.debug(builder.toString());
- }
-
- private String buildCommandLine(String appName, Configuration conf,
- Path appRootDir, boolean hasSliderAMLog4j) throws BadConfigException {
- JavaCommandLineBuilder CLI = new JavaCommandLineBuilder();
- CLI.forceIPv4().headless();
- //TODO CLI.setJVMHeap
- //TODO CLI.addJVMOPTS
- if (hasSliderAMLog4j) {
- CLI.sysprop(SYSPROP_LOG4J_CONFIGURATION, YARN_SERVICE_LOG4J_FILENAME);
- CLI.sysprop(SYSPROP_LOG_DIR, ApplicationConstants.LOG_DIR_EXPANSION_VAR);
- }
- CLI.add(ServiceMaster.class.getCanonicalName());
- CLI.add(ACTION_CREATE, appName);
- //TODO debugAM CLI.add(Arguments.ARG_DEBUG)
- CLI.add(Arguments.ARG_CLUSTER_URI, new Path(appRootDir, appName + ".json"));
- // pass the registry binding
- CLI.addConfOptionToCLI(conf, RegistryConstants.KEY_REGISTRY_ZK_ROOT,
- RegistryConstants.DEFAULT_ZK_REGISTRY_ROOT);
- CLI.addMandatoryConfOption(conf, RegistryConstants.KEY_REGISTRY_ZK_QUORUM);
-
- // write out the path output
- CLI.addOutAndErrFiles(STDOUT_AM, STDERR_AM);
- String cmdStr = CLI.build();
- LOG.info("AM launch command: {}", cmdStr);
- return cmdStr;
- }
-
- private Map<String, String> addAMEnv(Configuration conf) throws IOException {
- Map<String, String> env = new HashMap<>();
- ClasspathConstructor classpath =
- buildClasspath(YarnServiceConstants.SUBMITTED_CONF_DIR, "lib", fs, getConfig()
- .getBoolean(YarnConfiguration.IS_MINI_YARN_CLUSTER, false));
- env.put("CLASSPATH", classpath.buildClasspath());
- env.put("LANG", "en_US.UTF-8");
- env.put("LC_ALL", "en_US.UTF-8");
- env.put("LANGUAGE", "en_US.UTF-8");
- String jaas = System.getenv("HADOOP_JAAS_DEBUG");
- if (jaas != null) {
- env.put("HADOOP_JAAS_DEBUG", jaas);
- }
- if (!UserGroupInformation.isSecurityEnabled()) {
- String userName = UserGroupInformation.getCurrentUser().getUserName();
- LOG.info("Run as user " + userName);
- // HADOOP_USER_NAME env is used by UserGroupInformation when log in
- // This env makes AM run as this user
- env.put("HADOOP_USER_NAME", userName);
- }
- LOG.info("AM env: \n{}", stringifyMap(env));
- return env;
- }
-
- protected Path addJarResource(String appName,
- Map<String, LocalResource> localResources)
- throws IOException, SliderException {
- Path libPath = fs.buildClusterDirPath(appName);
- ProviderUtils
- .addProviderJar(localResources, ServiceMaster.class, SERVICE_CORE_JAR, fs,
- libPath, "lib", false);
- Path dependencyLibTarGzip = fs.getDependencyTarGzip();
- if (fs.isFile(dependencyLibTarGzip)) {
- LOG.info("Loading lib tar from " + fs.getFileSystem().getScheme() + ":/"
- + dependencyLibTarGzip);
- SliderUtils.putAmTarGzipAndUpdate(localResources, fs);
- } else {
- String[] libs = SliderUtils.getLibDirs();
- for (String libDirProp : libs) {
- ProviderUtils.addAllDependencyJars(localResources, fs, libPath, "lib",
- libDirProp);
- }
- }
- return libPath;
- }
-
- private boolean addAMLog4jResource(String appName, Configuration conf,
- Map<String, LocalResource> localResources)
- throws IOException, BadClusterStateException {
- boolean hasAMLog4j = false;
- String hadoopConfDir =
- System.getenv(ApplicationConstants.Environment.HADOOP_CONF_DIR.name());
- if (hadoopConfDir != null) {
- File localFile =
- new File(hadoopConfDir, YarnServiceConstants.YARN_SERVICE_LOG4J_FILENAME);
- if (localFile.exists()) {
- Path localFilePath = createLocalPath(localFile);
- Path appDirPath = fs.buildClusterDirPath(appName);
- Path remoteConfPath =
- new Path(appDirPath, YarnServiceConstants.SUBMITTED_CONF_DIR);
- Path remoteFilePath =
- new Path(remoteConfPath, YarnServiceConstants.YARN_SERVICE_LOG4J_FILENAME);
- copy(conf, localFilePath, remoteFilePath);
- LocalResource localResource =
- fs.createAmResource(remoteConfPath, LocalResourceType.FILE);
- localResources.put(localFilePath.getName(), localResource);
- hasAMLog4j = true;
- } else {
- LOG.warn("AM log4j property file doesn't exist: " + localFile);
- }
- }
- return hasAMLog4j;
- }
-
- public int actionStart(String appName) throws YarnException, IOException {
- validateClusterName(appName);
- Path appDir = checkAppExistOnHdfs(appName);
- Application application = ServiceApiUtil.loadApplication(fs, appName);
- ServiceApiUtil.validateAndResolveApplication(application, fs, getConfig());
- // see if it is actually running and bail out;
- verifyNoLiveAppInRM(appName, "thaw");
- ApplicationId appId = submitApp(application);
- application.setId(appId.toString());
- // write app definition on to hdfs
- createDirAndPersistApp(appDir, application);
- return 0;
- }
-
- private Path checkAppNotExistOnHdfs(Application application)
- throws IOException, SliderException {
- Path appDir = fs.buildClusterDirPath(application.getName());
- fs.verifyDirectoryNonexistent(
- new Path(appDir, application.getName() + ".json"));
- return appDir;
- }
-
- private Path checkAppExistOnHdfs(String appName)
- throws IOException, SliderException {
- Path appDir = fs.buildClusterDirPath(appName);
- fs.verifyPathExists(new Path(appDir, appName + ".json"));
- return appDir;
- }
-
- private void createDirAndPersistApp(Path appDir, Application application)
- throws IOException, SliderException {
- FsPermission appDirPermission = new FsPermission("750");
- fs.createWithPermissions(appDir, appDirPermission);
- persistAppDef(appDir, application);
- }
-
- private void persistAppDef(Path appDir, Application application)
- throws IOException {
- Path appJson = new Path(appDir, application.getName() + ".json");
- ServiceApiUtil.jsonSerDeser
- .save(fs.getFileSystem(), appJson, application, true);
- LOG.info(
- "Persisted application " + application.getName() + " at " + appJson);
- }
-
- private void addKeytabResourceIfSecure(SliderFileSystem fileSystem,
- Map<String, LocalResource> localResource, Configuration conf,
- String appName) throws IOException, BadConfigException {
- if (!UserGroupInformation.isSecurityEnabled()) {
- return;
- }
- String keytabPreInstalledOnHost =
- conf.get(YarnServiceConf.KEY_AM_KEYTAB_LOCAL_PATH);
- if (StringUtils.isEmpty(keytabPreInstalledOnHost)) {
- String amKeytabName =
- conf.get(YarnServiceConf.KEY_AM_LOGIN_KEYTAB_NAME);
- String keytabDir = conf.get(YarnServiceConf.KEY_HDFS_KEYTAB_DIR);
- Path keytabPath =
- fileSystem.buildKeytabPath(keytabDir, amKeytabName, appName);
- if (fileSystem.getFileSystem().exists(keytabPath)) {
- LocalResource keytabRes =
- fileSystem.createAmResource(keytabPath, LocalResourceType.FILE);
- localResource
- .put(YarnServiceConstants.KEYTAB_DIR + "/" + amKeytabName, keytabRes);
- LOG.info("Adding AM keytab on hdfs: " + keytabPath);
- } else {
- LOG.warn("No keytab file was found at {}.", keytabPath);
- if (conf.getBoolean(YarnServiceConf.KEY_AM_LOGIN_KEYTAB_REQUIRED, false)) {
- throw new BadConfigException("No keytab file was found at %s.",
- keytabPath);
- } else {
- LOG.warn("The AM will be "
- + "started without a kerberos authenticated identity. "
- + "The application is therefore not guaranteed to remain "
- + "operational beyond 24 hours.");
- }
- }
- }
- }
-
- public String updateLifetime(String appName, long lifetime)
- throws YarnException, IOException {
- getAppId(appName);
- ApplicationId currentAppId = cachedAppIds.get(appName);
- ApplicationReport report = yarnClient.getApplicationReport(currentAppId);
- if (report == null) {
- throw new YarnException("Application not found for " + appName);
- }
- ApplicationId appId = report.getApplicationId();
- LOG.info("Updating lifetime of an application: appName = " + appName
- + ", appId = " + appId + ", lifetime = " + lifetime);
- Map<ApplicationTimeoutType, String> map = new HashMap<>();
- String newTimeout =
- Times.formatISO8601(System.currentTimeMillis() + lifetime * 1000);
- map.put(ApplicationTimeoutType.LIFETIME, newTimeout);
- UpdateApplicationTimeoutsRequest request =
- UpdateApplicationTimeoutsRequest.newInstance(appId, map);
- yarnClient.updateApplicationTimeouts(request);
- LOG.info(
- "Successfully updated lifetime for an application: appName = " + appName
- + ", appId = " + appId + ". New expiry time in ISO8601 format is "
- + newTimeout);
- return newTimeout;
- }
-
- public Application getStatus(String appName)
- throws IOException, YarnException {
- validateClusterName(appName);
- ApplicationId currentAppId = getAppId(appName);
- ApplicationReport appReport = yarnClient.getApplicationReport(currentAppId);
- ClientAMProtocol amProxy = getAMProxy(appName, appReport);
- Application appSpec;
- if (amProxy != null) {
- GetStatusResponseProto response =
- amProxy.getStatus(GetStatusRequestProto.newBuilder().build());
- appSpec = ServiceApiUtil.jsonSerDeser.fromJson(response.getStatus());
- } else {
- appSpec = new Application();
- appSpec.setName(appName);
- }
- ApplicationTimeout lifetime =
- appReport.getApplicationTimeouts().get(ApplicationTimeoutType.LIFETIME);
- if (lifetime != null) {
- appSpec.setLifetime(lifetime.getRemainingTime());
- }
- return appSpec;
- }
-
- public YarnClient getYarnClient() {
- return this.yarnClient;
- }
-
- public int actionDependency(ActionDependencyArgs args)
- throws IOException, YarnException {
- String currentUser = RegistryUtils.currentUser();
- LOG.info("Running command as user {}", currentUser);
-
- Path dependencyLibTarGzip = fs.getDependencyTarGzip();
-
- // Check if dependency has already been uploaded, in which case log
- // appropriately and exit success (unless overwrite has been requested)
- if (fs.isFile(dependencyLibTarGzip) && !args.overwrite) {
- System.out.println(String.format(
- "Dependency libs are already uploaded to %s. Use %s "
- + "if you want to re-upload", dependencyLibTarGzip.toUri(),
- Arguments.ARG_OVERWRITE));
- return EXIT_SUCCESS;
- }
-
- String[] libDirs = SliderUtils.getLibDirs();
- if (libDirs.length > 0) {
- File tempLibTarGzipFile = File.createTempFile(
- YarnServiceConstants.DEPENDENCY_TAR_GZ_FILE_NAME + "_",
- YarnServiceConstants.DEPENDENCY_TAR_GZ_FILE_EXT);
- // copy all jars
- tarGzipFolder(libDirs, tempLibTarGzipFile, createJarFilter());
-
- LOG.info("Version Info: " + VersionInfo.getBuildVersion());
- fs.copyLocalFileToHdfs(tempLibTarGzipFile, dependencyLibTarGzip,
- new FsPermission(YarnServiceConstants.DEPENDENCY_DIR_PERMISSIONS));
- return EXIT_SUCCESS;
- } else {
- return EXIT_FALSE;
- }
- }
-
- // Get AMProxy with the appReport provided
- protected ClientAMProtocol getAMProxy(String appName, ApplicationReport report)
- throws IOException {
- if (!cachedAMProxies.containsKey(appName) && !StringUtils
- .isEmpty(report.getHost())) {
- insertAMProxy(appName, report.getHost(), report.getRpcPort());
- }
- return cachedAMProxies.get(appName);
- }
-
- // Get AMProxy without appReport provided - it'll getAppReport from RM
- protected ClientAMProtocol getAMProxy(String appName)
- throws IOException, YarnException {
- ApplicationId currentAppId = getAppId(appName);
-
- if (cachedAMProxies.containsKey(appName)) {
- return cachedAMProxies.get(appName);
- } else {
- ApplicationReport appReport =
- yarnClient.getApplicationReport(currentAppId);
- String host = appReport.getHost();
- int port = appReport.getRpcPort();
- if (!StringUtils.isEmpty(host)) {
- return insertAMProxy(appName, host, port);
- }
- return null;
- }
- }
-
- private ClientAMProtocol insertAMProxy(String appName, String host, int port)
- throws IOException {
- InetSocketAddress address =
- NetUtils.createSocketAddrForHost(host, port);
- ClientAMProtocol amProxy =
- ClientAMProxy.createProxy(getConfig(), ClientAMProtocol.class,
- UserGroupInformation.getCurrentUser(), rpc, address);
- cachedAMProxies.put(appName, amProxy);
- return amProxy;
- }
-
- private synchronized ApplicationId getAppId(String appName)
- throws IOException, YarnException {
- if (cachedAppIds.containsKey(appName)) {
- return cachedAppIds.get(appName);
- }
- Application persistedApp = ServiceApiUtil.loadApplication(fs, appName);
- if (persistedApp == null) {
- throw new YarnException("Application " + appName
- + " doesn't exist on hdfs. Please check if the app exists in RM");
- }
- ApplicationId currentAppId = ApplicationId.fromString(persistedApp.getId());
- cachedAppIds.put(appName, currentAppId);
- return currentAppId;
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractActionArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractActionArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractActionArgs.java
deleted file mode 100644
index ea3bb0a..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractActionArgs.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.yarn.service.exceptions.BadCommandArgumentsException;
-import org.apache.hadoop.yarn.service.exceptions.ErrorStrings;
-import org.apache.hadoop.yarn.service.exceptions.UsageException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Base args for all actions
- */
-public abstract class AbstractActionArgs extends ArgOps implements Arguments {
- protected static final Logger log =
- LoggerFactory.getLogger(AbstractActionArgs.class);
-
-
- protected AbstractActionArgs() {
- }
-
- /**
- * URI/binding to the filesystem
- */
- @Parameter(names = {ARG_FILESYSTEM, ARG_FILESYSTEM_LONG},
- description = "Filesystem Binding")
- public String filesystemBinding;
-
- @Parameter(names = {ARG_BASE_PATH},
- description = "Service base path on the filesystem",
- converter = PathArgumentConverter.class)
- public Path basePath;
-
- /**
- * This is the default parameter
- */
- @Parameter
- public final List<String> parameters = new ArrayList<>();
-
- /**
- * get the name: relies on arg 1 being the cluster name in all operations
- * @return the name argument, null if there is none
- */
- public String getClusterName() {
- return (parameters.isEmpty()) ? null : parameters.get(0);
- }
-
- /**
- -D name=value
-
- Define an configuration option which overrides any options in
- the configuration XML files of the image or in the image configuration
- directory. The values will be persisted.
- Configuration options are only passed to the cluster when creating or reconfiguring a cluster.
-
- */
-
- @Parameter(names = ARG_DEFINE, arity = 1, description = "Definitions")
- public final List<String> definitions = new ArrayList<>();
-
- /**
- * System properties
- */
- @Parameter(names = {ARG_SYSPROP}, arity = 1,
- description = "system properties in the form name value" +
- " These are set after the JVM is started.")
- public final List<String> sysprops = new ArrayList<>(0);
-
-
- @Parameter(names = {ARG_MANAGER_SHORT, ARG_MANAGER},
- description = "Binding (usually hostname:port) of the YARN resource manager")
- public String manager;
-
-
- @Parameter(names = ARG_DEBUG, description = "Debug mode")
- public boolean debug = false;
-
- @Parameter(names = {ARG_HELP}, description = "Help", help = true)
- public boolean help = false;
-
- /**
- * Get the min #of params expected
- * @return the min number of params in the {@link #parameters} field
- */
- public int getMinParams() {
- return 1;
- }
-
- /**
- * Get the name of the action
- * @return the action name
- */
- public abstract String getActionName() ;
-
- /**
- * Get the max #of params expected
- * @return the number of params in the {@link #parameters} field;
- */
- public int getMaxParams() {
- return getMinParams();
- }
-
- public void validate() throws BadCommandArgumentsException, UsageException {
-
- int minArgs = getMinParams();
- int actionArgSize = parameters.size();
- if (minArgs > actionArgSize) {
- throw new BadCommandArgumentsException(
- ErrorStrings.ERROR_NOT_ENOUGH_ARGUMENTS + getActionName() +
- ", Expected minimum " + minArgs + " but got " + actionArgSize);
- }
- int maxArgs = getMaxParams();
- if (maxArgs == -1) {
- maxArgs = minArgs;
- }
- if (actionArgSize > maxArgs) {
- String message = String.format("%s for action %s: limit is %d but saw %d: ",
- ErrorStrings.ERROR_TOO_MANY_ARGUMENTS,
- getActionName(), maxArgs,
- actionArgSize);
-
- log.error(message);
- int index = 1;
- StringBuilder buf = new StringBuilder(message);
- for (String actionArg : parameters) {
- log.error("[{}] \"{}\"", index++, actionArg);
- buf.append(" \"").append(actionArg).append("\" ");
- }
- throw new BadCommandArgumentsException(buf.toString());
- }
- }
-
- @Override
- public String toString() {
- return super.toString() + ": " + getActionName();
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractArgsDelegate.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractArgsDelegate.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractArgsDelegate.java
deleted file mode 100644
index 457e357..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractArgsDelegate.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import org.apache.hadoop.yarn.service.client.params.ArgOps;
-import org.apache.hadoop.yarn.service.client.params.Arguments;
-
-/**
- * Base class for all the delegates
- */
-public class AbstractArgsDelegate extends ArgOps implements Arguments {
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractClusterBuildingActionArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractClusterBuildingActionArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractClusterBuildingActionArgs.java
deleted file mode 100644
index 017286f..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/AbstractClusterBuildingActionArgs.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.ParametersDelegate;
-import com.google.common.annotations.VisibleForTesting;
-import org.apache.hadoop.yarn.service.exceptions.BadCommandArgumentsException;
-
-import java.io.File;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Abstract Action to build things; shares args across build and
- * list
- */
-public abstract class AbstractClusterBuildingActionArgs
- extends AbstractActionArgs {
- @Parameter(names = {ARG_APPDEF},
- description = "Template application definition file in JSON format.")
- public File appDef;
-
- public File getAppDef() {
- return appDef;
- }
-
- @Parameter(names = {
- ARG_QUEUE }, description = "Queue to submit the application")
- public String queue;
-
- @Parameter(names = {
- ARG_LIFETIME }, description = "Lifetime of the application from the time of request")
- public long lifetime;
-
- @ParametersDelegate
- public ComponentArgsDelegate componentDelegate = new ComponentArgsDelegate();
-
- @ParametersDelegate
- public OptionArgsDelegate optionsDelegate =
- new OptionArgsDelegate();
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionBuildArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionBuildArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionBuildArgs.java
deleted file mode 100644
index c2ff545..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionBuildArgs.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameters;
-
-@Parameters(commandNames = { SliderActions.ACTION_BUILD},
- commandDescription = SliderActions.DESCRIBE_ACTION_BUILD)
-
-public class ActionBuildArgs extends AbstractClusterBuildingActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_BUILD;
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionClientArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionClientArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionClientArgs.java
deleted file mode 100644
index 0097b4e..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionClientArgs.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-import org.apache.hadoop.yarn.service.client.params.AbstractActionArgs;
-import org.apache.hadoop.yarn.service.client.params.SliderActions;
-
-import java.io.File;
-
-@Parameters(commandNames = { SliderActions.ACTION_CLIENT},
- commandDescription = SliderActions.DESCRIBE_ACTION_CLIENT)
-
-public class ActionClientArgs extends AbstractActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_CLIENT;
- }
-
- @Parameter(names = {ARG_INSTALL},
- description = "Install client")
- public boolean install;
-
- @Parameter(names = {ARG_NAME},
- description = "The name of the application")
- public String name;
-
- @Parameter(names = {ARG_PACKAGE},
- description = "Path to app package")
- public String packageURI;
-
- @Parameter(names = {ARG_DEST},
- description = "The location where to install the client")
- public File installLocation;
-
- @Parameter(names = {ARG_CONFIG},
- description = "Client configuration")
- public File clientConfig;
-
- /**
- * Get the min #of params expected
- *
- * @return the min number of params in the {@link #parameters} field
- */
- public int getMinParams() {
- return 0;
- }
-
- @Override
- public int getMaxParams() {
- return 1;
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionCreateArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionCreateArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionCreateArgs.java
deleted file mode 100644
index eecffb6..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionCreateArgs.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameters;
-
-@Parameters(commandNames = { SliderActions.ACTION_CREATE},
- commandDescription = SliderActions.DESCRIBE_ACTION_CREATE)
-
-public class ActionCreateArgs extends AbstractClusterBuildingActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_CREATE;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDependencyArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDependencyArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDependencyArgs.java
deleted file mode 100644
index 51e07c9..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDependencyArgs.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import org.apache.hadoop.yarn.service.exceptions.BadCommandArgumentsException;
-import org.apache.hadoop.yarn.service.exceptions.UsageException;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-
-@Parameters(commandNames = { SliderActions.ACTION_DEPENDENCY },
- commandDescription = SliderActions.DESCRIBE_ACTION_DEPENDENCY)
-public class ActionDependencyArgs extends AbstractActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_DEPENDENCY;
- }
-
- @Parameter(names = { ARG_UPLOAD },
- description = "Upload AM and agent libraries to HDFS for this client")
- public boolean upload;
-
- @Parameter(names = { ARG_OVERWRITE },
- description = "Overwrite current uploaded dependency libs")
- public boolean overwrite = false;
-
- /**
- * Get the min #of params expected
- *
- * @return the min number of params in the {@link #parameters} field
- */
- public int getMinParams() {
- return 0;
- }
-
- @Override
- public int getMaxParams() {
- return 1;
- }
-
- @Override
- public void validate() throws BadCommandArgumentsException, UsageException {
- super.validate();
-
- if (!upload) {
- throw new UsageException("Option " + ARG_UPLOAD + " is mandatory");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDestroyArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDestroyArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDestroyArgs.java
deleted file mode 100644
index 8c41c04..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionDestroyArgs.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-
-@Parameters(commandNames = { SliderActions.ACTION_DESTROY},
- commandDescription = SliderActions.DESCRIBE_ACTION_DESTROY)
-
-public class ActionDestroyArgs extends AbstractActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_DESTROY;
- }
-
- @Parameter(names = {ARG_FORCE},
- description = "force the operation")
- public boolean force;
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionExistsArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionExistsArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionExistsArgs.java
deleted file mode 100644
index ba3c5a9..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionExistsArgs.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-import org.apache.hadoop.yarn.service.client.params.AbstractActionArgs;
-import org.apache.hadoop.yarn.service.client.params.SliderActions;
-
-import java.io.File;
-
-@Parameters(commandNames = { SliderActions.ACTION_EXISTS},
- commandDescription = SliderActions.DESCRIBE_ACTION_EXISTS)
-
-public class ActionExistsArgs extends AbstractActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_EXISTS;
- }
-
- @Parameter(names = {ARG_LIVE},
- description = "verify that the application is running")
- public boolean live;
-
- @Parameter(names = {ARG_STATE},
- description = "verify that the application is in the specific YARN state")
- public String state = "";
-
- @Parameter(names = {ARG_OUTPUT, ARG_OUTPUT_SHORT},
- description = "output file for any application report")
- public File out;
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFlexArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFlexArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFlexArgs.java
deleted file mode 100644
index b7acf58..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFlexArgs.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameters;
-import com.beust.jcommander.ParametersDelegate;
-import org.apache.hadoop.yarn.service.exceptions.BadCommandArgumentsException;
-
-import java.util.List;
-import java.util.Map;
-
-@Parameters(commandNames = { SliderActions.ACTION_FLEX},
- commandDescription = SliderActions.DESCRIBE_ACTION_FLEX)
-
-public class ActionFlexArgs extends AbstractActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_FLEX;
- }
-
- @ParametersDelegate
- public ComponentArgsDelegate componentDelegate = new ComponentArgsDelegate();
-
- /**
- * Get the component mapping (may be empty, but never null)
- * @return mapping
- * @throws BadCommandArgumentsException parse problem
- */
- public Map<String, String> getComponentMap() throws
- BadCommandArgumentsException {
- return componentDelegate.getComponentMap();
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFreezeArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFreezeArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFreezeArgs.java
deleted file mode 100644
index aecf0eb..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionFreezeArgs.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-import com.beust.jcommander.ParametersDelegate;
-
-@Parameters(commandNames = { SliderActions.ACTION_STOP },
- commandDescription = SliderActions.DESCRIBE_ACTION_FREEZE)
-
-public class ActionFreezeArgs extends AbstractActionArgs implements
- WaitTimeAccessor {
- @Override
- public String getActionName() {
- return SliderActions.ACTION_STOP;
- }
-
- public static final String FREEZE_COMMAND_ISSUED = "stop command issued";
- @ParametersDelegate
- public WaitArgsDelegate waitDelegate = new WaitArgsDelegate();
-
- @Override
- public int getWaittime() {
- return waitDelegate.getWaittime();
- }
-
- @Override
- public void setWaittime(int waittime) {
- waitDelegate.setWaittime(waittime);
- }
-
- @Parameter(names={ARG_MESSAGE},
- description = "reason for the operation")
- public String message = FREEZE_COMMAND_ISSUED;
-
- @Parameter(names = {ARG_FORCE},
- description = "force the operation")
- public boolean force;
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionHelpArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionHelpArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionHelpArgs.java
deleted file mode 100644
index 51aa88a..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionHelpArgs.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameters;
-import org.apache.hadoop.yarn.service.client.params.AbstractActionArgs;
-import org.apache.hadoop.yarn.service.client.params.SliderActions;
-
-/**
- * The Help command
- */
-@Parameters(commandNames = { SliderActions.ACTION_HELP},
- commandDescription = SliderActions.DESCRIBE_ACTION_HELP)
-public class ActionHelpArgs extends AbstractActionArgs {
- @Override
- public String getActionName() {
- return SliderActions.ACTION_HELP;
- }
-
- /**
- * Get the min #of params expected
- * @return the min number of params in the {@link #parameters} field
- */
- @Override
- public int getMinParams() {
- return 0;
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKDiagArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKDiagArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKDiagArgs.java
deleted file mode 100644
index 061121e..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKDiagArgs.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-import org.apache.hadoop.yarn.service.utils.SliderUtils;
-import org.apache.hadoop.yarn.service.exceptions.BadCommandArgumentsException;
-import org.apache.hadoop.yarn.service.exceptions.UsageException;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-@Parameters(commandNames = { SliderActions.ACTION_KDIAG},
- commandDescription = SliderActions.DESCRIBE_ACTION_KDIAG)
-
-public class ActionKDiagArgs extends AbstractActionArgs {
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_KDIAG;
- }
-
- @Parameter(names = {ARG_SERVICES}, variableArity = true,
- description =" list of services to check")
- public List<String> services = new ArrayList<>();
-
- @Parameter(names = {ARG_OUTPUT, ARG_OUTPUT_SHORT},
- description = "output file for report")
- public File out;
-
- @Parameter(names = {ARG_KEYTAB}, description = "keytab to use")
- public File keytab;
-
- @Parameter(names = {ARG_KEYLEN}, description = "minimum key length")
- public int keylen = 256;
-
- @Parameter(names = {ARG_PRINCIPAL}, description = "principal to log in from a keytab")
- public String principal;
-
- @Parameter(names = {ARG_SECURE}, description = "Is security required")
- public boolean secure = false;
-
- @Override
- public int getMinParams() {
- return 0;
- }
-
- @Override
- public void validate() throws BadCommandArgumentsException, UsageException {
- super.validate();
- if (keytab != null && SliderUtils.isUnset(principal)) {
- throw new UsageException("Missing argument " + ARG_PRINCIPAL);
- }
- if (keytab == null && SliderUtils.isSet(principal)) {
- throw new UsageException("Missing argument " + ARG_KEYTAB);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKeytabArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKeytabArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKeytabArgs.java
deleted file mode 100644
index 7e51457..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionKeytabArgs.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-import org.apache.hadoop.yarn.service.client.params.AbstractActionArgs;
-import org.apache.hadoop.yarn.service.client.params.SliderActions;
-
-@Parameters(commandNames = { SliderActions.ACTION_KEYTAB},
- commandDescription = SliderActions.DESCRIBE_ACTION_KEYTAB)
-
-public class ActionKeytabArgs extends AbstractActionArgs {
-
- public ActionKeytabArgs() {
- super();
- }
-
- @Override
- public String getActionName() {
- return SliderActions.ACTION_INSTALL_KEYTAB;
- }
-
- @Parameter(names = {ARG_KEYTABINSTALL},
- description = "Install the keytab")
- public boolean install;
-
- @Parameter(names = {ARG_KEYTABDELETE},
- description = "Delete the keytab")
- public boolean delete;
-
- @Parameter(names = {ARG_KEYTABLIST},
- description = "List of installed keytabs")
- public boolean list;
-
- @Parameter(names = {ARG_KEYTAB},
- description = "Path or name of the keytab")
- public String keytab;
-
- @Parameter(names = {ARG_FOLDER},
- description = "The name of the folder in which to store the keytab")
- public String folder;
-
- @Parameter(names = {ARG_OVERWRITE}, description = "Overwrite existing keytab")
- public boolean overwrite = false;
-
- /**
- * Get the min #of params expected
- * @return the min number of params in the {@link #parameters} field
- */
- public int getMinParams() {
- return 0;
- }
-
- @Override
- public int getMaxParams() {
- return 3;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4f8fe178/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionListArgs.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionListArgs.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionListArgs.java
deleted file mode 100644
index 005c172..0000000
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/hadoop/yarn/service/client/params/ActionListArgs.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.hadoop.yarn.service.client.params;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import com.beust.jcommander.Parameter;
-import com.beust.jcommander.Parameters;
-import org.apache.hadoop.yarn.service.client.params.AbstractActionArgs;
-import org.apache.hadoop.yarn.service.client.params.SliderActions;
-
-@Parameters(commandNames = { SliderActions.ACTION_LIST},
- commandDescription = SliderActions.DESCRIBE_ACTION_LIST)
-
-public class ActionListArgs extends AbstractActionArgs {
- @Override
- public String getActionName() {
- return SliderActions.ACTION_LIST;
- }
-
- @Parameter(names = {ARG_LIVE},
- description = "List only live application instances")
- public boolean live;
-
- @Parameter(names = {ARG_STATE},
- description = "list only applications in the specific YARN state")
- public String state = "";
-
- @Parameter(names = {ARG_VERBOSE},
- description = "print out information in details")
- public boolean verbose = false;
-
- @Parameter(names = {ARG_CONTAINERS},
- description = "List containers of an application instance")
- public boolean containers;
-
- @Parameter(names = {ARG_VERSION},
- description = "Filter containers by app version (used with " +
- ARG_CONTAINERS + ")")
- public String version;
-
- @Parameter(names = {ARG_COMPONENTS}, variableArity = true,
- description = "Filter containers by component names (used with " +
- ARG_CONTAINERS + ")")
- public Set<String> components = new HashSet<>(0);
-
- /**
- * Get the min #of params expected
- * @return the min number of params in the {@link #parameters} field
- */
- public int getMinParams() {
- return 0;
- }
-
- @Override
- public int getMaxParams() {
- return 1;
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org