5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-11 22:41:50 +08:00

SQOOP-2735: Sqoop2: Use job name in MSubmission

(Colin Ma via Jarek Jarcec Cecho)
This commit is contained in:
Jarek Jarcec Cecho 2015-12-16 20:26:15 +01:00
parent 060be9049c
commit 0ab7c05e11
19 changed files with 106 additions and 94 deletions

View File

@ -44,9 +44,7 @@
public class SubmissionBean implements JsonBean { public class SubmissionBean implements JsonBean {
private static final String SUBMISSION = "submission"; private static final String SUBMISSION = "submission";
@Deprecated private static final String JOB_NAME = "job-name";
private static final String JOB = "job";
private static final String JOB_ID = "job-id";
private static final String CREATION_USER = "creation-user"; private static final String CREATION_USER = "creation-user";
private static final String CREATION_DATE = "creation-date"; private static final String CREATION_DATE = "creation-date";
private static final String LAST_UPDATE_USER = "last-udpate-user"; private static final String LAST_UPDATE_USER = "last-udpate-user";
@ -104,8 +102,7 @@ protected JSONArray extractSubmissions() {
private JSONObject extractSubmission(MSubmission submission) { private JSONObject extractSubmission(MSubmission submission) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put(JOB, submission.getJobId()); object.put(JOB_NAME, submission.getJobName());
object.put(JOB_ID, submission.getJobId());
object.put(STATUS, submission.getStatus().name()); object.put(STATUS, submission.getStatus().name());
object.put(PROGRESS, submission.getProgress()); object.put(PROGRESS, submission.getProgress());
@ -176,11 +173,7 @@ protected void restoreSubmissions(JSONArray array) {
private MSubmission restoreSubmission(Object obj) { private MSubmission restoreSubmission(Object obj) {
JSONObject object = (JSONObject) obj; JSONObject object = (JSONObject) obj;
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
Long jobId = JSONUtils.getLong(object, JOB_ID); submission.setJobName(JSONUtils.getString(object, JOB_NAME));
if (jobId == null) {
jobId = JSONUtils.getLong(object, JOB);
}
submission.setJobId(jobId);
submission.setStatus(SubmissionStatus.valueOf(JSONUtils.getString(object, STATUS))); submission.setStatus(SubmissionStatus.valueOf(JSONUtils.getString(object, STATUS)));
submission.setProgress(JSONUtils.getDouble(object, PROGRESS)); submission.setProgress(JSONUtils.getDouble(object, PROGRESS));

View File

@ -37,11 +37,11 @@
public class MSubmission extends MAccountableEntity { public class MSubmission extends MAccountableEntity {
/** /**
* Job id that this submission object belongs. * Job name that this submission object belongs.
* *
* This property is required and will be always present. * This property is required and will be always present.
*/ */
private long jobId; private String jobName;
/** /**
* Last known submission status. * Last known submission status.
@ -122,36 +122,36 @@ public MSubmission() {
progress = -1; progress = -1;
} }
public MSubmission(long jobId, Date creationDate, SubmissionStatus status) { public MSubmission(String jobName, Date creationDate, SubmissionStatus status) {
this(); this();
this.jobId = jobId; this.jobName = jobName;
this.status = status; this.status = status;
setCreationDate(creationDate); setCreationDate(creationDate);
} }
public MSubmission(long jobId) { public MSubmission(String jobName) {
this(jobId, new Date(), SubmissionStatus.BOOTING); this(jobName, new Date(), SubmissionStatus.BOOTING);
} }
public MSubmission(long jobId, Date creationDate, SubmissionStatus status, public MSubmission(String jobName, Date creationDate, SubmissionStatus status,
String externalId) { String externalId) {
this(jobId, creationDate, status); this(jobName, creationDate, status);
this.externalJobId = externalId; this.externalJobId = externalId;
} }
public MSubmission(long jobId, Date creationDate, SubmissionStatus status, public MSubmission(String jobName, Date creationDate, SubmissionStatus status,
String externalId, String externalLink, Counters counters){ String externalId, String externalLink, Counters counters){
this(jobId, creationDate, status, externalId); this(jobName, creationDate, status, externalId);
this.externalLink = externalLink; this.externalLink = externalLink;
this.counters = counters; this.counters = counters;
} }
public void setJobId(long jobId) { public String getJobName() {
this.jobId = jobId; return jobName;
} }
public long getJobId() { public void setJobName(String jobName) {
return jobId; this.jobName = jobName;
} }
public void setStatus(SubmissionStatus status) { public void setStatus(SubmissionStatus status) {
@ -247,7 +247,7 @@ public void setToSchema(Schema toSchema) {
@Override @Override
public String toString() { public String toString() {
return "MSubmission [jobId=" + jobId + ", status=" + status + ", externalId=" + externalJobId return "MSubmission [jobName=" + jobName + ", status=" + status + ", externalId=" + externalJobId
+ ", progress=" + progress + ", counters=" + counters + ", externalLink=" + externalLink + ", progress=" + progress + ", counters=" + counters + ", externalLink=" + externalLink
+ ", error=" + error + ", fromSchema=" + fromSchema + ", toSchema=" + toSchema + "]"; + ", error=" + error + ", fromSchema=" + fromSchema + ", toSchema=" + toSchema + "]";
} }

View File

@ -54,24 +54,24 @@ public void testTransferUnknown() {
@Test @Test
public void testTransferJobId() { public void testTransferJobId() {
MSubmission source = new MSubmission(); MSubmission source = new MSubmission();
source.setJobId(666); source.setJobName("jobName1");
MSubmission target = transfer(source); MSubmission target = transfer(source);
assertEquals(666, target.getJobId()); assertEquals("jobName1", target.getJobName());
List<MSubmission> sources = new ArrayList<MSubmission>(); List<MSubmission> sources = new ArrayList<MSubmission>();
MSubmission sourcex = new MSubmission(); MSubmission sourcex = new MSubmission();
sourcex.setJobId(777); sourcex.setJobName("jobName2");
sources.add(sourcex); sources.add(sourcex);
MSubmission sourcey = new MSubmission(); MSubmission sourcey = new MSubmission();
sourcey.setJobId(888); sourcey.setJobName("jobName3");
sources.add(sourcey); sources.add(sourcey);
List<MSubmission> targets = transfer(sources); List<MSubmission> targets = transfer(sources);
assertNotNull(targets.get(0)); assertNotNull(targets.get(0));
assertEquals(777, targets.get(0).getJobId()); assertEquals("jobName2", targets.get(0).getJobName());
assertNotNull(targets.get(1)); assertNotNull(targets.get(1));
assertEquals(888, targets.get(1).getJobId()); assertEquals("jobName3", targets.get(1).getJobName());
} }
@Test @Test

View File

@ -311,7 +311,7 @@ public MSubmission start(String jobName, HttpEventContext ctx) {
if (!job.getEnabled()) { if (!job.getEnabled()) {
throw new SqoopException(DriverError.DRIVER_0009, "Job: " + jobName); throw new SqoopException(DriverError.DRIVER_0009, "Job: " + jobName);
} }
MSubmission mSubmission = createJobSubmission(ctx, job.getPersistenceId()); MSubmission mSubmission = createJobSubmission(ctx, job.getName());
JobRequest jobRequest = createJobRequest(mSubmission, job); JobRequest jobRequest = createJobRequest(mSubmission, job);
// Bootstrap job to execute in the configured execution engine // Bootstrap job to execute in the configured execution engine
prepareJob(jobRequest); prepareJob(jobRequest);
@ -463,8 +463,8 @@ private void addJobJars(JobRequest jobRequest) {
} }
} }
MSubmission createJobSubmission(HttpEventContext ctx, long jobId) { MSubmission createJobSubmission(HttpEventContext ctx, String jobName) {
MSubmission summary = new MSubmission(jobId); MSubmission summary = new MSubmission(jobName);
summary.setCreationUser(ctx.getUsername()); summary.setCreationUser(ctx.getUsername());
summary.setLastUpdateUser(ctx.getUsername()); summary.setLastUpdateUser(ctx.getUsername());
return summary; return summary;
@ -496,19 +496,6 @@ MLink getLink(String linkName) {
return link; return link;
} }
// TODO: this method should be removed when MSubmission link job with jobName
MJob getJob(long jobId) {
MJob job = RepositoryManager.getInstance().getRepository().findJob(jobId);
if (job == null) {
throw new SqoopException(DriverError.DRIVER_0004, "Unknown job id: " + jobId);
}
if (!job.getEnabled()) {
throw new SqoopException(DriverError.DRIVER_0009, "Job: " + job.getName());
}
return job;
}
MJob getJob(String jobName) { MJob getJob(String jobName) {
MJob job = RepositoryManager.getInstance().getRepository().findJob(jobName); MJob job = RepositoryManager.getInstance().getRepository().findJob(jobName);
if (job == null) { if (job == null) {
@ -580,7 +567,7 @@ void prepareJob(JobRequest request) {
void invokeDestroyerOnJobSuccess(MSubmission submission) { void invokeDestroyerOnJobSuccess(MSubmission submission) {
try { try {
MJob job = getJob(submission.getJobId()); MJob job = getJob(submission.getJobName());
SqoopConnector fromConnector = getSqoopConnector(job.getFromConnectorName()); SqoopConnector fromConnector = getSqoopConnector(job.getFromConnectorName());
SqoopConnector toConnector = getSqoopConnector(job.getToConnectorName()); SqoopConnector toConnector = getSqoopConnector(job.getToConnectorName());

View File

@ -74,7 +74,7 @@ public void testCreateJobSubmission() {
HttpEventContext testCtx = new HttpEventContext(); HttpEventContext testCtx = new HttpEventContext();
testCtx.setUsername("testUser"); testCtx.setUsername("testUser");
MSubmission jobSubmission = jobManager.createJobSubmission(testCtx, 1234L); MSubmission jobSubmission = jobManager.createJobSubmission(testCtx, "jobName");
assertEquals(jobSubmission.getCreationUser(), "testUser"); assertEquals(jobSubmission.getCreationUser(), "testUser");
assertEquals(jobSubmission.getLastUpdateUser(), "testUser"); assertEquals(jobSubmission.getLastUpdateUser(), "testUser");
} }
@ -173,17 +173,15 @@ public void testDisabledJob() {
@Test @Test
public void testUnknownJob() { public void testUnknownJob() {
long testJobId = 555l; SqoopException exception = new SqoopException(DriverError.DRIVER_0004, "Unknown job name: testJobName");
SqoopException exception = new SqoopException(DriverError.DRIVER_0004, "Unknown job id: "
+ testJobId);
when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock); when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock);
when(jdbcRepoMock.findJob(testJobId)).thenReturn(null); when(jdbcRepoMock.findJob("testJobName")).thenReturn(null);
try { try {
jobManager.getJob(testJobId); jobManager.getJob("testJobName");
} catch (SqoopException ex) { } catch (SqoopException ex) {
assertEquals(ex.getMessage(), exception.getMessage()); assertEquals(ex.getMessage(), exception.getMessage());
verify(repositoryManagerMock, times(1)).getRepository(); verify(repositoryManagerMock, times(1)).getRepository();
verify(jdbcRepoMock, times(1)).findJob(testJobId); verify(jdbcRepoMock, times(1)).findJob("testJobName");
} }
} }

View File

@ -636,7 +636,23 @@ public Long findLinkIdByName(String linkName, Connection conn) {
} }
} catch (SQLException ex) { } catch (SQLException ex) {
logException(ex); logException(ex);
throw new SqoopException(CommonRepositoryError.COMMON_0036, ex); throw new SqoopException(CommonRepositoryError.COMMON_0000, ex);
}
}
public Long findJobIdByName(String jobName, Connection conn) {
try (PreparedStatement stmt = conn.prepareStatement(crudQueries.getStmtSelectJobIdByName())) {
stmt.setString(1,jobName);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getLong(1);
} else {
throw new SqoopException(CommonRepositoryError.COMMON_0028);
}
}
} catch (SQLException ex) {
logException(ex);
throw new SqoopException(CommonRepositoryError.COMMON_0000, ex);
} }
} }
@ -888,9 +904,10 @@ public List<MJob> findJobs(Connection conn) {
@Override @Override
public void createSubmission(MSubmission submission, Connection conn) { public void createSubmission(MSubmission submission, Connection conn) {
int result; int result;
Long jobId = findJobIdByName(submission.getJobName(), conn);
try (PreparedStatement stmt = conn.prepareStatement(crudQueries.getStmtInsertSubmission(), try (PreparedStatement stmt = conn.prepareStatement(crudQueries.getStmtInsertSubmission(),
Statement.RETURN_GENERATED_KEYS)) { Statement.RETURN_GENERATED_KEYS)) {
stmt.setLong(1, submission.getJobId()); stmt.setLong(1, jobId);
stmt.setString(2, submission.getStatus().name()); stmt.setString(2, submission.getStatus().name());
stmt.setString(3, submission.getCreationUser()); stmt.setString(3, submission.getCreationUser());
stmt.setTimestamp(4, new Timestamp(submission.getCreationDate().getTime())); stmt.setTimestamp(4, new Timestamp(submission.getCreationDate().getTime()));
@ -1367,7 +1384,7 @@ private MSubmission loadSubmission(ResultSet rs, Connection conn) throws SQLExce
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setPersistenceId(rs.getLong(1)); submission.setPersistenceId(rs.getLong(1));
submission.setJobId(rs.getLong(2)); submission.setJobName(rs.getString(12));
submission.setStatus(SubmissionStatus.valueOf(rs.getString(3))); submission.setStatus(SubmissionStatus.valueOf(rs.getString(3)));
submission.setCreationUser(rs.getString(4)); submission.setCreationUser(rs.getString(4));
submission.setCreationDate(rs.getTimestamp(5)); submission.setCreationDate(rs.getTimestamp(5));

View File

@ -536,8 +536,11 @@ public class CommonRepositoryInsertUpdateDeleteSelectQuery {
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_ID) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_ID) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_LINK) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_LINK) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_SUMMARY) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_SUMMARY) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_DETAILS) + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_DETAILS) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQB_NAME)
+ " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_SUBMISSION_NAME) + " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_SUBMISSION_NAME)
+ " INNER JOIN " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME)
+ " ON " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_JOB) + " = " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_ID)
+ " WHERE " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_STATUS) + " = ?"; + " WHERE " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_STATUS) + " = ?";
// DML : Get all submissions // DML : Get all submissions
@ -553,8 +556,11 @@ public class CommonRepositoryInsertUpdateDeleteSelectQuery {
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_ID) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_ID) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_LINK) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_LINK) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_SUMMARY) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_SUMMARY) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_DETAILS) + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_DETAILS) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQB_NAME)
+ " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_SUBMISSION_NAME) + " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_SUBMISSION_NAME)
+ " INNER JOIN " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME)
+ " ON " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_JOB) + " = " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_ID)
+ " ORDER BY " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_UPDATE_DATE) + " DESC"; + " ORDER BY " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_UPDATE_DATE) + " DESC";
// DML: Get submissions for a job // DML: Get submissions for a job
@ -570,7 +576,8 @@ public class CommonRepositoryInsertUpdateDeleteSelectQuery {
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_ID) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_ID) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_LINK) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_EXTERNAL_LINK) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_SUMMARY) + ", " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_SUMMARY) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_DETAILS) + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ERROR_DETAILS) + ", "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQB_NAME)
+ " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_SUBMISSION_NAME) + " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_SUBMISSION_NAME)
+ " INNER JOIN " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME) + " INNER JOIN " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME)
+ " ON " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_JOB) + " = " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_ID) + " ON " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_JOB) + " = " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_ID)
@ -578,6 +585,13 @@ public class CommonRepositoryInsertUpdateDeleteSelectQuery {
+ " ORDER BY " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_UPDATE_DATE) + "DESC ," + " ORDER BY " + CommonRepoUtils.escapeColumnName(COLUMN_SQS_UPDATE_DATE) + "DESC ,"
+ CommonRepoUtils.escapeColumnName(COLUMN_SQS_ID) + " DESC"; + CommonRepoUtils.escapeColumnName(COLUMN_SQS_ID) + " DESC";
// DML Select link id by name
private static final String STMT_SELECT_JOB_ID_BY_NAME =
"SELECT "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQB_ID)
+ " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME)
+ " WHERE " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_NAME) + " = ?";
// DML: Select context type // DML: Select context type
private static final String STMT_SELECT_CONTEXT_TYPE = private static final String STMT_SELECT_CONTEXT_TYPE =
"SELECT " "SELECT "
@ -811,6 +825,10 @@ public String getStmtSelectLinkSingleByName() {
public String getStmtSelectLinkIdByName() {return STMT_SELECT_LINK_ID_BY_NAME;} public String getStmtSelectLinkIdByName() {return STMT_SELECT_LINK_ID_BY_NAME;}
public String getStmtSelectJobIdByName() {
return STMT_SELECT_JOB_ID_BY_NAME;
}
public String getStmtSelectLinkAll() { public String getStmtSelectLinkAll() {
return STMT_SELECT_LINK_ALL; return STMT_SELECT_LINK_ALL;
} }

View File

@ -117,7 +117,7 @@ public void testCreateSubmission() throws Exception {
driverContext.setString("driver2", "value2"); driverContext.setString("driver2", "value2");
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setJobId(1); submission.setJobName("JA0");
submission.setStatus(SubmissionStatus.RUNNING); submission.setStatus(SubmissionStatus.RUNNING);
submission.setCreationDate(creationDate); submission.setCreationDate(creationDate);
submission.setLastUpdateDate(updateDate); submission.setLastUpdateDate(updateDate);
@ -141,7 +141,7 @@ public void testCreateSubmission() throws Exception {
submission = submissions.get(0); submission = submissions.get(0);
assertEquals(1, submission.getJobId()); assertEquals("JA0", submission.getJobName());
assertEquals(SubmissionStatus.RUNNING, submission.getStatus()); assertEquals(SubmissionStatus.RUNNING, submission.getStatus());
assertEquals(creationDate.getTime(), submission.getCreationDate().getTime()); assertEquals(creationDate.getTime(), submission.getCreationDate().getTime());
assertEquals(updateDate.getTime(), submission.getLastUpdateDate().getTime()); assertEquals(updateDate.getTime(), submission.getLastUpdateDate().getTime());
@ -188,7 +188,7 @@ public void testCreateSubmission() throws Exception {
assertEquals(submission.getDriverContext().getString("driver2"), "value2"); assertEquals(submission.getDriverContext().getString("driver2"), "value2");
// Let's create second (simpler) connection // Let's create second (simpler) connection
submission = new MSubmission(1, new Date(), SubmissionStatus.SUCCEEDED, "job-x"); submission = new MSubmission("JA0", new Date(), SubmissionStatus.SUCCEEDED, "job-x");
handler.createSubmission(submission, getDerbyDatabaseConnection()); handler.createSubmission(submission, getDerbyDatabaseConnection());
assertEquals(2, submission.getPersistenceId()); assertEquals(2, submission.getPersistenceId());
@ -229,7 +229,7 @@ public void testCreateSubmissionExceptionDetailsMoreThanMaxLimit() throws Except
+ " it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happe" + " it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happe"
+ "nsYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happens"; + "nsYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happens";
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setJobId(1); submission.setJobName("JA0");
submission.setStatus(SubmissionStatus.RUNNING); submission.setStatus(SubmissionStatus.RUNNING);
submission.setCreationDate(new Date()); submission.setCreationDate(new Date());
submission.setLastUpdateDate(new Date()); submission.setLastUpdateDate(new Date());

View File

@ -117,7 +117,7 @@ protected MJob getJob(String name, MConnector connectorA,
protected MSubmission getSubmission(MJob job, protected MSubmission getSubmission(MJob job,
SubmissionStatus submissionStatus) { SubmissionStatus submissionStatus) {
MSubmission submission = new MSubmission(job.getPersistenceId(), MSubmission submission = new MSubmission(job.getName(),
new Date(), submissionStatus); new Date(), submissionStatus);
fillSubmission(submission); fillSubmission(submission);
return submission; return submission;

View File

@ -157,7 +157,7 @@ public void testCreateSubmission() throws Exception {
driverContext.setString("driver2", "value2"); driverContext.setString("driver2", "value2");
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setJobId(1); submission.setJobName(JOB_A_NAME);
submission.setStatus(SubmissionStatus.RUNNING); submission.setStatus(SubmissionStatus.RUNNING);
submission.setCreationDate(creationDate); submission.setCreationDate(creationDate);
submission.setLastUpdateDate(updateDate); submission.setLastUpdateDate(updateDate);
@ -183,7 +183,7 @@ public void testCreateSubmission() throws Exception {
submission = submissions.get(0); submission = submissions.get(0);
assertEquals(1, submission.getJobId()); assertEquals(JOB_A_NAME, submission.getJobName());
assertEquals(SubmissionStatus.RUNNING, submission.getStatus()); assertEquals(SubmissionStatus.RUNNING, submission.getStatus());
long exceptedData = creationDate.getTime(); long exceptedData = creationDate.getTime();
long actualData = submission.getCreationDate().getTime(); long actualData = submission.getCreationDate().getTime();
@ -240,7 +240,7 @@ public void testCreateSubmission() throws Exception {
assertEquals(submission.getDriverContext().getString("driver2"), "value2"); assertEquals(submission.getDriverContext().getString("driver2"), "value2");
// Let's create second (simpler) connection // Let's create second (simpler) connection
submission = new MSubmission(1, new Date(), SubmissionStatus.SUCCEEDED, submission = new MSubmission(JOB_A_NAME, new Date(), SubmissionStatus.SUCCEEDED,
"job-x"); "job-x");
handler.createSubmission(submission, provider.getConnection()); handler.createSubmission(submission, provider.getConnection());
@ -285,7 +285,7 @@ public void testCreateSubmissionExceptionDetailsMoreThanMaxLimit()
+ " it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happe" + " it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happe"
+ "nsYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happens"; + "nsYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happens";
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setJobId(1); submission.setJobName(JOB_A_NAME);
submission.setStatus(SubmissionStatus.RUNNING); submission.setStatus(SubmissionStatus.RUNNING);
submission.setCreationDate(new Date()); submission.setCreationDate(new Date());
submission.setLastUpdateDate(new Date()); submission.setLastUpdateDate(new Date());

View File

@ -106,7 +106,7 @@ protected MJob getJob(String name, MConnector connectorA, MConnector connectorB,
} }
protected MSubmission getSubmission(MJob job, SubmissionStatus submissionStatus) { protected MSubmission getSubmission(MJob job, SubmissionStatus submissionStatus) {
MSubmission submission = new MSubmission(job.getPersistenceId(), new Date(), submissionStatus); MSubmission submission = new MSubmission(job.getName(), new Date(), submissionStatus);
fillSubmission(submission); fillSubmission(submission);
return submission; return submission;
} }

View File

@ -152,7 +152,7 @@ public void testCreateSubmission() throws Exception {
driverContext.setString("driver2", "value2"); driverContext.setString("driver2", "value2");
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setJobId(1); submission.setJobName(JOB_A_NAME);
submission.setStatus(SubmissionStatus.RUNNING); submission.setStatus(SubmissionStatus.RUNNING);
submission.setCreationDate(creationDate); submission.setCreationDate(creationDate);
submission.setLastUpdateDate(updateDate); submission.setLastUpdateDate(updateDate);
@ -177,7 +177,7 @@ public void testCreateSubmission() throws Exception {
submission = submissions.get(0); submission = submissions.get(0);
assertEquals(1, submission.getJobId()); assertEquals(JOB_A_NAME, submission.getJobName());
assertEquals(SubmissionStatus.RUNNING, submission.getStatus()); assertEquals(SubmissionStatus.RUNNING, submission.getStatus());
assertEquals(creationDate, submission.getCreationDate()); assertEquals(creationDate, submission.getCreationDate());
assertEquals(updateDate, submission.getLastUpdateDate()); assertEquals(updateDate, submission.getLastUpdateDate());
@ -224,7 +224,7 @@ public void testCreateSubmission() throws Exception {
assertEquals(submission.getDriverContext().getString("driver2"), "value2"); assertEquals(submission.getDriverContext().getString("driver2"), "value2");
// Let's create second (simpler) connection // Let's create second (simpler) connection
submission = new MSubmission(1, new Date(), SubmissionStatus.SUCCEEDED, "job-x"); submission = new MSubmission(JOB_A_NAME, new Date(), SubmissionStatus.SUCCEEDED, "job-x");
handler.createSubmission(submission, provider.getConnection()); handler.createSubmission(submission, provider.getConnection());
assertEquals(2, submission.getPersistenceId()); assertEquals(2, submission.getPersistenceId());
@ -265,7 +265,7 @@ public void testCreateSubmissionExceptionDetailsMoreThanMaxLimit() throws Except
+ " it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happe" + " it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happe"
+ "nsYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happens"; + "nsYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happensYeah it happens";
MSubmission submission = new MSubmission(); MSubmission submission = new MSubmission();
submission.setJobId(1); submission.setJobName(JOB_A_NAME);
submission.setStatus(SubmissionStatus.RUNNING); submission.setStatus(SubmissionStatus.RUNNING);
submission.setCreationDate(new Date()); submission.setCreationDate(new Date());
submission.setLastUpdateDate(new Date()); submission.setLastUpdateDate(new Date());

View File

@ -149,8 +149,7 @@ public static List<MSubmission> filterSubmission(final String doUserName, List<M
@Override @Override
public boolean apply(MSubmission input) { public boolean apply(MSubmission input) {
try { try {
String jobName = getResourceName(MResource.TYPE.JOB, input.getJobId()); checkPrivilege(doUserName, getPrivilege(MResource.TYPE.JOB, input.getJobName(), MPrivilege.ACTION.READ));
checkPrivilege(doUserName, getPrivilege(MResource.TYPE.JOB, jobName, MPrivilege.ACTION.READ));
// add valid submission // add valid submission
return true; return true;
} catch (RuntimeException e) { } catch (RuntimeException e) {

View File

@ -407,7 +407,7 @@ private JsonBean getJobStatus(RequestContext ctx) {
ctx.getRequest().getRemoteAddr(), "status", "job", jobName); ctx.getRequest().getRemoteAddr(), "status", "job", jobName);
MSubmission submission = JobManager.getInstance().status(jobName); MSubmission submission = JobManager.getInstance().status(jobName);
if (submission == null) { if (submission == null) {
submission = new MSubmission(job.getPersistenceId(), new Date(), SubmissionStatus.NEVER_EXECUTED); submission = new MSubmission(job.getName(), new Date(), SubmissionStatus.NEVER_EXECUTED);
} }
return new SubmissionBean(submission); return new SubmissionBean(submission);

View File

@ -74,7 +74,7 @@ private void showSummary(String jArg) {
} }
List<String> header = new LinkedList<String>(); List<String> header = new LinkedList<String>();
header.add(resourceString(Constants.RES_TABLE_HEADER_JOB_ID)); header.add(resourceString(Constants.RES_TABLE_HEADER_JOB_NAME));
header.add(resourceString(Constants.RES_TABLE_HEADER_EXTERNAL_ID)); header.add(resourceString(Constants.RES_TABLE_HEADER_EXTERNAL_ID));
header.add(resourceString(Constants.RES_TABLE_HEADER_STATUS)); header.add(resourceString(Constants.RES_TABLE_HEADER_STATUS));
header.add(resourceString(Constants.RES_TABLE_HEADER_DATE)); header.add(resourceString(Constants.RES_TABLE_HEADER_DATE));
@ -85,7 +85,7 @@ private void showSummary(String jArg) {
List<String> dates = new LinkedList<String>(); List<String> dates = new LinkedList<String>();
for (MSubmission submission : submissions) { for (MSubmission submission : submissions) {
jids.add(String.valueOf(submission.getJobId())); jids.add(String.valueOf(submission.getJobName()));
eids.add(String.valueOf(submission.getExternalJobId())); eids.add(String.valueOf(submission.getExternalJobId()));
status.add(submission.getStatus().toString()); status.add(submission.getStatus().toString());
dates.add(submission.getLastUpdateDate().toString()); dates.add(submission.getLastUpdateDate().toString());

View File

@ -369,8 +369,8 @@ public class Constants {
"table.header.connector.from"; "table.header.connector.from";
public static final String RES_TABLE_HEADER_TO_CONNECTOR = public static final String RES_TABLE_HEADER_TO_CONNECTOR =
"table.header.connector.to"; "table.header.connector.to";
public static final String RES_TABLE_HEADER_JOB_ID = public static final String RES_TABLE_HEADER_JOB_NAME =
"table.header.jid"; "table.header.job.name";
public static final String RES_TABLE_HEADER_EXTERNAL_ID = public static final String RES_TABLE_HEADER_EXTERNAL_ID =
"table.header.eid"; "table.header.eid";
public static final String RES_TABLE_HEADER_STATUS = public static final String RES_TABLE_HEADER_STATUS =
@ -430,8 +430,8 @@ public class Constants {
public static final String RES_SUBMISSION_SUBMISSION_DETAIL = public static final String RES_SUBMISSION_SUBMISSION_DETAIL =
"submission.submission_detail"; "submission.submission_detail";
public static final String RES_SUBMISSION_JOB_ID = public static final String RES_SUBMISSION_JOB_NAME =
"submission.job_id"; "submission.job_name";
public static final String RES_SUBMISSION_CREATION_USER = public static final String RES_SUBMISSION_CREATION_USER =
"submission.creation_user"; "submission.creation_user";
public static final String RES_SUBMISSION_CREATION_DATE = public static final String RES_SUBMISSION_CREATION_DATE =

View File

@ -43,8 +43,8 @@ public static void displayHeader(MSubmission submission) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
println("@|bold "+ resourceString(Constants.RES_SUBMISSION_SUBMISSION_DETAIL) +"|@"); println("@|bold "+ resourceString(Constants.RES_SUBMISSION_SUBMISSION_DETAIL) +"|@");
print(resourceString(Constants.RES_SUBMISSION_JOB_ID)+": "); print(resourceString(Constants.RES_SUBMISSION_JOB_NAME)+": ");
println(submission.getJobId()); println(submission.getJobName());
print(resourceString(Constants.RES_SUBMISSION_SERVER_URL)+": "); print(resourceString(Constants.RES_SUBMISSION_SERVER_URL)+": ");
println(getServerUrl()); println(getServerUrl());

View File

@ -216,7 +216,7 @@ table.header.supported_directions = Supported Directions
table.header.connector.name = Connector Name table.header.connector.name = Connector Name
table.header.connector.from = From Connector table.header.connector.from = From Connector
table.header.connector.to = To Connector table.header.connector.to = To Connector
table.header.jid = Job Id table.header.job.name = Job Name
table.header.eid = External Id table.header.eid = External Id
table.header.status = Status table.header.status = Status
table.header.date = Last Update Date table.header.date = Last Update Date
@ -249,7 +249,7 @@ config.displayer.input_sensitive = This input is sensitive
config.displayer.warning_message = There were warnings while create or update, but saved successfully. config.displayer.warning_message = There were warnings while create or update, but saved successfully.
submission.submission_detail = Submission details submission.submission_detail = Submission details
submission.job_id = Job ID submission.job_name = Job Name
submission.creation_user = Created by submission.creation_user = Created by
submission.creation_date = Creation date submission.creation_date = Creation date
submission.update_user = Lastly updated by submission.update_user = Lastly updated by

View File

@ -278,12 +278,12 @@ public void testShowJob() {
@Test @Test
public void testShowSubmission() { public void testShowSubmission() {
when(client.getSubmissions()).thenReturn(Arrays.asList(new MSubmission(1L))); when(client.getSubmissions()).thenReturn(Arrays.asList(new MSubmission("jobName")));
when(client.getSubmissionsForJob(any(String.class))).thenReturn(Arrays.asList(new MSubmission(1L))); when(client.getSubmissionsForJob(any(String.class))).thenReturn(Arrays.asList(new MSubmission("jobName")));
// show submission -details -name jobName // show submission -details -job jobName
out.reset(); out.reset();
Status status = (Status) showCmd.execute(Arrays.asList(Constants.FN_SUBMISSION, "-detail", "-name", "jobName")); Status status = (Status) showCmd.execute(Arrays.asList(Constants.FN_SUBMISSION, "-detail", "-job", "jobName"));
Assert.assertTrue(status != null && status == Status.OK); Assert.assertTrue(status != null && status == Status.OK);
String str = new String(out.toByteArray()); String str = new String(out.toByteArray());
Assert.assertTrue(str.contains("Submission details")); Assert.assertTrue(str.contains("Submission details"));
@ -300,7 +300,7 @@ public void testShowSubmission() {
status = (Status) showCmd.execute(Arrays.asList(Constants.FN_SUBMISSION, "-job", "jobName")); status = (Status) showCmd.execute(Arrays.asList(Constants.FN_SUBMISSION, "-job", "jobName"));
Assert.assertTrue(status != null && status == Status.OK); Assert.assertTrue(status != null && status == Status.OK);
str = new String(out.toByteArray()); str = new String(out.toByteArray());
Assert.assertTrue(str.contains("Job Id")); Assert.assertTrue(str.contains("Job Name"));
Assert.assertTrue(str.contains("External Id")); Assert.assertTrue(str.contains("External Id"));
Assert.assertTrue(str.contains("Status")); Assert.assertTrue(str.contains("Status"));
Assert.assertTrue(str.contains("Last Update Date")); Assert.assertTrue(str.contains("Last Update Date"));
@ -310,7 +310,7 @@ public void testShowSubmission() {
status = (Status) showCmd.execute(Arrays.asList(Constants.FN_SUBMISSION)); status = (Status) showCmd.execute(Arrays.asList(Constants.FN_SUBMISSION));
Assert.assertTrue(status != null && status == Status.OK); Assert.assertTrue(status != null && status == Status.OK);
str = new String(out.toByteArray()); str = new String(out.toByteArray());
Assert.assertTrue(str.contains("Job Id")); Assert.assertTrue(str.contains("Job Name"));
Assert.assertTrue(str.contains("External Id")); Assert.assertTrue(str.contains("External Id"));
Assert.assertTrue(str.contains("Status")); Assert.assertTrue(str.contains("Status"));
Assert.assertTrue(str.contains("Last Update Date")); Assert.assertTrue(str.contains("Last Update Date"));