Repository: sqoop Updated Branches: refs/heads/sqoop2 fdc7cd3d3 -> 6dde89615
SQOOP-2675: Sqoop2: Remove the id from public interface for Job (Colin Ma via Jarek Jarcec Cecho) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/6dde8961 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/6dde8961 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/6dde8961 Branch: refs/heads/sqoop2 Commit: 6dde89615895212a51d10f829b4a6332f24d4526 Parents: fdc7cd3 Author: Jarek Jarcec Cecho <[email protected]> Authored: Thu Nov 12 13:08:02 2015 -0800 Committer: Jarek Jarcec Cecho <[email protected]> Committed: Thu Nov 12 13:08:02 2015 -0800 ---------------------------------------------------------------------- .../org/apache/sqoop/handler/HandlerUtils.java | 47 ++------------------ .../apache/sqoop/handler/JobRequestHandler.java | 36 +++++++-------- .../sqoop/handler/SubmissionRequestHandler.java | 4 +- .../test/infrastructure/SqoopTestCase.java | 4 +- .../sqoop/test/testcases/ConnectorTestCase.java | 6 +-- .../jdbc/generic/IncrementalReadTest.java | 4 +- .../derby/upgrade/Derby1_99_3UpgradeTest.java | 14 ++---- .../derby/upgrade/Derby1_99_4UpgradeTest.java | 9 +--- .../derby/upgrade/Derby1_99_5UpgradeTest.java | 9 +--- .../derby/upgrade/Derby1_99_6UpgradeTest.java | 9 +--- .../upgrade/DerbyRepositoryUpgradeTest.java | 23 +++++----- .../SubmissionWithDisabledModelObjectsTest.java | 7 ++- 12 files changed, 59 insertions(+), 113 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java b/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java index 69bccf7..c23a704 100644 --- a/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java +++ b/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java @@ -27,53 +27,14 @@ import org.apache.sqoop.server.common.ServerError; public class HandlerUtils { - public static long getJobIdFromIdentifier(String identifier) { - // support jobName or jobId for the api - // NOTE: jobId is a fallback for older sqoop clients if any, since we want - // to primarily use unique jobNames - long jobId; - Repository repository = RepositoryManager.getInstance().getRepository(); - MJob job = repository.findJob(identifier); - if (job != null) { - jobId = job.getPersistenceId(); - } else { - try { - jobId = Long.parseLong(identifier); - } catch (NumberFormatException ex) { - // this means name nor Id existed and we want to throw a user friendly - // message than a number format exception - throw new SqoopException(ServerError.SERVER_0005, "Invalid job: " + identifier - + " requested"); - } - } - return jobId; - } - - public static String getJobNameFromIdentifier(String identifier) { - // support jobName or jobId for the api - // NOTE: jobId is a fallback for older sqoop clients if any, since we want - // to primarily use unique jobNames + public static MJob getJobFromIdentifier(String identifier) { Repository repository = RepositoryManager.getInstance().getRepository(); MJob job = repository.findJob(identifier); if (job == null) { - long jobId; - try { - jobId = Long.parseLong(identifier); - } catch (NumberFormatException ex) { - // this means name nor Id existed and we want to throw a user friendly - // message than a number format exception - throw new SqoopException(ServerError.SERVER_0005, "Invalid job: " + identifier - + " requested"); - } - - job = repository.findJob(jobId); - if (job == null) { - throw new SqoopException(ServerError.SERVER_0006, "Job: " + identifier - + " doesn't exist"); - } + throw new SqoopException(ServerError.SERVER_0006, "Job: " + identifier + + " doesn't exist"); } - - return job.getName(); + return job; } public static long getLinkIdFromIdentifier(String identifier) { http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java index 6face94..094bf2b 100644 --- a/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java @@ -141,7 +141,8 @@ public class JobRequestHandler implements RequestHandler { Repository repository = RepositoryManager.getInstance().getRepository(); String jobIdentifier = ctx.getLastURLElement(); - String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier); + String jobName = job.getName(); // Authorization check AuthorizationEngine.deleteJob(ctx.getUserName(), jobName); @@ -195,7 +196,7 @@ public class JobRequestHandler implements RequestHandler { AuthorizationEngine.updateJob(ctx.getUserName(), HandlerUtils.getLinkNameFromIdentifier(String.valueOf(postedJob.getFromLinkId())), HandlerUtils.getLinkNameFromIdentifier(String.valueOf(postedJob.getToLinkId())), - HandlerUtils.getJobNameFromIdentifier(String.valueOf(postedJob.getPersistenceId()))); + postedJob.getName()); } // Verify that user is not trying to spoof us @@ -214,10 +215,8 @@ public class JobRequestHandler implements RequestHandler { // if update get the job id from the request URI if (!create) { String jobIdentifier = ctx.getLastURLElement(); - // support jobName or jobId for the api - long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier); + MJob existingJob = HandlerUtils.getJobFromIdentifier(jobIdentifier); if (postedJob.getPersistenceId() == MPersistableEntity.PERSISTANCE_ID_DEFAULT) { - MJob existingJob = repository.findJob(jobId); postedJob.setPersistenceId(existingJob.getPersistenceId()); } } @@ -310,12 +309,12 @@ public class JobRequestHandler implements RequestHandler { AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), "get", "job", connectorIdentifier); - String jobName = HandlerUtils.getJobNameFromIdentifier(connectorIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(connectorIdentifier); + String jobName = job.getName(); // Authorization check AuthorizationEngine.readJob(ctx.getUserName(), jobName); - MJob job = repository.findJob(jobName); jobBean = createJobBean(Arrays.asList(job), locale); } return jobBean; @@ -354,7 +353,8 @@ public class JobRequestHandler implements RequestHandler { Repository repository = RepositoryManager.getInstance().getRepository(); String[] elements = ctx.getUrlElements(); String jobIdentifier = elements[elements.length - 2]; - String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier); + String jobName = job.getName(); // Authorization check AuthorizationEngine.enableDisableJob(ctx.getUserName(), jobName); @@ -366,14 +366,14 @@ public class JobRequestHandler implements RequestHandler { private JsonBean startJob(RequestContext ctx) { String[] elements = ctx.getUrlElements(); String jobIdentifier = elements[elements.length - 2]; - long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier); - String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier); + String jobName = job.getName(); // Authorization check AuthorizationEngine.startJob(ctx.getUserName(), jobName); AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), - ctx.getRequest().getRemoteAddr(), "submit", "job", String.valueOf(jobId)); + ctx.getRequest().getRemoteAddr(), "submit", "job", jobName); // TODO(SQOOP-1638): This should be outsourced somewhere more suitable than here // Current approach is to point JobManager to use /v1/job/notification/$JOB_ID/status // and depend on the behavior of status that for running jobs will go to the cluster @@ -392,14 +392,14 @@ public class JobRequestHandler implements RequestHandler { private JsonBean stopJob(RequestContext ctx) { String[] elements = ctx.getUrlElements(); String jobIdentifier = elements[elements.length - 2]; - long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier); - String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier); + String jobName = job.getName(); // Authorization check AuthorizationEngine.stopJob(ctx.getUserName(), jobName); AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), - ctx.getRequest().getRemoteAddr(), "stop", "job", String.valueOf(jobId)); + ctx.getRequest().getRemoteAddr(), "stop", "job", jobName); MSubmission submission = JobManager.getInstance().stop(jobName, prepareRequestEventContext(ctx)); return new SubmissionBean(submission); } @@ -407,17 +407,17 @@ public class JobRequestHandler implements RequestHandler { private JsonBean getJobStatus(RequestContext ctx) { String[] elements = ctx.getUrlElements(); String jobIdentifier = elements[elements.length - 2]; - long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier); - String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier); + String jobName = job.getName(); // Authorization check AuthorizationEngine.statusJob(ctx.getUserName(), jobName); AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), - ctx.getRequest().getRemoteAddr(), "status", "job", String.valueOf(jobId)); + ctx.getRequest().getRemoteAddr(), "status", "job", jobName); MSubmission submission = JobManager.getInstance().status(jobName); if (submission == null) { - submission = new MSubmission(jobId, new Date(), SubmissionStatus.NEVER_EXECUTED); + submission = new MSubmission(job.getPersistenceId(), new Date(), SubmissionStatus.NEVER_EXECUTED); } return new SubmissionBean(submission); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java index 02937bb..6cf3dbe 100644 --- a/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java @@ -24,6 +24,7 @@ import org.apache.sqoop.audit.AuditLoggerManager; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.json.JsonBean; import org.apache.sqoop.json.SubmissionsBean; +import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MSubmission; import org.apache.sqoop.repository.RepositoryManager; import org.apache.sqoop.security.authorization.AuthorizationEngine; @@ -75,7 +76,8 @@ public class SubmissionRequestHandler implements RequestHandler { } private JsonBean getSubmissionsForJob(String jobIdentifier, RequestContext ctx) { - String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier); + MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier); + String jobName = job.getName(); //Authorization check AuthorizationEngine.statusJob(ctx.getUserName(), jobName); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java b/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java index 386b701..4c5d3a8 100644 --- a/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java +++ b/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java @@ -353,8 +353,8 @@ public class SqoopTestCase implements ITest { * @param jid Job id * @throws Exception */ - public void executeJob(long jid) throws Exception { - MSubmission finalSubmission = getClient().startJob(jid, DEFAULT_SUBMISSION_CALLBACKS, 100); + public void executeJob(String jobName) throws Exception { + MSubmission finalSubmission = getClient().startJob(jobName, DEFAULT_SUBMISSION_CALLBACKS, 100); if(finalSubmission.getStatus().isFailure()) { LOG.error("Submission has failed: " + finalSubmission.getError().getErrorSummary()); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java index 8e3d7df..c843448 100644 --- a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java +++ b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java @@ -279,8 +279,8 @@ abstract public class ConnectorTestCase extends JettyTestCase { * @param jid Job id * @throws Exception */ - protected void executeJob(long jid) throws Exception { - MSubmission finalSubmission = getClient().startJob(jid, DEFAULT_SUBMISSION_CALLBACKS, 100); + protected void executeJob(String jobName) throws Exception { + MSubmission finalSubmission = getClient().startJob(jobName, DEFAULT_SUBMISSION_CALLBACKS, 100); if(finalSubmission.getStatus().isFailure()) { LOG.error("Submission has failed: " + finalSubmission.getError().getErrorSummary()); @@ -297,6 +297,6 @@ abstract public class ConnectorTestCase extends JettyTestCase { * @throws Exception */ protected void executeJob(MJob job) throws Exception { - executeJob(job.getPersistenceId()); + executeJob(job.getName()); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java b/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java index a7be9c6..d29e4cf 100644 --- a/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java @@ -120,7 +120,7 @@ public class IncrementalReadTest extends ConnectorTestCase implements ITest { ); // Verify new last value - MJob updatedJob = getClient().getJob(job.getPersistenceId()); + MJob updatedJob = getClient().getJob(job.getName()); assertEquals(updatedJob.getFromJobConfig().getStringInput("incrementalRead.lastValue").getValue(), newMaxValue); // Clean up testing table @@ -175,7 +175,7 @@ public class IncrementalReadTest extends ConnectorTestCase implements ITest { ); // Verify new last value - MJob updatedJob = getClient().getJob(job.getPersistenceId()); + MJob updatedJob = getClient().getJob(job.getName()); assertEquals(updatedJob.getFromJobConfig().getStringInput("incrementalRead.lastValue").getValue(), newMaxValue); // Clean up testing table http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java index 3962449..ab2b950 100644 --- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java @@ -20,10 +20,7 @@ package org.apache.sqoop.integration.repository.derby.upgrade; import org.apache.sqoop.model.MJob; import org.testng.annotations.Test; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertEquals; @@ -77,8 +74,8 @@ public class Derby1_99_3UpgradeTest extends DerbyRepositoryUpgradeTest { } @Override - public Integer[] getDisabledJobIds() { - return new Integer[] {3}; + public String[] getDisabledJobNames() { + return new String[] {jobIdToNameMap.get(3L)}; } @Override @@ -86,11 +83,6 @@ public class Derby1_99_3UpgradeTest extends DerbyRepositoryUpgradeTest { return new Integer[] {1, 2, 3, 4, 5}; } - @Override - public Integer[] getDeleteJobIds() { - return new Integer[] {1, 2, 3, 4, 5, 6}; - } - @Test public void testNonuniqueNames() throws Exception { Set<String> jobNames = new TreeSet<String>(); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java index 9ee0379..c86888f 100644 --- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java @@ -76,17 +76,12 @@ public class Derby1_99_4UpgradeTest extends DerbyRepositoryUpgradeTest { } @Override - public Integer[] getDisabledJobIds() { - return new Integer[] {4, 5}; + public String[] getDisabledJobNames() { + return new String[] {jobIdToNameMap.get(4L), jobIdToNameMap.get(5L)}; } @Override public Integer[] getDeleteLinkIds() { return new Integer[] {1, 2, 3, 4, 5, 6}; } - - @Override - public Integer[] getDeleteJobIds() { - return new Integer[] {1, 2, 3, 4, 5, 6}; - } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java index 4183d8b..8e6435a 100644 --- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java @@ -85,8 +85,8 @@ public class Derby1_99_5UpgradeTest extends DerbyRepositoryUpgradeTest { } @Override - public Integer[] getDisabledJobIds() { - return new Integer[] {4, 5}; + public String[] getDisabledJobNames() { + return new String[] {jobIdToNameMap.get(4L), jobIdToNameMap.get(5L)}; } @Override @@ -94,11 +94,6 @@ public class Derby1_99_5UpgradeTest extends DerbyRepositoryUpgradeTest { return new Integer[] {1, 2, 3, 4, 5, 6}; } - @Override - public Integer[] getDeleteJobIds() { - return new Integer[] {1, 2, 3, 4, 5, 6}; - } - @Test public void testJobNameNotNull() { assertEquals(getNumberOfJobs(), getClient().getJobs().size()); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java index 59980c0..258b79a 100644 --- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java @@ -86,8 +86,8 @@ public class Derby1_99_6UpgradeTest extends DerbyRepositoryUpgradeTest { } @Override - public Integer[] getDisabledJobIds() { - return new Integer[] {4, 5}; + public String[] getDisabledJobNames() { + return new String[] {jobIdToNameMap.get(4L), jobIdToNameMap.get(5L)}; } @Override @@ -95,11 +95,6 @@ public class Derby1_99_6UpgradeTest extends DerbyRepositoryUpgradeTest { return new Integer[] {1, 2, 3, 4, 5, 6}; } - @Override - public Integer[] getDeleteJobIds() { - return new Integer[] {1, 2, 3, 4, 5, 6}; - } - @Test public void testJobNameNotNull() { assertEquals(getNumberOfJobs(), getClient().getJobs().size()); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java index 98e1fa1..6f19113 100644 --- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java @@ -19,6 +19,7 @@ package org.apache.sqoop.integration.repository.derby.upgrade; import org.apache.hadoop.conf.Configuration; import org.apache.sqoop.client.SqoopClient; +import org.apache.sqoop.model.MJob; import org.apache.sqoop.test.minicluster.JettySqoopMiniCluster; import org.apache.sqoop.test.testcases.JettyTestCase; import org.apache.sqoop.test.utils.CompressionUtils; @@ -54,6 +55,7 @@ import static org.testng.Assert.assertNotNull; public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase { private static final Logger LOG = Logger.getLogger(DerbyRepositoryUpgradeTest.class); + protected Map<Long, String> jobIdToNameMap; /** * Custom Sqoop mini cluster that points derby repository to real on-disk structures. @@ -112,18 +114,13 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase { /** * List of job ids that should be disabled */ - public abstract Integer[] getDisabledJobIds(); + public abstract String[] getDisabledJobNames(); /** * List of link ids that we should delete using the id */ public abstract Integer[] getDeleteLinkIds(); - /** - * List of job ids that we should delete using the id - */ - public abstract Integer[] getDeleteJobIds(); - public String getRepositoryPath() { return HdfsUtils.joinPathFragments(getTemporaryJettyPath(), "repo"); } @@ -157,6 +154,11 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase { // Initialize Sqoop Client API setClient(new SqoopClient(getServerUrl())); + + jobIdToNameMap = new HashMap<Long, String>(); + for(MJob job : getClient().getJobs()) { + jobIdToNameMap.put(job.getPersistenceId(), job.getName()); + } } @AfterMethod @@ -166,6 +168,7 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase { @Test public void testPostUpgrade() throws Exception { + // Please note that the upgrade itself is done on startup and hence prior calling this test // method. We're just verifying that Server has started and behaves and we are expecting. @@ -185,13 +188,13 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase { for(Integer id : getDisabledLinkIds()) { assertFalse(getClient().getLink(id).getEnabled()); } - for(Integer id : getDisabledJobIds()) { - assertFalse(getClient().getJob(id).getEnabled()); + for(String name : getDisabledJobNames()) { + assertFalse(getClient().getJob(name).getEnabled()); } // Remove all objects - for(Integer id : getDeleteJobIds()) { - getClient().deleteJob(id); + for(String name : jobIdToNameMap.values()) { + getClient().deleteJob(name); } for(Integer id : getDeleteLinkIds()) { getClient().deleteLink(id); http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java b/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java index 93cc7f6..c4e448e 100644 --- a/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java @@ -76,6 +76,8 @@ public class SubmissionWithDisabledModelObjectsTest extends SqoopTestCase { @Test public void testWithDisabledObjects() throws Exception { + // the test will be executed several times, and the jobName should be different. + String jobName = "job_" + System.currentTimeMillis(); // RDBMS link MLink rdbmsLink = getClient().createLink("generic-jdbc-connector"); fillRdbmsLinkConfig(rdbmsLink); @@ -88,6 +90,7 @@ public class SubmissionWithDisabledModelObjectsTest extends SqoopTestCase { // Job creation MJob job = getClient().createJob(rdbmsLink.getPersistenceId(), hdfsLink.getPersistenceId()); + job.setName(jobName); // rdms "FROM" config fillRdbmsFromConfig(job, "id"); @@ -99,11 +102,11 @@ public class SubmissionWithDisabledModelObjectsTest extends SqoopTestCase { // Disable model entities as per parameterized run getClient().enableLink(rdbmsLink.getPersistenceId(), enabledLink); - getClient().enableJob(job.getPersistenceId(), enabledJob); + getClient().enableJob(jobName, enabledJob); // Try to execute the job and verify that the it was not executed try { - executeJob(job.getPersistenceId()); + executeJob(jobName); fail("Expected exception as the model classes are disabled."); } catch(SqoopException ex) { // Top level exception should be CLIENT_0001
