Repository: falcon Updated Branches: refs/heads/master 0488de326 -> 299b82701
FALCON-2214 Falcon extension registered without fully qualified hdfs ⦠â¦path Author: Praveen Adlakha <[email protected]> Reviewers: @pallavi-rao Closes #319 from PraveenAdlakha/2214 and squashes the following commits: 135ca8e [Praveen Adlakha] test cases fixed and merge conflict resolved 98e202d [Praveen Adlakha] FALCON-2214 Falcon extension registered without fully qualified hdfs path Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/299b8270 Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/299b8270 Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/299b8270 Branch: refs/heads/master Commit: 299b82701390c186e17a65daed44b8ff52dd6fa6 Parents: 0488de3 Author: Praveen Adlakha <[email protected]> Authored: Thu Dec 22 12:28:48 2016 +0530 Committer: Pallavi Rao <[email protected]> Committed: Thu Dec 22 12:28:48 2016 +0530 ---------------------------------------------------------------------- .../falcon/extensions/store/ExtensionStore.java | 13 +++++++++++++ .../extensions/store/ExtensionStoreTest.java | 7 +++++++ .../org/apache/falcon/unit/TestFalconUnit.java | 19 +++++++++++++++++-- 3 files changed, 37 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/299b8270/extensions/src/main/java/org/apache/falcon/extensions/store/ExtensionStore.java ---------------------------------------------------------------------- diff --git a/extensions/src/main/java/org/apache/falcon/extensions/store/ExtensionStore.java b/extensions/src/main/java/org/apache/falcon/extensions/store/ExtensionStore.java index 72d4493..8e4acbe 100644 --- a/extensions/src/main/java/org/apache/falcon/extensions/store/ExtensionStore.java +++ b/extensions/src/main/java/org/apache/falcon/extensions/store/ExtensionStore.java @@ -268,10 +268,22 @@ public final class ExtensionStore { } } + private void assertURI(String part, String value) throws ValidationException { + if (value == null) { + String msg = "Invalid Path supplied. " + part + " is missing. " + + " Path must contain scheme, authority and path."; + LOG.error(msg); + throw new ValidationException(msg); + } + } + public String registerExtension(final String extensionName, final String path, final String description, String extensionOwner) throws URISyntaxException, FalconException { Configuration conf = new Configuration(); URI uri = new URI(path); + assertURI("Scheme", uri.getScheme()); + assertURI("Authority", uri.getAuthority()); + assertURI("Path", uri.getPath()); conf.set("fs.defaultFS", uri.getScheme() + "://" + uri.getAuthority()); FileSystem fileSystem = HadoopClientFactory.get().createFalconFileSystem(uri); try { @@ -313,6 +325,7 @@ public final class ExtensionStore { } else { throw new ValidationException(extensionName + " already exists."); } + LOG.info("Extension :" + extensionName + " registered successfully."); return "Extension :" + extensionName + " registered successfully."; } http://git-wip-us.apache.org/repos/asf/falcon/blob/299b8270/extensions/src/test/java/org/apache/falcon/extensions/store/ExtensionStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/src/test/java/org/apache/falcon/extensions/store/ExtensionStoreTest.java b/extensions/src/test/java/org/apache/falcon/extensions/store/ExtensionStoreTest.java index 773fea2..0835f38 100644 --- a/extensions/src/test/java/org/apache/falcon/extensions/store/ExtensionStoreTest.java +++ b/extensions/src/test/java/org/apache/falcon/extensions/store/ExtensionStoreTest.java @@ -104,6 +104,13 @@ public class ExtensionStoreTest extends AbstractTestExtensionStore { } } + @Test(expectedExceptions=ValidationException.class) + public void testFailureCaseRegisterExtensionForURL() throws IOException, URISyntaxException, FalconException{ + store = ExtensionStore.get(); + createLibs(EXTENSION_PATH); + store.registerExtension("test", EXTENSION_PATH, "test desc", "falconUser"); + } + @Test public void testRegisterExtension() throws IOException, URISyntaxException, FalconException { String extensionPath = EXTENSION_PATH + "testRegister"; http://git-wip-us.apache.org/repos/asf/falcon/blob/299b8270/unit/src/test/java/org/apache/falcon/unit/TestFalconUnit.java ---------------------------------------------------------------------- diff --git a/unit/src/test/java/org/apache/falcon/unit/TestFalconUnit.java b/unit/src/test/java/org/apache/falcon/unit/TestFalconUnit.java index b7a6e39..293bb23 100644 --- a/unit/src/test/java/org/apache/falcon/unit/TestFalconUnit.java +++ b/unit/src/test/java/org/apache/falcon/unit/TestFalconUnit.java @@ -30,10 +30,14 @@ import org.apache.falcon.resource.InstanceDependencyResult; import org.apache.falcon.resource.InstancesResult; import org.apache.falcon.resource.InstancesSummaryResult; import org.apache.falcon.service.FalconJPAService; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.LocalFileSystem; import org.apache.hadoop.fs.Path; import org.codehaus.jettison.json.JSONObject; import org.testng.Assert; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import javax.persistence.EntityManager; @@ -67,6 +71,16 @@ public class TestFalconUnit extends FalconUnitTestBase { private static final String SLEEP_WORKFLOW = "sleepWorkflow.xml"; private static final String EXTENSION_PATH = "/projects/falcon/extension/testExtension"; public static final String JARS_DIR = "file:///" + System.getProperty("user.dir") + "/src/test/resources"; + private FileSystem fileSystem; + + private static final String STORAGE_URL = "jail://global:00"; + + @BeforeClass + public void init() throws IOException{ + Configuration conf = new Configuration(); + conf.set("fs.defaultFS", STORAGE_URL); + fs.initialize(LocalFileSystem.getDefaultUri(conf), conf); + } @Test public void testProcessInstanceExecution() throws Exception { @@ -407,7 +421,8 @@ public class TestFalconUnit extends FalconUnitTestBase { submitCluster(); createExtensionPackage(); - String result = registerExtension("testExtension", new Path(EXTENSION_PATH).toString(), "testExtension"); + String result = registerExtension("testExtension", new Path(STORAGE_URL + EXTENSION_PATH).toString() + , "testExtension"); Assert.assertEquals(result, "Extension :testExtension registered successfully."); result = unregisterExtension("testExtension"); @@ -420,7 +435,7 @@ public class TestFalconUnit extends FalconUnitTestBase { submitCluster(); createExtensionPackage(); String packageBuildLib = new Path(EXTENSION_PATH, "libs/build/").toString(); - String result = registerExtension("testExtension", EXTENSION_PATH, "testExtension"); + String result = registerExtension("testExtension", STORAGE_URL + EXTENSION_PATH, "testExtension"); Assert.assertEquals(result, "Extension :testExtension registered successfully."); createDir(PROCESS_APP_PATH);
