Repository: sqoop Updated Branches: refs/heads/trunk 9dafccda0 -> 39feebff2
SQOOP-2779: Sqoop metastore doesn't seem to recognize --schema option (Sowmya Ramesh via Venkat Ranganathan) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/39feebff Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/39feebff Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/39feebff Branch: refs/heads/trunk Commit: 39feebff2a12bc9b7c903073c7be8b605baa9d48 Parents: 9dafccd Author: Venkat Ranganathan <[email protected]> Authored: Sun Jan 31 20:19:30 2016 -0800 Committer: Venkat Ranganathan <[email protected]> Committed: Sun Jan 31 20:19:30 2016 -0800 ---------------------------------------------------------------------- src/java/org/apache/sqoop/tool/JobTool.java | 15 ------- .../cloudera/sqoop/metastore/TestSavedJobs.java | 41 ++++++++++++++++++++ 2 files changed, 41 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/39feebff/src/java/org/apache/sqoop/tool/JobTool.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/sqoop/tool/JobTool.java b/src/java/org/apache/sqoop/tool/JobTool.java index 4359058..2eafac3 100644 --- a/src/java/org/apache/sqoop/tool/JobTool.java +++ b/src/java/org/apache/sqoop/tool/JobTool.java @@ -210,21 +210,6 @@ public class JobTool extends com.cloudera.sqoop.tool.BaseSqoopTool { SqoopOptions clonedOpts = (SqoopOptions) childOpts.clone(); clonedOpts.setParent(childOpts); - int dashPos = getDashPosition(extraArguments); - String [] childArgv; - if (dashPos >= extraArguments.length) { - childArgv = new String[0]; - } else { - childArgv = Arrays.copyOfRange(extraArguments, dashPos + 1, - extraArguments.length); - } - - int confRet = configureChildTool(clonedOpts, childTool, childArgv); - if (0 != confRet) { - // Error. - return confRet; - } - return childTool.run(clonedOpts); } http://git-wip-us.apache.org/repos/asf/sqoop/blob/39feebff/src/test/com/cloudera/sqoop/metastore/TestSavedJobs.java ---------------------------------------------------------------------- diff --git a/src/test/com/cloudera/sqoop/metastore/TestSavedJobs.java b/src/test/com/cloudera/sqoop/metastore/TestSavedJobs.java index d100c2c..0ac6bdc 100644 --- a/src/test/com/cloudera/sqoop/metastore/TestSavedJobs.java +++ b/src/test/com/cloudera/sqoop/metastore/TestSavedJobs.java @@ -167,6 +167,46 @@ public class TestSavedJobs extends TestCase { storage.close(); } + public void testCreateJobWithExtraArgs() throws IOException { + Configuration conf = newConf(); + JobStorageFactory ssf = new JobStorageFactory(conf); + + Map<String, String> descriptor = new TreeMap<String, String>(); + JobStorage storage = ssf.getJobStorage(descriptor); + + storage.open(descriptor); + + // Job list should start out empty. + List<String> jobs = storage.list(); + assertEquals(0, jobs.size()); + + // Create a job with extra args + com.cloudera.sqoop.SqoopOptions opts = new SqoopOptions(); + String[] args = {"-schema", "test"}; + opts.setExtraArgs(args); + JobData data = new JobData(opts, new VersionTool()); + storage.create("versionJob", data); + + jobs = storage.list(); + assertEquals(1, jobs.size()); + assertEquals("versionJob", jobs.get(0)); + + // Restore our job, check that it exists. + JobData outData = storage.read("versionJob"); + assertEquals(new VersionTool().getToolName(), + outData.getSqoopTool().getToolName()); + + String[] storedArgs = outData.getSqoopOptions().getExtraArgs(); + for(int index = 0; index < args.length; ++index) { + assertEquals(args[index], storedArgs[index]); + } + + // Now delete the job. + storage.delete("versionJob"); + + storage.close(); + } + public void testMultiConnections() throws IOException { // Ensure that a job can be retrieved when the storage is // closed and reopened. @@ -209,5 +249,6 @@ public class TestSavedJobs extends TestCase { storage.close(); } + }
