Repository: incubator-slider Updated Branches: refs/heads/feature/SLIDER-863-windows-tests 3b1f9ed05 -> 3df045320
SLIDER-863 fixes for TestAgentClientProvider2,TestPackageCommandOptions,TestActionPackage,TestActionExists Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/3df04532 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/3df04532 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/3df04532 Branch: refs/heads/feature/SLIDER-863-windows-tests Commit: 3df045320ee7c6bcad27374680c21a90ec8d71f7 Parents: 3b1f9ed Author: Steve Loughran <[email protected]> Authored: Tue Apr 28 21:31:26 2015 +0100 Committer: Steve Loughran <[email protected]> Committed: Tue Apr 28 21:31:26 2015 +0100 ---------------------------------------------------------------------- .../org/apache/slider/client/SliderClient.java | 6 +-- .../providers/agent/AgentProviderService.java | 5 +- .../agent/actions/TestActionPackage.groovy | 15 ++++-- .../client/TestPackageCommandOptions.groovy | 31 ++++++------ .../agent/TestAgentClientProvider2.java | 50 +++++++++++--------- 5 files changed, 60 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3df04532/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 5d5e217..b856fb6 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 @@ -249,6 +249,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe 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"; + public static final String E_PACKAGE_EXISTS = "Package exists"; private static PrintStream clientOutputStream = System.out; // value should not be changed without updating string find in slider.py @@ -1483,9 +1484,8 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe Path fileInFs = new Path(pkgPath, srcFile.getName()); if (sliderFileSystem.getFileSystem().exists(fileInFs) && !actionPackageArgs.replacePkg) { - throw new BadCommandArgumentsException("Pkg exists at " + - fileInFs.toUri().toString() + - ". Use --replacepkg to overwrite."); + throw new BadCommandArgumentsException(E_PACKAGE_EXISTS +" at " + + fileInFs.toUri() + ". Use --replacepkg to overwrite."); } log.info("Installing package {} to {} (overwrite set to {})", srcFile, http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3df04532/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java index c804aad..f806157 100644 --- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java +++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java @@ -20,7 +20,6 @@ package org.apache.slider.providers.agent; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; - import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; @@ -1933,8 +1932,8 @@ public class AgentProviderService extends AbstractProviderService implements } } - if (packages.size() > 0) { - return String.format(pkgListFormatString, StringUtils.join(",", packages)); + if (!packages.isEmpty()) { + return "[" + SliderUtils.join(packages, ",", false) + "]"; } else { return "[]"; } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3df04532/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 d851781..021dd87 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 @@ -43,12 +43,14 @@ 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") + String s = File.separator + File packageFile = new File("src${s}test${s}resources${s}log4j.properties") @Before public void setup() { super.setup() createMiniCluster("", configuration, 1, false) + assert packageFile.exists() } @Test @@ -92,7 +94,7 @@ class TestActionPackage extends AgentMiniClusterTestBase { } @Test - public void testPackageInstallFailsWithInvalidPackagePath() throws Throwable { + public void testPackageInstallFailsOverwriteRequired() throws Throwable { try { ServiceLauncher launcher = launchClientAgainstMiniMR( //config includes RM binding info @@ -125,7 +127,7 @@ class TestActionPackage extends AgentMiniClusterTestBase { } @Test - public void testPackageInstallFailsWithNeedingReplaceFlag() throws Throwable { + public void testPackageInstallFailsUnableToReadPackageFile() throws Throwable { try { ServiceLauncher launcher = launchClientAgainstMiniMR( //config includes RM binding info @@ -160,7 +162,9 @@ class TestActionPackage extends AgentMiniClusterTestBase { Arguments.ARG_PACKAGE, packageFile.absolutePath ], ) - launcher = launchClientAgainstMiniMR( + try { + + launcher = launchClientAgainstMiniMR( //config includes RM binding info new YarnConfiguration(miniCluster.config), //varargs list of command line params @@ -174,6 +178,7 @@ class TestActionPackage extends AgentMiniClusterTestBase { ) } catch (BadCommandArgumentsException e) { log.info(e.message) + // throw e; } } @@ -192,6 +197,7 @@ class TestActionPackage extends AgentMiniClusterTestBase { ) } catch (BadCommandArgumentsException e) { log.info(e.message) + // throw e; } } @@ -210,6 +216,7 @@ class TestActionPackage extends AgentMiniClusterTestBase { ) } catch (BadCommandArgumentsException e) { log.info(e.message) + // throw e; } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3df04532/slider-core/src/test/groovy/org/apache/slider/client/TestPackageCommandOptions.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/client/TestPackageCommandOptions.groovy b/slider-core/src/test/groovy/org/apache/slider/client/TestPackageCommandOptions.groovy index 345475b..efb5e5c 100644 --- a/slider-core/src/test/groovy/org/apache/slider/client/TestPackageCommandOptions.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/client/TestPackageCommandOptions.groovy @@ -115,10 +115,11 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { null), appDefFile.getName()) File installedPackage = new File(installedPath.toUri().path) assert installedPackage.exists() - describe("Installed app package to - " + installedPackage.toURI() - .toString()) + + def installedPackageURI = installedPackage.toURI() + describe("Installed app package to - $installedPackageURI") // overwrite the application.def property with the new installed path - agentDefOptions.put(AgentKeys.APP_DEF, installedPackage.toURI().toString()) + agentDefOptions.put(AgentKeys.APP_DEF, installedPackageURI.toString()) // start the app and AM describe("Starting the app") launcher = createStandaloneAM(clustername, true, false) @@ -126,7 +127,9 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { addToTeardown(sliderClient) describe("Listing all instances of installed packages") - String outFileName = "target/packageInstances.out" + String outFileName = "target${File.separator}packageInstances.out" + File outFile = new File(outFileName) + launcher = launchClientAgainstMiniMR( //config includes RM binding info yarnConfig, @@ -134,7 +137,7 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { [SliderActions.ACTION_PACKAGE, Arguments.ARG_PKGINSTANCES, ClientArgs.ARG_OUTPUT, - outFileName + outFile.absolutePath ] ) // reset the app def path to orig value and remove app version @@ -148,7 +151,6 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { assert enumeratedInstance != null assert enumeratedInstance.applicationReport.name == clustername - File outFile = new File(outFileName) def outText = outFile.text assert outText.contains(installedPackage.absolutePath) assert outText.contains(APP_NAME) @@ -166,7 +168,7 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { // get the default application.def file and install it as a package String appDefPath = agentDefOptions.getAt(AgentKeys.APP_DEF) - File appDefFile = new File(new URI(appDefPath)) + File appDefFile = new File(new URI(appDefPath).path) YarnConfiguration conf = SliderUtils.createConfiguration() ServiceLauncher<SliderClient> launcher = launch(TestSliderClient, conf, @@ -198,15 +200,16 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { addToTeardown(sliderClient) describe("Listing all instances of installed packages") - String outFileName = "target/packageInstancesWithVersion.out" + File outFile = new File("target${File.separator}packageInstancesWithVersion.out") launcher = launchClientAgainstMiniMR( //config includes RM binding info yarnConfig, //varargs list of command line params - [SliderActions.ACTION_PACKAGE, - Arguments.ARG_PKGINSTANCES, - ClientArgs.ARG_OUTPUT, - outFileName + [ + SliderActions.ACTION_PACKAGE, + Arguments.ARG_PKGINSTANCES, + ClientArgs.ARG_OUTPUT, + outFile.absolutePath ] ) // reset the app def path to orig value and remove app version @@ -218,9 +221,7 @@ class TestPackageCommandOptions extends AgentMiniClusterTestBase { def instances = client.enumSliderInstances(false, null, null) def enumeratedInstance = instances[clustername] assert enumeratedInstance != null - assert enumeratedInstance.applicationReport.name == - clustername - File outFile = new File(outFileName) + assert enumeratedInstance.applicationReport.name == clustername def outText = outFile.text assert outText.contains(installedPackage.absolutePath) assert outText.contains(APP_NAME) http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3df04532/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 8529d86..841ad69 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 @@ -31,7 +31,6 @@ import org.apache.slider.core.conf.AggregateConf; import org.apache.slider.core.conf.ConfTree; 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.providers.ProviderUtils; import org.apache.slider.providers.agent.application.metadata.Application; import org.apache.slider.providers.agent.application.metadata.Metainfo; @@ -148,16 +147,16 @@ public class TestAgentClientProvider2 extends SliderTestUtils { clientInstallPath, appName); JSONObject outConfigs = output.getJSONObject("configurations"); - Assert.assertNotNull("null configurations section", outConfigs); + assertNotNull("null configurations section", outConfigs); JSONObject outGlobal = outConfigs.getJSONObject("global"); - Assert.assertNotNull("null globals section", outGlobal); - Assert.assertEquals("b", outGlobal.getString("a")); - 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")); + assertNotNull("null globals section", outGlobal); + assertEquals("b", outGlobal.getString("a")); + assertContained("file1/d", outGlobal.getString("d")); + assertContained(clientInstallPath.getAbsolutePath(), + outGlobal.getString("app_install_dir")); + assertEquals("name", outGlobal.getString("e")); + assertEquals("name", outGlobal.getString("app_name")); + assertEquals(user, outGlobal.getString("app_user")); defaultConfig = new JSONObject(); global = new JSONObject(); @@ -173,23 +172,30 @@ public class TestAgentClientProvider2 extends SliderTestUtils { clientInstallPath, null); outConfigs = output.getJSONObject("configurations"); - Assert.assertNotNull("null configurations section", outConfigs); + assertNotNull("null configurations section", outConfigs); outGlobal = outConfigs.getJSONObject("global"); - Assert.assertNotNull("null globals section", outGlobal); - Assert.assertEquals("b", outGlobal.getString("a")); - Assert.assertTrue("no file1/d in " + outGlobal.getString("d"), - outGlobal.getString("d").contains("file1/d")); - Assert.assertEquals("b2", outGlobal.getString("a1")); - 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")); + assertNotNull("null globals section", outGlobal); + assertEquals("b", outGlobal.getString("a")); + assertEquals("b2", outGlobal.getString("a1")); + + + assertContained("file1/d", outGlobal.getString("d")); + assertContained("file1/d", outGlobal.getString("d1")); + assertContained(clientInstallPath.getAbsolutePath(), + outGlobal.getString("app_install_dir")); + assertEquals("{app_name}", outGlobal.getString("e")); + assertFalse("no 'app_name' field", outGlobal.has("app_name")); + assertEquals(user, outGlobal.getString("app_user")); PowerMock.verify(RegistryUtils.class); } + public void assertContained(String expected, String actual) { + assertNotNull(actual); + assertTrue( + String.format("Did not find \"%s\" in \"%s\"", expected, actual), + actual.contains(expected)); + } @Test public void testRunCommand() throws Exception {
