You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/04/27 22:50:24 UTC
incubator-slider git commit: SLIDER-863 unix-side-coding of fixe for
TestActionPagage, TestUpgradeCommandOptions and TestAgentClientProvider2
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 <st...@apache.org>
Authored: Mon Apr 27 18:43:17 2015 +0100
Committer: Steve Loughran <st...@apache.org>
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();