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/28 18:35:23 UTC
incubator-slider git commit: SLIDER-863
TestUpgradeCommandOptionsTestActionList
Repository: incubator-slider
Updated Branches:
refs/heads/feature/SLIDER-863-windows-tests fc0343b60 -> 69856ad1e
SLIDER-863 TestUpgradeCommandOptionsTestActionList
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/69856ad1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/69856ad1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/69856ad1
Branch: refs/heads/feature/SLIDER-863-windows-tests
Commit: 69856ad1e67029fffa26b1cdf998fed4eb97e2ad
Parents: fc0343b
Author: Steve Loughran <st...@apache.org>
Authored: Tue Apr 28 17:35:04 2015 +0100
Committer: Steve Loughran <st...@apache.org>
Committed: Tue Apr 28 17:35:04 2015 +0100
----------------------------------------------------------------------
.../org/apache/slider/client/SliderClient.java | 21 ++--
.../client/TestUpgradeCommandOptions.groovy | 125 ++++++++++---------
2 files changed, 77 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/69856ad1/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 51e2b16..5d5e217 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
@@ -247,6 +247,8 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
= "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";
+ public static final String E_NO_ZOOKEEPER_QUORUM = "No Zookeeper quorum defined";
+ public static final String E_NO_RESOURCE_MANAGER = "No valid Resource Manager address provided";
private static PrintStream clientOutputStream = System.out;
// value should not be changed without updating string find in slider.py
@@ -1687,7 +1689,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
quorum = registryQuorum;
}
if (isUnset(quorum)) {
- throw new BadConfigException("No Zookeeper quorum defined");
+ throw new BadConfigException(E_NO_ZOOKEEPER_QUORUM);
}
ZKPathBuilder zkPaths = new ZKPathBuilder(getAppName(),
getUsername(),
@@ -1699,7 +1701,8 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
if (isSet(zookeeperRoot)) {
zkPaths.setAppPath(zookeeperRoot);
} else {
- String createDefaultZkNode = appConf.getGlobalOptions().getOption(AgentKeys.CREATE_DEF_ZK_NODE, "false");
+ String createDefaultZkNode = appConf.getGlobalOptions()
+ .getOption(AgentKeys.CREATE_DEF_ZK_NODE, "false");
if (createDefaultZkNode.equals("true")) {
String defaultZKPath = createZookeeperNode(clustername, false);
log.debug("ZK node created for application instance: {}", defaultZKPath);
@@ -1764,7 +1767,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
} catch (LockAcquireFailedException e) {
log.warn("Failed to get a Lock on cluster resource : {}", e);
throw new BadClusterStateException(
- "Failed to validate client resource definition " + clustername + ": "
+ "Failed to load client resource definition " + clustername + ": "
+ e);
}
Map<String, Integer> clusterComponentInstances = new HashMap<>();
@@ -1802,8 +1805,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
log.error("Mismatch found in upgrade resource definition and cluster "
+ "resource state");
if (!clientComponentInstances.isEmpty()) {
- log.info(" Following are the upgrade resource definitions that do "
- + "not match");
+ log.info("The upgrade resource definitions that do not match are:");
for (Map.Entry<String, Integer> clientComponentInstanceEntry : clientComponentInstances
.entrySet()) {
log.info(" Component Name: {}, Instance count: {}",
@@ -1812,7 +1814,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
}
}
if (!clusterComponentInstances.isEmpty()) {
- log.info(" Following are the cluster resources that do not match");
+ log.info("The cluster resources that do not match are:");
for (Map.Entry<String, Integer> clusterComponentInstanceEntry : clusterComponentInstances
.entrySet()) {
log.info(" Component Name: {}, Instance count: {}",
@@ -1820,10 +1822,10 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
clusterComponentInstanceEntry.getValue());
}
}
- throw new BadConfigException("\n\nResource definition provided for "
+ throw new BadConfigException("Resource definition provided for "
+ "upgrade does not match with that of the currently running "
+ "cluster.\nIf you are aware of what you are doing, rerun the "
- + "command with " + Arguments.ARG_FORCE + " option.\n");
+ + "command with " + Arguments.ARG_FORCE + " option.");
}
}
@@ -1881,7 +1883,8 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
if (!getConfig().getBoolean(YarnConfiguration.RM_HA_ENABLED, false)
&& !SliderUtils.isAddressDefined(rmAddr)) {
throw new BadCommandArgumentsException(
- "No valid Resource Manager address provided in the argument "
+ E_NO_RESOURCE_MANAGER
+ + " in the argument "
+ Arguments.ARG_MANAGER
+ " or the configuration property "
+ YarnConfiguration.RM_ADDRESS
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/69856ad1/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 17f807d..8d5aef1 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
@@ -26,12 +26,15 @@ 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.SliderExitCodes
+import org.apache.slider.common.params.Arguments
import org.apache.slider.common.params.ClientArgs
import org.apache.slider.common.tools.SliderFileSystem
import org.apache.slider.common.tools.SliderUtils
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.LauncherExitCodes
import org.apache.slider.core.main.ServiceLauncher
import org.junit.Before
import org.junit.Test
@@ -66,8 +69,7 @@ class TestUpgradeCommandOptions extends AgentMiniClusterTestBase {
public void testUpgradeAppNotRunning() throws Throwable {
describe("Calling upgrade")
YarnConfiguration conf = SliderUtils.createConfiguration()
- File tmpDir = File.createTempFile("test",".dir")
- tmpDir.delete()
+ File tmpDir = createTempDir()
try {
ServiceLauncher launcher = launch(TestSliderClient,
conf,
@@ -87,6 +89,12 @@ class TestUpgradeCommandOptions extends AgentMiniClusterTestBase {
}
}
+ public File createTempDir() {
+ File tmpDir = File.createTempFile("test", ".dir")
+ tmpDir.delete()
+ return tmpDir
+ }
+
@Test
public void testAll() {
// Create a single test to reduce the amount of test execution time
@@ -115,8 +123,9 @@ class TestUpgradeCommandOptions extends AgentMiniClusterTestBase {
public void testUpgradeInvalidResourcesFile(String clustername)
throws Throwable {
- String appConfigFile = Path.getPathWithoutSchemeAndAuthority(testFileSystem
- .buildClusterDirPath(clustername)).toString() + "/app_config.json"
+ Path appConfigFile = getClusterFile(clustername, "app_config.json")
+ File tmpDir = createTempDir()
+ File resourcesJson = new File(tmpDir, "resources.json")
describe("Calling upgrade - testUpgradeInvalidResourcesFile")
try {
@@ -130,23 +139,27 @@ class TestUpgradeCommandOptions extends AgentMiniClusterTestBase {
ClientArgs.ARG_TEMPLATE,
appConfigFile,
ClientArgs.ARG_RESOURCES,
- "/tmp/resources.json"
+ resourcesJson.absolutePath
]
)
fail("Upgrade command should have failed")
- } catch (SliderException e) {
- log.info(e.toString())
- assert e instanceof BadConfigException
- assert e.getMessage().contains("incorrect argument to --resources: " +
- "\"/tmp/resources.json\" : java.io.FileNotFoundException: " +
- "/tmp/resources.json (No such file or directory)")
+ } catch (BadConfigException e) {
+ assertExceptionDetails(e, SliderExitCodes.EXIT_BAD_CONFIGURATION,
+ Arguments.ARG_RESOURCES)
}
}
+ public Path getClusterFile(String clustername, String clusterfile) {
+ Path path = new Path(testFileSystem.buildClusterDirPath(clustername), clusterfile)
+ return Path.getPathWithoutSchemeAndAuthority(path)
+ }
+
public void testUpgradeInvalidConfigFile(String clustername)
throws Throwable {
- String resourceFile = Path.getPathWithoutSchemeAndAuthority(testFileSystem
- .buildClusterDirPath(clustername)).toString() + "/resources.json"
+ Path resourceFile = getClusterFile(clustername, "resources.json")
+ File tmpDir = createTempDir()
+ File appconfig = new File(tmpDir, "appConfig.json")
+
describe("Calling upgrade - testUpgradeInvalidConfigFile")
try {
@@ -158,18 +171,15 @@ class TestUpgradeCommandOptions extends AgentMiniClusterTestBase {
ClientArgs.ACTION_UPGRADE,
clustername,
ClientArgs.ARG_TEMPLATE,
- "/tmp/appConfig.json",
+ appconfig.absolutePath,
ClientArgs.ARG_RESOURCES,
resourceFile
]
)
fail("Upgrade command should have failed")
- } catch (SliderException e) {
- log.info(e.toString())
- assert e instanceof BadConfigException
- assert e.getMessage().contains("incorrect argument to --template: " +
- "\"/tmp/appConfig.json\" : java.io.FileNotFoundException: " +
- "/tmp/appConfig.json (No such file or directory)")
+ } catch (BadConfigException e) {
+ assertExceptionDetails(e, SliderExitCodes.EXIT_BAD_CONFIGURATION,
+ Arguments.ARG_TEMPLATE)
}
}
@@ -181,48 +191,43 @@ class TestUpgradeCommandOptions extends AgentMiniClusterTestBase {
.buildClusterDirPath(clustername)).toString() + "/app_config.json"
describe("Calling upgrade - testUpgradeSpecSuccess")
- try {
- log.info("Listing application containers before upgrade spec")
- launcher = launchClientAgainstMiniMR(
- //config includes RM binding info
- yarnConfig,
- //varargs list of command line params
- [
- ClientArgs.ACTION_LIST,
- clustername,
- ClientArgs.ARG_CONTAINERS
- ]
- )
+ log.info("Listing application containers before upgrade spec")
+ launcher = launchClientAgainstMiniMR(
+ //config includes RM binding info
+ yarnConfig,
+ //varargs list of command line params
+ [
+ ClientArgs.ACTION_LIST,
+ clustername,
+ ClientArgs.ARG_CONTAINERS
+ ]
+ )
- launcher = launchClientAgainstMiniMR(
- //config includes RM binding info
- yarnConfig,
- //varargs list of command line params
- [
- ClientArgs.ACTION_UPGRADE,
- clustername,
- ClientArgs.ARG_TEMPLATE,
- appConfigFile,
- ClientArgs.ARG_RESOURCES,
- resourceFile
- ]
- )
+ launcher = launchClientAgainstMiniMR(
+ //config includes RM binding info
+ yarnConfig,
+ //varargs list of command line params
+ [
+ ClientArgs.ACTION_UPGRADE,
+ clustername,
+ ClientArgs.ARG_TEMPLATE,
+ appConfigFile,
+ ClientArgs.ARG_RESOURCES,
+ resourceFile
+ ]
+ )
- log.info("Listing application containers after upgrade spec")
- launcher = launchClientAgainstMiniMR(
- //config includes RM binding info
- yarnConfig,
- //varargs list of command line params
- [
- ClientArgs.ACTION_LIST,
- clustername,
- ClientArgs.ARG_CONTAINERS
- ]
- )
- } catch (SliderException e) {
- log.info(e.toString())
- fail("Upgrade command should not have failed")
- }
+ log.info("Listing application containers after upgrade spec")
+ launcher = launchClientAgainstMiniMR(
+ //config includes RM binding info
+ yarnConfig,
+ //varargs list of command line params
+ [
+ ClientArgs.ACTION_LIST,
+ clustername,
+ ClientArgs.ARG_CONTAINERS
+ ]
+ )
assert launcher.serviceExitCode == 0
}