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();
