Repository: incubator-slider
Updated Branches:
  refs/heads/feature/SLIDER-863-windows-tests [created] 788e3d204


SLIDER-863 unix-side-coding of fixe for TestActionPagage, 
TestUpgradeCommandOptions and TestAgentClientProvider2


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

Branch: refs/heads/feature/SLIDER-863-windows-tests
Commit: 788e3d204813c4d46a1f5e15babe99457a93056b
Parents: 9cb5848
Author: Steve Loughran <[email protected]>
Authored: Mon Apr 27 18:43:17 2015 +0100
Committer: Steve Loughran <[email protected]>
Committed: Mon Apr 27 18:43:17 2015 +0100

----------------------------------------------------------------------
 .../org/apache/slider/client/SliderClient.java  | 115 ++++++++++++-------
 .../agent/actions/TestActionPackage.groovy      |  40 ++++---
 .../client/TestUpgradeCommandOptions.groovy     |  27 ++---
 .../apache/slider/test/SliderTestUtils.groovy   |   4 +-
 .../agent/TestAgentClientProvider2.java         |  16 ++-
 5 files changed, 123 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/788e3d20/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 32a7120..6e6503c 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
@@ -21,7 +21,6 @@ package org.apache.slider.client;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.io.Files;
-
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
@@ -38,8 +37,14 @@ import org.apache.hadoop.hdfs.DFSConfigKeys;
 import org.apache.hadoop.hdfs.HdfsConfiguration;
 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.binding.RegistryPathUtils;
+import org.apache.hadoop.registry.client.binding.RegistryUtils;
+import org.apache.hadoop.registry.client.exceptions.NoRecordException;
+import org.apache.hadoop.registry.client.types.Endpoint;
 import org.apache.hadoop.registry.client.types.RegistryPathStatus;
+import org.apache.hadoop.registry.client.types.ServiceRecord;
+import org.apache.hadoop.registry.client.types.yarn.YarnRegistryAttributes;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.security.alias.CredentialProvider;
 import org.apache.hadoop.security.alias.CredentialProviderFactory;
@@ -55,15 +60,6 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.exceptions.ApplicationAttemptNotFoundException;
 import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException;
 import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.hadoop.registry.client.api.RegistryOperations;
-
-import static org.apache.hadoop.registry.client.binding.RegistryUtils.*;
-
-import org.apache.hadoop.registry.client.binding.RegistryUtils;
-import org.apache.hadoop.registry.client.exceptions.NoRecordException;
-import org.apache.hadoop.registry.client.types.Endpoint;
-import org.apache.hadoop.registry.client.types.ServiceRecord;
-import org.apache.hadoop.registry.client.types.yarn.YarnRegistryAttributes;
 import org.apache.hadoop.yarn.util.ConverterUtils;
 import org.apache.slider.api.ClusterDescription;
 import org.apache.slider.api.ClusterNode;
@@ -82,21 +78,21 @@ import org.apache.slider.common.SliderKeys;
 import org.apache.slider.common.SliderXmlConfKeys;
 import org.apache.slider.common.params.AbstractActionArgs;
 import org.apache.slider.common.params.AbstractClusterBuildingActionArgs;
-import org.apache.slider.common.params.ActionClientArgs;
-import org.apache.slider.common.params.ActionDiagnosticArgs;
-import org.apache.slider.common.params.ActionExistsArgs;
-import org.apache.slider.common.params.ActionInstallKeytabArgs;
-import org.apache.slider.common.params.ActionInstallPackageArgs;
-import org.apache.slider.common.params.ActionPackageArgs;
 import org.apache.slider.common.params.ActionAMSuicideArgs;
+import org.apache.slider.common.params.ActionClientArgs;
 import org.apache.slider.common.params.ActionCreateArgs;
+import org.apache.slider.common.params.ActionDiagnosticArgs;
 import org.apache.slider.common.params.ActionEchoArgs;
+import org.apache.slider.common.params.ActionExistsArgs;
 import org.apache.slider.common.params.ActionFlexArgs;
 import org.apache.slider.common.params.ActionFreezeArgs;
+import org.apache.slider.common.params.ActionInstallKeytabArgs;
+import org.apache.slider.common.params.ActionInstallPackageArgs;
 import org.apache.slider.common.params.ActionKeytabArgs;
 import org.apache.slider.common.params.ActionKillContainerArgs;
 import org.apache.slider.common.params.ActionListArgs;
 import org.apache.slider.common.params.ActionLookupArgs;
+import org.apache.slider.common.params.ActionPackageArgs;
 import org.apache.slider.common.params.ActionRegistryArgs;
 import org.apache.slider.common.params.ActionResolveArgs;
 import org.apache.slider.common.params.ActionStatusArgs;
@@ -183,7 +179,6 @@ import java.io.Writer;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.URISyntaxException;
-import java.net.UnknownHostException;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -199,7 +194,37 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.regex.Pattern;
 
-import static org.apache.slider.common.params.SliderActions.*;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.ServiceRecordMarshal;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.currentUser;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.extractServiceRecords;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.listServiceRecords;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.servicePath;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.serviceclassPath;
+import static 
org.apache.hadoop.registry.client.binding.RegistryUtils.statChildren;
+import static org.apache.slider.common.params.SliderActions.ACTION_AM_SUICIDE;
+import static org.apache.slider.common.params.SliderActions.ACTION_BUILD;
+import static org.apache.slider.common.params.SliderActions.ACTION_CLIENT;
+import static org.apache.slider.common.params.SliderActions.ACTION_CREATE;
+import static org.apache.slider.common.params.SliderActions.ACTION_DESTROY;
+import static org.apache.slider.common.params.SliderActions.ACTION_DIAGNOSTICS;
+import static org.apache.slider.common.params.SliderActions.ACTION_EXISTS;
+import static org.apache.slider.common.params.SliderActions.ACTION_FLEX;
+import static org.apache.slider.common.params.SliderActions.ACTION_FREEZE;
+import static org.apache.slider.common.params.SliderActions.ACTION_HELP;
+import static 
org.apache.slider.common.params.SliderActions.ACTION_INSTALL_KEYTAB;
+import static 
org.apache.slider.common.params.SliderActions.ACTION_INSTALL_PACKAGE;
+import static org.apache.slider.common.params.SliderActions.ACTION_KEYTAB;
+import static 
org.apache.slider.common.params.SliderActions.ACTION_KILL_CONTAINER;
+import static org.apache.slider.common.params.SliderActions.ACTION_LIST;
+import static org.apache.slider.common.params.SliderActions.ACTION_LOOKUP;
+import static org.apache.slider.common.params.SliderActions.ACTION_PACKAGE;
+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.ACTION_STATUS;
+import static org.apache.slider.common.params.SliderActions.ACTION_THAW;
+import static org.apache.slider.common.params.SliderActions.ACTION_UPDATE;
+import static org.apache.slider.common.params.SliderActions.ACTION_UPGRADE;
+import static org.apache.slider.common.params.SliderActions.ACTION_VERSION;
 
 /**
  * Client service for Slider
@@ -210,10 +235,18 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
   private static final Logger log = 
LoggerFactory.getLogger(SliderClient.class);
   public static final String E_MUST_BE_A_VALID_JSON_FILE
       = "Invalid configuration. Must be a valid json file.";
-  public static final String E_INVALID_APPLICATION_PACKAGE_LOCATION
-      = "A valid application package location required.";
   public static final String E_INVALID_INSTALL_LOCATION
       = "A valid install location must be provided for the client.";
+  public static final String E_UNABLE_TO_READ_SUPPLIED_PACKAGE_FILE
+      = "Unable to read supplied package file";
+  public static final String E_INVALID_APPLICATION_PACKAGE_LOCATION
+      = "A valid application package location required.";
+  public static final String E_INVALID_INSTALL_PATH = "Install path is not a 
valid directory";
+  public static final String E_INSTALL_PATH_DOES_NOT_EXIST = "Install path 
does not exist";
+  public static final String E_INVALID_APPLICATION_TYPE_NAME
+      = "A valid application type name is required (e.g. HBASE).";
+  public static final String E_USE_REPLACEPKG_TO_OVERWRITE = "Use --replacepkg 
to overwrite.";
+  public static final String E_PACKAGE_DOES_NOT_EXIST = "Package does not 
exist";
   private static PrintStream clientOutputStream = System.out;
 
   // value should not be changed without updating string find in slider.py
@@ -1103,7 +1136,7 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
     Path srcFile = null;
     if (StringUtils.isEmpty(installPkgInfo.name)) {
       throw new BadCommandArgumentsException(
-          "A valid application type name is required (e.g. HBASE).\n"
+          E_INVALID_APPLICATION_TYPE_NAME +"\n"
               + CommonArgs.usage(serviceArgs, ACTION_INSTALL_PACKAGE));
     }
 
@@ -1112,8 +1145,9 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
     } else {
       File pkgFile = new File(installPkgInfo.packageURI);
       if (!pkgFile.exists() || pkgFile.isDirectory()) {
-        throw new BadCommandArgumentsException("Unable to access supplied pkg 
file at " +
-                                               pkgFile.getAbsolutePath());
+        throw new BadCommandArgumentsException(
+            E_UNABLE_TO_READ_SUPPLIED_PACKAGE_FILE +": "
+                + pkgFile.getAbsolutePath());
       } else {
         srcFile = new Path(pkgFile.toURI());
       }
@@ -1128,9 +1162,9 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
     Path fileInFs = new Path(pkgPath, srcFile.getName());
     log.info("Installing package {} at {} and overwrite is {}.", srcFile, 
fileInFs, installPkgInfo.replacePkg);
     if (sliderFileSystem.getFileSystem().exists(fileInFs) && 
!installPkgInfo.replacePkg) {
-      throw new BadCommandArgumentsException("Pkg exists at " +
-                                             fileInFs.toUri().toString() +
-                                             ". Use --replacepkg to 
overwrite.");
+      throw new BadCommandArgumentsException(
+          "Package exists at " + fileInFs.toUri().toString() +"."
+              + E_USE_REPLACEPKG_TO_OVERWRITE);
     }
 
     sliderFileSystem.getFileSystem().copyFromLocalFile(false, 
installPkgInfo.replacePkg, srcFile, fileInFs);
@@ -1236,23 +1270,23 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
           + CommonArgs.usage(serviceArgs, ACTION_CLIENT));
     } else {
       if (!clientInfo.installLocation.exists()) {
-        throw new BadCommandArgumentsException("Install path does not exist at 
" +
-                                               
clientInfo.installLocation.getAbsolutePath());
+        throw new BadCommandArgumentsException(E_INSTALL_PATH_DOES_NOT_EXIST
+            +": " + clientInfo.installLocation.getAbsolutePath());
       }
       if (!clientInfo.installLocation.isDirectory()) {
-        throw new BadCommandArgumentsException("Install path is not a valid 
directory " +
-                                               
clientInfo.installLocation.getAbsolutePath());
+        throw new BadCommandArgumentsException(E_INVALID_INSTALL_PATH
+            +": " + clientInfo.installLocation.getAbsolutePath());
       }
     }
 
     File pkgFile;
     if (StringUtils.isEmpty(clientInfo.packageURI)) {
-      throw new BadCommandArgumentsException("A valid application package 
location required.");
+      throw new 
BadCommandArgumentsException(E_INVALID_APPLICATION_PACKAGE_LOCATION);
     } else {
       pkgFile = new File(clientInfo.packageURI);
       if (!pkgFile.exists() || pkgFile.isDirectory()) {
-        throw new BadCommandArgumentsException("Unable to access supplied pkg 
file at " +
-                                               pkgFile.getAbsolutePath());
+        throw new 
BadCommandArgumentsException(E_UNABLE_TO_READ_SUPPLIED_PACKAGE_FILE
+            +" at " + pkgFile.getAbsolutePath());
       }
     }
 
@@ -1261,8 +1295,11 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
       try {
         byte[] encoded = Files.toByteArray(clientInfo.clientConfig);
         config = new JSONObject(new String(encoded, Charset.defaultCharset()));
-      }catch(JSONException jsonEx) {
-        log.error("Unable to read supplied config", jsonEx);
+      } catch (JSONException jsonEx) {
+        log.error("Unable to read supplied configuration at {}: {}",
+            clientInfo.clientConfig, jsonEx);
+        log.debug("Unable to read supplied configuration at {}: {}",
+            clientInfo.clientConfig, jsonEx, jsonEx);
         throw new BadConfigException(E_MUST_BE_A_VALID_JSON_FILE, jsonEx);
       }
     }
@@ -1423,13 +1460,13 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
 
     if (StringUtils.isEmpty(actionPackageArgs.packageURI)) {
       throw new BadCommandArgumentsException(
-          "A valid application package location required.");
+          E_INVALID_APPLICATION_PACKAGE_LOCATION);
     } else {
       File pkgFile = new File(actionPackageArgs.packageURI);
       if (!pkgFile.exists() || pkgFile.isDirectory()) {
         throw new BadCommandArgumentsException(
-            "Unable to access supplied pkg file at "
-                + pkgFile.getAbsolutePath());
+            E_UNABLE_TO_READ_SUPPLIED_PACKAGE_FILE
+                + ":  " + pkgFile.getAbsolutePath());
       } else {
         srcFile = new Path(pkgFile.toURI());
       }
@@ -1477,7 +1514,7 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
     Path pkgPath = sliderFileSystem.buildPackageDirPath(actionPackageArgs.name,
         actionPackageArgs.version);
     if (!sliderFileSystem.getFileSystem().exists(pkgPath)) {
-      throw new BadCommandArgumentsException("Package does not exists at "
+      throw new BadCommandArgumentsException(E_PACKAGE_DOES_NOT_EXIST +": "
           + pkgPath.toUri().toString());
     }
     log.info("Deleting package {} at {}.", actionPackageArgs.name, pkgPath);

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/788e3d20/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionPackage.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionPackage.groovy
 
b/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionPackage.groovy
index 9edd830..d851781 100644
--- 
a/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionPackage.groovy
+++ 
b/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionPackage.groovy
@@ -39,6 +39,12 @@ import org.junit.Test
 
 class TestActionPackage extends AgentMiniClusterTestBase {
 
+
+  public static final String E_INVALID_APP_TYPE =
+      "A valid application type name is required (e.g. HBASE)"
+
+  File packageFile = new File("src/test/resources/log4j.properties")
+
   @Before
   public void setup() {
     super.setup()
@@ -59,7 +65,9 @@ class TestActionPackage extends AgentMiniClusterTestBase {
       )
       fail("expected an exception, got a status code " + 
launcher.serviceExitCode)
     } catch (BadCommandArgumentsException e) {
-      assert e.message.contains("A valid application type name is required 
(e.g. HBASE)")
+      assertExceptionDetails(e,
+          LauncherExitCodes.EXIT_COMMAND_ARGUMENT_ERROR,
+          E_INVALID_APP_TYPE)
     }
   }
 
@@ -94,7 +102,7 @@ class TestActionPackage extends AgentMiniClusterTestBase {
               SliderActions.ACTION_PACKAGE,
               Arguments.ARG_INSTALL,
               Arguments.ARG_NAME, "hbase",
-              Arguments.ARG_PACKAGE, "src/test/resources/log4j.properties",
+              Arguments.ARG_PACKAGE, packageFile.absolutePath
           ],
       )
       launcher = launchClientAgainstMiniMR(
@@ -105,12 +113,14 @@ class TestActionPackage extends AgentMiniClusterTestBase {
               SliderActions.ACTION_PACKAGE,
               Arguments.ARG_INSTALL,
               Arguments.ARG_NAME, "hbase",
-              Arguments.ARG_PACKAGE, "src/test/resources/log4j.properties",
+              Arguments.ARG_PACKAGE, packageFile.absolutePath
           ],
       )
       fail("expected an exception, got a status code " + 
launcher.serviceExitCode)
     } catch (BadCommandArgumentsException e) {
-      assert e.message.contains("Use --replacepkg to overwrite")
+      assertExceptionDetails(e,
+          LauncherExitCodes.EXIT_COMMAND_ARGUMENT_ERROR,
+          SliderClient.E_USE_REPLACEPKG_TO_OVERWRITE)
     }
   }
 
@@ -130,7 +140,9 @@ class TestActionPackage extends AgentMiniClusterTestBase {
       )
       fail("expected an exception, got a status code " + 
launcher.serviceExitCode)
     } catch (BadCommandArgumentsException e) {
-      assert e.message.contains("Unable to access supplied pkg file at")
+      assertExceptionDetails(e,
+          LauncherExitCodes.EXIT_COMMAND_ARGUMENT_ERROR,
+          SliderClient.E_UNABLE_TO_READ_SUPPLIED_PACKAGE_FILE)
     }
   }
 
@@ -145,7 +157,7 @@ class TestActionPackage extends AgentMiniClusterTestBase {
               SliderActions.ACTION_PACKAGE,
               Arguments.ARG_INSTALL,
               Arguments.ARG_NAME, "hbase",
-              Arguments.ARG_PACKAGE, "src/test/resources/log4j.properties",
+              Arguments.ARG_PACKAGE, packageFile.absolutePath
           ],
       )
       launcher = launchClientAgainstMiniMR(
@@ -156,7 +168,7 @@ class TestActionPackage extends AgentMiniClusterTestBase {
               SliderActions.ACTION_PACKAGE,
               Arguments.ARG_INSTALL,
               Arguments.ARG_NAME, "hbase",
-              Arguments.ARG_PACKAGE, "src/test/resources/log4j.properties",
+              Arguments.ARG_PACKAGE, packageFile.absolutePath,
               Arguments.ARG_REPLACE_PKG
           ],
       )
@@ -203,7 +215,6 @@ class TestActionPackage extends AgentMiniClusterTestBase {
 
   @Test
   public void testPackageDelete() throws Throwable {
-    try {
       ServiceLauncher launcher = launchClientAgainstMiniMR(
           //config includes RM binding info
           new YarnConfiguration(miniCluster.config),
@@ -212,7 +223,7 @@ class TestActionPackage extends AgentMiniClusterTestBase {
               SliderActions.ACTION_PACKAGE,
               Arguments.ARG_INSTALL,
               Arguments.ARG_NAME, "storm",
-              Arguments.ARG_PACKAGE, "src/test/resources/log4j.properties",
+              Arguments.ARG_PACKAGE, packageFile.absolutePath,
           ],
       )
       launcher = launchClientAgainstMiniMR(
@@ -225,9 +236,6 @@ class TestActionPackage extends AgentMiniClusterTestBase {
               Arguments.ARG_NAME, "storm"
           ],
       )
-    } catch (BadCommandArgumentsException e) {
-      fail("Should not throw exception:" + e.getMessage())
-    }
   }
 
   @Test
@@ -245,7 +253,9 @@ class TestActionPackage extends AgentMiniClusterTestBase {
       )
       fail("expected an exception, got a status code " + 
launcher.serviceExitCode)
     } catch (BadCommandArgumentsException e) {
-      assert e.message.contains("Package does not exist")
+      assertExceptionDetails(e,
+          LauncherExitCodes.EXIT_COMMAND_ARGUMENT_ERROR,
+          SliderClient.E_PACKAGE_DOES_NOT_EXIST)
     }
   }
 
@@ -263,7 +273,9 @@ class TestActionPackage extends AgentMiniClusterTestBase {
       )
       fail("expected an exception, got a status code " + 
launcher.serviceExitCode)
     } catch (BadCommandArgumentsException e) {
-      assert e.message.contains("A valid application type name is required 
(e.g. HBASE)")
+      assertExceptionDetails(e,
+          LauncherExitCodes.EXIT_COMMAND_ARGUMENT_ERROR,
+          E_INVALID_APP_TYPE)
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/788e3d20/slider-core/src/test/groovy/org/apache/slider/client/TestUpgradeCommandOptions.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/client/TestUpgradeCommandOptions.groovy
 
b/slider-core/src/test/groovy/org/apache/slider/client/TestUpgradeCommandOptions.groovy
index 1902743..17f807d 100644
--- 
a/slider-core/src/test/groovy/org/apache/slider/client/TestUpgradeCommandOptions.groovy
+++ 
b/slider-core/src/test/groovy/org/apache/slider/client/TestUpgradeCommandOptions.groovy
@@ -18,34 +18,21 @@
 
 package org.apache.slider.client
 
-import java.io.File
-import java.io.IOException
-import java.io.FileNotFoundException
-
-import org.apache.commons.io.FileUtils
 import org.apache.commons.logging.Log
 import org.apache.commons.logging.LogFactory
 import org.apache.hadoop.fs.FileSystem
-import org.apache.hadoop.fs.FileUtil
 import org.apache.hadoop.fs.Path
 import org.apache.hadoop.fs.RawLocalFileSystem
 import org.apache.hadoop.yarn.api.records.ApplicationReport
 import org.apache.hadoop.yarn.conf.YarnConfiguration
-
 import org.apache.slider.agent.AgentMiniClusterTestBase
-import org.apache.slider.common.SliderKeys
-import org.apache.slider.common.params.Arguments
 import org.apache.slider.common.params.ClientArgs
-import org.apache.slider.common.params.SliderActions
 import org.apache.slider.common.tools.SliderFileSystem
 import org.apache.slider.common.tools.SliderUtils
-import org.apache.slider.core.exceptions.BadCommandArgumentsException
 import org.apache.slider.core.exceptions.BadConfigException
 import org.apache.slider.core.exceptions.SliderException
 import org.apache.slider.core.exceptions.UnknownApplicationInstanceException
 import org.apache.slider.core.main.ServiceLauncher
-import org.apache.slider.providers.agent.AgentKeys
-
 import org.junit.Before
 import org.junit.Test
 
@@ -79,16 +66,18 @@ class TestUpgradeCommandOptions extends 
AgentMiniClusterTestBase {
   public void testUpgradeAppNotRunning() throws Throwable {
     describe("Calling upgrade")
     YarnConfiguration conf = SliderUtils.createConfiguration()
+    File tmpDir = File.createTempFile("test",".dir")
+    tmpDir.delete()
     try {
       ServiceLauncher launcher = launch(TestSliderClient,
           conf,
           [
-            ClientArgs.ACTION_UPGRADE,
-            APP_NAME,
-            ClientArgs.ARG_TEMPLATE,
-            "/tmp/appConfig.json",
-            ClientArgs.ARG_RESOURCES,
-            "/tmp/resources.json"
+              ClientArgs.ACTION_UPGRADE,
+              APP_NAME,
+              ClientArgs.ARG_TEMPLATE,
+              new File(tmpDir, "appConfig.json").toURI(),
+              ClientArgs.ARG_RESOURCES,
+              new File(tmpDir, "resources.json").toURI()
           ])
       fail("Upgrade command should have failed")
     } catch (SliderException e) {

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/788e3d20/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy 
b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
index 03c3342..4edce53 100644
--- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
@@ -947,7 +947,9 @@ class SliderTestUtils extends Assert {
       Throwable {
     ServiceLauncher serviceLauncher =
         new ServiceLauncher(serviceClass.name);
-    log.debug("slider ${SliderUtils.join(args, " ", false)}")
+
+    def joinedArgs = SliderUtils.join(args, " ", false)
+    log.debug("slider ${joinedArgs}")
 
     serviceLauncher.launchService(conf,
         toArray(args),

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/788e3d20/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentClientProvider2.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentClientProvider2.java
 
b/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentClientProvider2.java
index 6c9cdc5..8529d86 100644
--- 
a/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentClientProvider2.java
+++ 
b/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentClientProvider2.java
@@ -133,6 +133,7 @@ public class TestAgentClientProvider2 extends 
SliderTestUtils {
     pkg.setType("tarball");
     app.getPackages().add(pkg);
 
+    // This is not a windows path, which is something we bear in mind in 
testisng
     File clientInstallPath = new File("/tmp/file1");
     String appName = "name";
     String user = "username";
@@ -151,8 +152,9 @@ public class TestAgentClientProvider2 extends 
SliderTestUtils {
     JSONObject outGlobal = outConfigs.getJSONObject("global");
     Assert.assertNotNull("null globals section", outGlobal);
     Assert.assertEquals("b", outGlobal.getString("a"));
-    Assert.assertEquals("/tmp/file1/d", outGlobal.getString("d"));
-    Assert.assertEquals("/tmp/file1", outGlobal.getString("app_install_dir"));
+    Assert.assertTrue("no file1/d in " + outGlobal.getString("d"),
+        outGlobal.getString("d").contains("file1/d"));
+    Assert.assertEquals(clientInstallPath.toString(), 
outGlobal.getString("app_install_dir"));
     Assert.assertEquals("name", outGlobal.getString("e"));
     Assert.assertEquals("name", outGlobal.getString("app_name"));
     Assert.assertEquals(user, outGlobal.getString("app_user"));
@@ -175,10 +177,12 @@ public class TestAgentClientProvider2 extends 
SliderTestUtils {
     outGlobal = outConfigs.getJSONObject("global");
     Assert.assertNotNull("null globals section", outGlobal);
     Assert.assertEquals("b", outGlobal.getString("a"));
-    Assert.assertEquals("/tmp/file1/d", outGlobal.getString("d"));
+    Assert.assertTrue("no file1/d in " + outGlobal.getString("d"),
+        outGlobal.getString("d").contains("file1/d"));
     Assert.assertEquals("b2", outGlobal.getString("a1"));
-    Assert.assertEquals("/tmp/file1/d", outGlobal.getString("d1"));
-    Assert.assertEquals("/tmp/file1", outGlobal.getString("app_install_dir"));
+    Assert.assertTrue("no file1/d in " + outGlobal.getString("d1"),
+        outGlobal.getString("d1").contains("file1/d"));
+    Assert.assertEquals(clientInstallPath.toString(), 
outGlobal.getString("app_install_dir"));
     Assert.assertEquals("{app_name}", outGlobal.getString("e"));
     Assert.assertFalse("no 'app_name' field", outGlobal.has("app_name"));
     Assert.assertEquals(user, outGlobal.getString("app_user"));
@@ -240,7 +244,7 @@ public class TestAgentClientProvider2 extends 
SliderTestUtils {
       client.actionClient(args);
     } catch (BadCommandArgumentsException e) {
       assertExceptionDetails(e, SliderExitCodes.EXIT_COMMAND_ARGUMENT_ERROR,
-          "Install path does not exist at");
+          SliderClient.E_INSTALL_PATH_DOES_NOT_EXIST);
     }
 
     dest.mkdir();

Reply via email to