5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-12 15:01:45 +08:00

SQOOP-2713: Sqoop2: Use link name in MJob

(Colin Ma via Jarek Jarcec Cecho)
This commit is contained in:
Jarek Jarcec Cecho 2015-12-09 10:45:46 +01:00
parent e70b9c259a
commit 3f5b33d0d9
22 changed files with 144 additions and 109 deletions

View File

@ -395,8 +395,8 @@ public MJob createJob(String fromLinkName, String toLinkName) {
return new MJob( return new MJob(
connectorForFromLink.getUniqueName(), connectorForFromLink.getUniqueName(),
connectorForToLink.getUniqueName(), connectorForToLink.getUniqueName(),
fromLink.getPersistenceId(), fromLinkName,
toLink.getPersistenceId(), toLinkName,
connectorForFromLink.getFromConfig().clone(false), connectorForFromLink.getFromConfig().clone(false),
connectorForToLink.getToConfig().clone(false), connectorForToLink.getToConfig().clone(false),
getDriverConfig() getDriverConfig()

View File

@ -48,8 +48,8 @@
@InterfaceStability.Unstable @InterfaceStability.Unstable
public class JobBean implements JsonBean { public class JobBean implements JsonBean {
static final String FROM_LINK_ID = "from-link-id"; static final String FROM_LINK_NAME = "from-link-name";
static final String TO_LINK_ID = "to-link-id"; static final String TO_LINK_NAME = "to-link-name";
static final String FROM_CONNECTOR_NAME = "from-connector-name"; static final String FROM_CONNECTOR_NAME = "from-connector-name";
static final String TO_CONNECTOR_NAME = "to-connector-name"; static final String TO_CONNECTOR_NAME = "to-connector-name";
static final String FROM_CONFIG_VALUES = "from-config-values"; static final String FROM_CONFIG_VALUES = "from-config-values";
@ -137,8 +137,8 @@ private JSONObject extractJob(boolean skipSensitive, MJob job) {
object.put(FROM_CONNECTOR_NAME, job.getFromConnectorName()); object.put(FROM_CONNECTOR_NAME, job.getFromConnectorName());
object.put(TO_CONNECTOR_NAME, job.getToConnectorName()); object.put(TO_CONNECTOR_NAME, job.getToConnectorName());
// job associated links // job associated links
object.put(FROM_LINK_ID, job.getFromLinkId()); object.put(FROM_LINK_NAME, job.getFromLinkName());
object.put(TO_LINK_ID, job.getToLinkId()); object.put(TO_LINK_NAME, job.getToLinkName());
// job configs // job configs
MFromConfig fromConfigList = job.getFromJobConfig(); MFromConfig fromConfigList = job.getFromJobConfig();
object.put(FROM_CONFIG_VALUES, extractConfigList(fromConfigList, skipSensitive)); object.put(FROM_CONFIG_VALUES, extractConfigList(fromConfigList, skipSensitive));
@ -170,8 +170,8 @@ private MJob restoreJob(Object obj) {
JSONObject object = (JSONObject) obj; JSONObject object = (JSONObject) obj;
String fromConnectorName = JSONUtils.getString(object, FROM_CONNECTOR_NAME); String fromConnectorName = JSONUtils.getString(object, FROM_CONNECTOR_NAME);
String toConnectorName = JSONUtils.getString(object, TO_CONNECTOR_NAME); String toConnectorName = JSONUtils.getString(object, TO_CONNECTOR_NAME);
long fromConnectionId = JSONUtils.getLong(object, FROM_LINK_ID); String fromLinkName = JSONUtils.getString(object, FROM_LINK_NAME);
long toConnectionId = JSONUtils.getLong(object, TO_LINK_ID); String toLinkName = JSONUtils.getString(object, TO_LINK_NAME);
JSONObject fromConfigJson = JSONUtils.getJSONObject(object, FROM_CONFIG_VALUES); JSONObject fromConfigJson = JSONUtils.getJSONObject(object, FROM_CONFIG_VALUES);
JSONObject toConfigJson = JSONUtils.getJSONObject(object, TO_CONFIG_VALUES); JSONObject toConfigJson = JSONUtils.getJSONObject(object, TO_CONFIG_VALUES);
JSONObject driverConfigJson = JSONUtils.getJSONObject(object, DRIVER_CONFIG_VALUES); JSONObject driverConfigJson = JSONUtils.getJSONObject(object, DRIVER_CONFIG_VALUES);
@ -188,8 +188,8 @@ private MJob restoreJob(Object obj) {
MJob job = new MJob( MJob job = new MJob(
fromConnectorName, fromConnectorName,
toConnectorName, toConnectorName,
fromConnectionId, fromLinkName,
toConnectionId, toLinkName,
new MFromConfig(fromConfigs, fromValidators), new MFromConfig(fromConfigs, fromValidators),
new MToConfig(toConfigs, toValidators), new MToConfig(toConfigs, toValidators),
new MDriverConfig(driverConfigs, driverValidators) new MDriverConfig(driverConfigs, driverValidators)

View File

@ -37,9 +37,8 @@ public class MJob extends MAccountableEntity implements MClonable {
*/ */
private final String fromConnectorName; private final String fromConnectorName;
private final String toConnectorName; private final String toConnectorName;
private final long fromLinkId; private final String fromLinkName;
private final long toLinkId; private final String toLinkName;
private final MFromConfig fromConfig; private final MFromConfig fromConfig;
private final MToConfig toConfig; private final MToConfig toConfig;
private final MDriverConfig driverConfig; private final MDriverConfig driverConfig;
@ -49,23 +48,23 @@ public class MJob extends MAccountableEntity implements MClonable {
* *
* @param fromConnectorId FROM Connector id * @param fromConnectorId FROM Connector id
* @param toConnectorId TO Connector id * @param toConnectorId TO Connector id
* @param fromLinkId FROM Link id * @param fromLinkName FROM Link name
* @param toLinkId TO Link id * @param toLinkName TO Link name
* @param fromConfig FROM job config * @param fromConfig FROM job config
* @param toConfig TO job config * @param toConfig TO job config
* @param driverConfig driver config * @param driverConfig driver config
*/ */
public MJob(String fromConnectorName, public MJob(String fromConnectorName,
String toConnectorName, String toConnectorName,
long fromLinkId, String fromLinkName,
long toLinkId, String toLinkName,
MFromConfig fromConfig, MFromConfig fromConfig,
MToConfig toConfig, MToConfig toConfig,
MDriverConfig driverConfig) { MDriverConfig driverConfig) {
this.fromConnectorName = fromConnectorName; this.fromConnectorName = fromConnectorName;
this.toConnectorName = toConnectorName; this.toConnectorName = toConnectorName;
this.fromLinkId = fromLinkId; this.fromLinkName = fromLinkName;
this.toLinkId = toLinkId; this.toLinkName = toLinkName;
this.fromConfig = fromConfig; this.fromConfig = fromConfig;
this.toConfig = toConfig; this.toConfig = toConfig;
this.driverConfig = driverConfig; this.driverConfig = driverConfig;
@ -99,8 +98,8 @@ public MJob(MJob other, MFromConfig fromConfig, MToConfig toConfig, MDriverConfi
this.fromConnectorName = other.getFromConnectorName(); this.fromConnectorName = other.getFromConnectorName();
this.toConnectorName = other.getToConnectorName(); this.toConnectorName = other.getToConnectorName();
this.fromLinkId = other.getFromLinkId(); this.fromLinkName = other.getFromLinkName();
this.toLinkId = other.getToLinkId(); this.toLinkName = other.getToLinkName();
this.fromConfig = fromConfig; this.fromConfig = fromConfig;
this.toConfig = toConfig; this.toConfig = toConfig;
this.driverConfig = driverConfig; this.driverConfig = driverConfig;
@ -117,12 +116,12 @@ public String toString() {
return sb.toString(); return sb.toString();
} }
public long getFromLinkId() { public String getFromLinkName() {
return fromLinkId; return fromLinkName;
} }
public long getToLinkId() { public String getToLinkName() {
return toLinkId; return toLinkName;
} }
public String getFromConnectorName() { public String getFromConnectorName() {
@ -153,8 +152,8 @@ public MJob clone(boolean cloneWithValue) {
return new MJob( return new MJob(
getFromConnectorName(), getFromConnectorName(),
getToConnectorName(), getToConnectorName(),
getFromLinkId(), getFromLinkName(),
getToLinkId(), getToLinkName(),
getFromJobConfig().clone(false), getFromJobConfig().clone(false),
getToJobConfig().clone(false), getToJobConfig().clone(false),
getDriverConfig().clone(false)); getDriverConfig().clone(false));
@ -174,8 +173,8 @@ public boolean equals(Object object) {
MJob job = (MJob)object; MJob job = (MJob)object;
return (job.getFromConnectorName().equals(this.getFromConnectorName())) return (job.getFromConnectorName().equals(this.getFromConnectorName()))
&& (job.getToConnectorName().equals(this.getToConnectorName())) && (job.getToConnectorName().equals(this.getToConnectorName()))
&& (job.getFromLinkId() == this.getFromLinkId()) && (job.getFromLinkName().equals(this.getFromLinkName()))
&& (job.getToLinkId() == this.getToLinkId()) && (job.getToLinkName().equals(this.getToLinkName()))
&& (job.getPersistenceId() == this.getPersistenceId()) && (job.getPersistenceId() == this.getPersistenceId())
&& (job.getFromJobConfig().equals(this.getFromJobConfig())) && (job.getFromJobConfig().equals(this.getFromJobConfig()))
&& (job.getToJobConfig().equals(this.getToJobConfig())) && (job.getToJobConfig().equals(this.getToJobConfig()))
@ -186,8 +185,8 @@ public boolean equals(Object object) {
public int hashCode() { public int hashCode() {
int result = fromConnectorName != null ? fromConnectorName.hashCode() : 0; int result = fromConnectorName != null ? fromConnectorName.hashCode() : 0;
result = 31 * result + (toConnectorName != null ? toConnectorName.hashCode() : 0); result = 31 * result + (toConnectorName != null ? toConnectorName.hashCode() : 0);
result = 31 * result + (int) (fromLinkId ^ (fromLinkId >>> 32)); result = 31 * result + (fromLinkName != null ? fromLinkName.hashCode() : 0);
result = 31 * result + (int) (toLinkId ^ (toLinkId >>> 32)); result = 31 * result + (toLinkName != null ? toLinkName.hashCode() : 0);
result = 31 * result + (fromConfig != null ? fromConfig.hashCode() : 0); result = 31 * result + (fromConfig != null ? fromConfig.hashCode() : 0);
result = 31 * result + (toConfig != null ? toConfig.hashCode() : 0); result = 31 * result + (toConfig != null ? toConfig.hashCode() : 0);
result = 31 * result + (driverConfig != null ? driverConfig.hashCode() : 0); result = 31 * result + (driverConfig != null ? driverConfig.hashCode() : 0);

View File

@ -61,8 +61,8 @@ public void testJobSerialization() throws ParseException {
assertEquals(22L, target.getPersistenceId()); assertEquals(22L, target.getPersistenceId());
assertEquals("The big Job", target.getName()); assertEquals("The big Job", target.getName());
assertEquals(target.getFromLinkId(), 1); assertEquals(target.getFromLinkName(), "fromLinkName");
assertEquals(target.getToLinkId(), 2); assertEquals(target.getToLinkName(), "toLinkName");
assertEquals(target.getFromConnectorName(), "from_ahoj"); assertEquals(target.getFromConnectorName(), "from_ahoj");
assertEquals(target.getToConnectorName(), "to_ahoj"); assertEquals(target.getToConnectorName(), "to_ahoj");
assertEquals(created, target.getCreationDate()); assertEquals(created, target.getCreationDate());

View File

@ -72,8 +72,8 @@ public void testJobsSerialization() throws ParseException {
assertEquals(44L, retrievedJob2.getPersistenceId()); assertEquals(44L, retrievedJob2.getPersistenceId());
assertEquals("The small Job", retrievedJob2.getName()); assertEquals("The small Job", retrievedJob2.getName());
assertEquals(retrievedJob1.getFromLinkId(), 1); assertEquals(retrievedJob1.getFromLinkName(), "fromLinkName");
assertEquals(retrievedJob1.getToLinkId(), 2); assertEquals(retrievedJob1.getToLinkName(), "toLinkName");
assertEquals(retrievedJob1.getFromConnectorName(), "from_ahoj"); assertEquals(retrievedJob1.getFromConnectorName(), "from_ahoj");
assertEquals(retrievedJob1.getToConnectorName(), "to_ahoj"); assertEquals(retrievedJob1.getToConnectorName(), "to_ahoj");
assertEquals(created, retrievedJob1.getCreationDate()); assertEquals(created, retrievedJob1.getCreationDate());

View File

@ -79,7 +79,7 @@ public static MConnector getConnector(Long id, String name, boolean from, boolea
public static MJob getJob(String connectorName) { public static MJob getJob(String connectorName) {
String fromConnectorName = "from_" + connectorName; String fromConnectorName = "from_" + connectorName;
String toConnectorName = "to_" + connectorName; String toConnectorName = "to_" + connectorName;
return new MJob(fromConnectorName, toConnectorName, 1, 2, getConnector(1L, fromConnectorName).getFromConfig(), return new MJob(fromConnectorName, toConnectorName, "fromLinkName", "toLinkName", getConnector(1L, fromConnectorName).getFromConfig(),
getConnector(2L, toConnectorName).getToConfig(), ConfigTestUtil.getDriverConfig()); getConnector(2L, toConnectorName).getToConfig(), ConfigTestUtil.getDriverConfig());
} }

View File

@ -98,7 +98,8 @@ public void testClone() {
.getConfig("CONFIGFROMNAME").getInput("STRING-INPUT").getValue()); } .getConfig("CONFIGFROMNAME").getInput("STRING-INPUT").getValue()); }
private MJob job() { private MJob job() {
MJob job = new MJob("fromConnectorName", "toConnectorName", 1L, 2L, fromConfig(), toConfig(), driverConfig()); MJob job = new MJob("fromConnectorName", "toConnectorName", "fromLinkName", "toLinkName",
fromConfig(), toConfig(), driverConfig());
job.setName("Vampire"); job.setName("Vampire");
job.setCreationUser("Buffy"); job.setCreationUser("Buffy");
return job; return job;

View File

@ -339,8 +339,8 @@ public MSubmission start(String jobName, HttpEventContext ctx) {
private JobRequest createJobRequest(MSubmission submission, MJob job) { private JobRequest createJobRequest(MSubmission submission, MJob job) {
// get from/to connections for the job // get from/to connections for the job
MLink fromLink = getLink(job.getFromLinkId()); MLink fromLink = getLink(job.getFromLinkName());
MLink toLink = getLink(job.getToLinkId()); MLink toLink = getLink(job.getToLinkName());
// get from/to connectors for the connection // get from/to connectors for the connection
SqoopConnector fromConnector = getSqoopConnector(fromLink.getConnectorName()); SqoopConnector fromConnector = getSqoopConnector(fromLink.getConnectorName());
@ -486,9 +486,9 @@ void validateSupportedDirection(SqoopConnector connector, Direction direction) {
} }
} }
MLink getLink(long linkId) { MLink getLink(String linkName) {
MLink link = RepositoryManager.getInstance().getRepository() MLink link = RepositoryManager.getInstance().getRepository()
.findLink(linkId); .findLink(linkName);
if (!link.getEnabled()) { if (!link.getEnabled()) {
throw new SqoopException(DriverError.DRIVER_0010, "Connection: " throw new SqoopException(DriverError.DRIVER_0010, "Connection: "
+ link.getName()); + link.getName());
@ -585,8 +585,8 @@ void invokeDestroyerOnJobSuccess(MSubmission submission) {
SqoopConnector fromConnector = getSqoopConnector(job.getFromConnectorName()); SqoopConnector fromConnector = getSqoopConnector(job.getFromConnectorName());
SqoopConnector toConnector = getSqoopConnector(job.getToConnectorName()); SqoopConnector toConnector = getSqoopConnector(job.getToConnectorName());
MLink fromConnection = getLink(job.getFromLinkId()); MLink fromConnection = getLink(job.getFromLinkName());
MLink toConnection = getLink(job.getToLinkId()); MLink toConnection = getLink(job.getToLinkName());
Object fromLinkConfig = ClassUtils.instantiate(fromConnector.getLinkConfigurationClass()); Object fromLinkConfig = ClassUtils.instantiate(fromConnector.getLinkConfigurationClass());
ConfigUtils.fromConfigs(fromConnection.getConnectorLinkConfig().getConfigs(), fromLinkConfig); ConfigUtils.fromConfigs(fromConnection.getConnectorLinkConfig().getConfigs(), fromLinkConfig);

View File

@ -109,19 +109,19 @@ public void testUnsupportedDirectionForConnector() {
@Test @Test
public void testGetLink() { public void testGetLink() {
MLink testLink = new MLink("connector_test", null); MLink testLink = new MLink("linkName", null);
testLink.setEnabled(true); testLink.setEnabled(true);
MLink mConnectionSpy = org.mockito.Mockito.spy(testLink); MLink mConnectionSpy = org.mockito.Mockito.spy(testLink);
when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock); when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock);
when(jdbcRepoMock.findLink(123l)).thenReturn(mConnectionSpy); when(jdbcRepoMock.findLink("linkName")).thenReturn(mConnectionSpy);
assertEquals(jobManager.getLink(123l), mConnectionSpy); assertEquals(jobManager.getLink("linkName"), mConnectionSpy);
verify(repositoryManagerMock, times(1)).getRepository(); verify(repositoryManagerMock, times(1)).getRepository();
verify(jdbcRepoMock, times(1)).findLink(123l); verify(jdbcRepoMock, times(1)).findLink("linkName");
} }
@Test @Test
public void testDisabledLink() { public void testDisabledLink() {
MLink testConnection = new MLink("connector_test", null); MLink testConnection = new MLink("linkName", null);
testConnection.setPersistenceId(1234); testConnection.setPersistenceId(1234);
testConnection.setEnabled(false); testConnection.setEnabled(false);
SqoopException exception = new SqoopException(DriverError.DRIVER_0010, "Connection: " SqoopException exception = new SqoopException(DriverError.DRIVER_0010, "Connection: "
@ -129,13 +129,13 @@ public void testDisabledLink() {
MLink mConnectionSpy = org.mockito.Mockito.spy(testConnection); MLink mConnectionSpy = org.mockito.Mockito.spy(testConnection);
when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock); when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock);
when(jdbcRepoMock.findLink(123l)).thenReturn(mConnectionSpy); when(jdbcRepoMock.findLink("linkName")).thenReturn(mConnectionSpy);
try { try {
jobManager.getLink(123l); jobManager.getLink("linkName");
} 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)).findLink(123l); verify(jdbcRepoMock, times(1)).findLink("linkName");
} }
} }
@ -188,7 +188,7 @@ public void testUnknownJob() {
} }
private MJob job(String jobName, String fromConnectorName, String toConnectorName) { private MJob job(String jobName, String fromConnectorName, String toConnectorName) {
MJob job = new MJob(fromConnectorName, toConnectorName, 1L, 2L, null, null, null); MJob job = new MJob(fromConnectorName, toConnectorName, "fromLinkName", "toLinkName", null, null, null);
job.setName(jobName); job.setName(jobName);
job.setCreationUser("Buffy"); job.setCreationUser("Buffy");
return job; return job;

View File

@ -229,7 +229,8 @@ public void testConnectorConfigUpgradeWithValidLinksAndJobs() {
// prepare the links and jobs // prepare the links and jobs
// the connector Id for both are the same // the connector Id for both are the same
List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName())); List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));
List<MJob> jobList = jobs(job(1, "JA", "A1", "A1", 1, 1), job(2, "JB", "A1", "A1", 2, 2)); List<MJob> jobList = jobs(job(1, "JA", "A1", "A1", "linkName1", "linkName1"),
job(2, "JB", "A1", "A1", "linkName2", "linkName2"));
// mock necessary methods for upgradeConnector() procedure // mock necessary methods for upgradeConnector() procedure
doReturn(linkList).when(repoSpy).findLinksForConnectorUpgrade(anyString()); doReturn(linkList).when(repoSpy).findLinksForConnectorUpgrade(anyString());
@ -277,7 +278,8 @@ public void testDriverConfigUpgradeWithValidJobs() {
when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock); when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock);
when(driverMock.getDriverJobConfigurationClass()).thenReturn(ValidConfiguration.class); when(driverMock.getDriverJobConfigurationClass()).thenReturn(ValidConfiguration.class);
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(jobList).when(repoSpy).findJobs(); doReturn(jobList).when(repoSpy).findJobs();
doNothing().when(repoSpy).updateLink(any(MLink.class), any(RepositoryTransaction.class)); doNothing().when(repoSpy).updateLink(any(MLink.class), any(RepositoryTransaction.class));
@ -315,7 +317,8 @@ public void testDriverConfigUpgradeWithInvalidJobs() {
when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock); when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock);
when(driverMock.getDriverJobConfigurationClass()).thenReturn(InvalidConfiguration.class); when(driverMock.getDriverJobConfigurationClass()).thenReturn(InvalidConfiguration.class);
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(jobList).when(repoSpy).findJobs(); doReturn(jobList).when(repoSpy).findJobs();
doNothing().when(repoSpy).updateJob(any(MJob.class), any(RepositoryTransaction.class)); doNothing().when(repoSpy).updateJob(any(MJob.class), any(RepositoryTransaction.class));
@ -425,7 +428,8 @@ public void testConnectorConfigUpgradeHandlerWithDeleteJobInputsError() {
when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector); when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector);
List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName())); List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class)); doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class));
doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade
(anyLong(), any(Connection.class)); (anyLong(), any(Connection.class));
@ -463,7 +467,8 @@ public void testConnectorConfigUpgradeHandlerWithDeleteLinkInputsError() {
when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector); when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector);
List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName())); List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class)); doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class));
doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class));
doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class));
@ -501,7 +506,8 @@ public void testConnectorConfigUpgradeHandlerWithUpdateConnectorError() {
when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector); when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector);
List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName())); List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class)); doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class));
doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class));
doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class));
@ -543,7 +549,8 @@ public void testConnectorConfigUpgradeHandlerWithUpdateLinkError() {
when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector); when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector);
List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName())); List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class)); doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class));
doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class));
doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class));
@ -589,7 +596,8 @@ public void testConnectorConfigUpgradeHandlerWithUpdateJobError() {
when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector); when(connectorMgrMock.getSqoopConnector(anyString())).thenReturn(sqconnector);
List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));; List<MLink> linkList = links(link(1, "LA", oldConnector.getUniqueName()), link(2, "LB", oldConnector.getUniqueName()));;
List<MJob> jobList = jobs(job(1, "JA", "A1", "A1", 1, 1), job(2, "JB", "A1", "A1", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "A1", "A1", "linkName1", "linkName1"),
job(2, "JB", "A1", "A1", "linkName2", "linkName1"));
doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class)); doReturn(linkList).when(repoHandlerMock).findLinksForConnectorUpgrade(anyString(), any(Connection.class));
doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobsForConnectorUpgrade(anyLong(), any(Connection.class));
doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class));
@ -659,7 +667,8 @@ public void testDriverConfigUpgradeHandlerWithDeleteJobInputsError() {
when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock); when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock);
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(jobList).when(repoHandlerMock).findJobs(any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobs(any(Connection.class));
SqoopException exception = new SqoopException(RepositoryError.JDBCREPO_0000, SqoopException exception = new SqoopException(RepositoryError.JDBCREPO_0000,
@ -689,7 +698,8 @@ public void testDriverConfigUpgradeHandlerWithUpdateDriverConfigError() {
when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock); when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock);
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(jobList).when(repoHandlerMock).findJobs(any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobs(any(Connection.class));
doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class));
doNothing().when(repoHandlerMock).deleteLinkInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteLinkInputs(anyString(), any(Connection.class));
@ -723,7 +733,8 @@ public void testDriverConfigUpgradeHandlerWithUpdateJobError() {
when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock); when(driverMock.getConfigurableUpgrader(DriverBean.CURRENT_DRIVER_VERSION)).thenReturn(driverUpgraderMock);
when(driverMock.getDriverJobConfigurationClass()).thenReturn(ValidConfiguration.class); when(driverMock.getDriverJobConfigurationClass()).thenReturn(ValidConfiguration.class);
List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", "linkName1", "linkName1"),
job(2, "JB", "fromConnectorName", "toConnectorName", "linkName2", "linkName1"));
doReturn(jobList).when(repoHandlerMock).findJobs(any(Connection.class)); doReturn(jobList).when(repoHandlerMock).findJobs(any(Connection.class));
doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class)); doNothing().when(repoHandlerMock).deleteJobInputs(anyString(), any(Connection.class));
doNothing().when(repoHandlerMock).upgradeDriverAndConfigs(any(MDriver.class), any(Connection.class)); doNothing().when(repoHandlerMock).upgradeDriverAndConfigs(any(MDriver.class), any(Connection.class));
@ -782,8 +793,9 @@ private MLink link(long linkId, String linkName, String connectorName) {
return link; return link;
} }
private MJob job(long id, String jobName, String fromConnectorName, String toConnectorName, long fromLinkId, long toLinkId) { private MJob job(long id, String jobName, String fromConnectorName, String toConnectorName,
MJob job = new MJob(fromConnectorName, toConnectorName, fromLinkId, toLinkId, String fromLinkName, String toLinkName) {
MJob job = new MJob(fromConnectorName, toConnectorName, fromLinkName, toLinkName,
new MFromConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()), new MFromConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()),
new MToConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()), new MToConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()),
new MDriverConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>())); new MDriverConfig(new LinkedList<MConfig>(), new LinkedList<MValidator>()));

View File

@ -624,15 +624,34 @@ public List<MLink> findLinksForConnector(String connectorName,
} }
} }
public Long findLinkIdByName(String linkName, Connection conn) {
try (PreparedStatement stmt = conn.prepareStatement(crudQueries.getStmtSelectLinkIdByName())) {
stmt.setString(1,linkName);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getLong(1);
} else {
throw new SqoopException(CommonRepositoryError.COMMON_0020);
}
}
} catch (SQLException ex) {
logException(ex);
throw new SqoopException(CommonRepositoryError.COMMON_0036, ex);
}
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public void createJob(MJob job, Connection conn) { public void createJob(MJob job, Connection conn) {
int result; int result;
// get link id to create job
Long fromLinkId = findLinkIdByName(job.getFromLinkName(), conn);
Long toLinkId = findLinkIdByName(job.getToLinkName(), conn);
try (PreparedStatement stmt = conn.prepareStatement(crudQueries.getStmtInsertJob(), Statement.RETURN_GENERATED_KEYS)) { try (PreparedStatement stmt = conn.prepareStatement(crudQueries.getStmtInsertJob(), Statement.RETURN_GENERATED_KEYS)) {
stmt.setString(1, job.getName()); stmt.setString(1, job.getName());
stmt.setLong(2, job.getFromLinkId()); stmt.setLong(2, fromLinkId);
stmt.setLong(3, job.getToLinkId()); stmt.setLong(3, toLinkId);
stmt.setBoolean(4, job.getEnabled()); stmt.setBoolean(4, job.getEnabled());
stmt.setString(5, job.getCreationUser()); stmt.setString(5, job.getCreationUser());
stmt.setTimestamp(6, new Timestamp(job.getCreationDate().getTime())); stmt.setTimestamp(6, new Timestamp(job.getCreationDate().getTime()));
@ -1615,8 +1634,6 @@ private List<MJob> loadJobsForUpgrade(PreparedStatement stmt,
long toConnectorId = rsJob.getLong(2); long toConnectorId = rsJob.getLong(2);
long id = rsJob.getLong(3); long id = rsJob.getLong(3);
String name = rsJob.getString(4); String name = rsJob.getString(4);
long fromLinkId = rsJob.getLong(5);
long toLinkId = rsJob.getLong(6);
boolean enabled = rsJob.getBoolean(7); boolean enabled = rsJob.getBoolean(7);
String createBy = rsJob.getString(8); String createBy = rsJob.getString(8);
Date creationDate = rsJob.getTimestamp(9); Date creationDate = rsJob.getTimestamp(9);
@ -1624,6 +1641,8 @@ private List<MJob> loadJobsForUpgrade(PreparedStatement stmt,
Date lastUpdateDate = rsJob.getTimestamp(11); Date lastUpdateDate = rsJob.getTimestamp(11);
String fromConnectorName = rsJob.getString(12); String fromConnectorName = rsJob.getString(12);
String toConnectorName = rsJob.getString(13); String toConnectorName = rsJob.getString(13);
String fromLinkName = rsJob.getString(14);
String toLinkName = rsJob.getString(15);
fromConfigFetchStmt.setLong(1, fromConnectorId); fromConfigFetchStmt.setLong(1, fromConnectorId);
toConfigFetchStmt.setLong(1,toConnectorId); toConfigFetchStmt.setLong(1,toConnectorId);
@ -1653,7 +1672,7 @@ private List<MJob> loadJobsForUpgrade(PreparedStatement stmt,
MJob job = new MJob( MJob job = new MJob(
fromConnectorName, toConnectorName, fromConnectorName, toConnectorName,
fromLinkId, toLinkId, fromLinkName, toLinkName,
new MFromConfig(fromConnectorFromJobConfig, Collections.EMPTY_LIST), new MFromConfig(fromConnectorFromJobConfig, Collections.EMPTY_LIST),
new MToConfig(toConnectorToJobConfig, Collections.EMPTY_LIST), new MToConfig(toConnectorToJobConfig, Collections.EMPTY_LIST),
new MDriverConfig(driverConfig, Collections.EMPTY_LIST)); new MDriverConfig(driverConfig, Collections.EMPTY_LIST));
@ -1706,7 +1725,8 @@ private List<MJob> loadJobs(PreparedStatement stmt,
Date lastUpdateDate = rsJob.getTimestamp(11); Date lastUpdateDate = rsJob.getTimestamp(11);
String fromConnectorName = rsJob.getString(12); String fromConnectorName = rsJob.getString(12);
String toConnectorName = rsJob.getString(13); String toConnectorName = rsJob.getString(13);
String fromLinkName = rsJob.getString(14);
String toLinkName = rsJob.getString(15);
driverConfigfetchStmt.setLong(1, driverId); driverConfigfetchStmt.setLong(1, driverId);
jobInputFetchStmt.setLong(1, id); jobInputFetchStmt.setLong(1, id);
@ -1728,7 +1748,7 @@ private List<MJob> loadJobs(PreparedStatement stmt,
MJob job = new MJob( MJob job = new MJob(
fromConnectorName, toConnectorName, fromConnectorName, toConnectorName,
fromLinkId, toLinkId, fromLinkName, toLinkName,
new MFromConfig(mFromConfig.getConfigs(), Collections.EMPTY_LIST), new MFromConfig(mFromConfig.getConfigs(), Collections.EMPTY_LIST),
new MToConfig(mToConfig.getConfigs(), Collections.EMPTY_LIST), new MToConfig(mToConfig.getConfigs(), Collections.EMPTY_LIST),
new MDriverConfig(driverConfig, Collections.EMPTY_LIST)); new MDriverConfig(driverConfig, Collections.EMPTY_LIST));

View File

@ -335,6 +335,13 @@ public class CommonRepositoryInsertUpdateDeleteSelectQuery {
STMT_SELECT_LINK_ALL STMT_SELECT_LINK_ALL
+ " WHERE " + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_NAME) + " = ?"; + " WHERE " + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_NAME) + " = ?";
// DML Select link id by name
private static final String STMT_SELECT_LINK_ID_BY_NAME =
"SELECT "
+ CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_ID)
+ " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_LINK_NAME)
+ " WHERE " + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_NAME) + " = ?";
// DML: Select all links for a specific connector. // DML: Select all links for a specific connector.
private static final String STMT_SELECT_LINK_FOR_CONNECTOR_CONFIGURABLE = private static final String STMT_SELECT_LINK_FOR_CONNECTOR_CONFIGURABLE =
"SELECT " "SELECT "
@ -442,7 +449,9 @@ public class CommonRepositoryInsertUpdateDeleteSelectQuery {
+ "JOB." + CommonRepoUtils.escapeColumnName(COLUMN_SQB_UPDATE_USER) + ", " + "JOB." + CommonRepoUtils.escapeColumnName(COLUMN_SQB_UPDATE_USER) + ", "
+ "JOB." + CommonRepoUtils.escapeColumnName(COLUMN_SQB_UPDATE_DATE) + ", " + "JOB." + CommonRepoUtils.escapeColumnName(COLUMN_SQB_UPDATE_DATE) + ", "
+ "FROM_CONF_NAME." + CommonRepoUtils.escapeColumnName(COLUMN_SQC_NAME) + ", " + "FROM_CONF_NAME." + CommonRepoUtils.escapeColumnName(COLUMN_SQC_NAME) + ", "
+ "TO_CONF_NAME." + CommonRepoUtils.escapeColumnName(COLUMN_SQC_NAME) + "TO_CONF_NAME." + CommonRepoUtils.escapeColumnName(COLUMN_SQC_NAME) + ", "
+ "FROM_CONNECTOR." + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_NAME) + ", "
+ "TO_CONNECTOR." + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_NAME)
+ " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME) + " JOB" + " FROM " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_JOB_NAME) + " JOB"
+ " LEFT JOIN " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_LINK_NAME) + " FROM_CONNECTOR" + " LEFT JOIN " + CommonRepoUtils.getTableName(SCHEMA_SQOOP, TABLE_SQ_LINK_NAME) + " FROM_CONNECTOR"
+ " ON " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_FROM_LINK) + " = FROM_CONNECTOR." + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_ID) + " ON " + CommonRepoUtils.escapeColumnName(COLUMN_SQB_FROM_LINK) + " = FROM_CONNECTOR." + CommonRepoUtils.escapeColumnName(COLUMN_SQ_LNK_ID)
@ -800,6 +809,8 @@ public String getStmtSelectLinkSingleByName() {
return STMT_SELECT_LINK_SINGLE_BY_NAME; return STMT_SELECT_LINK_SINGLE_BY_NAME;
} }
public String getStmtSelectLinkIdByName() {return STMT_SELECT_LINK_ID_BY_NAME;}
public String getStmtSelectLinkAll() { public String getStmtSelectLinkAll() {
return STMT_SELECT_LINK_ALL; return STMT_SELECT_LINK_ALL;
} }

View File

@ -343,7 +343,7 @@ public void testDeleteJob() throws Exception {
} }
public MJob getJob() { public MJob getJob() {
return new MJob("A", "A", 1, 1, handler.findConnector("A", derbyConnection).getFromConfig(), return new MJob("A", "A", "CA", "CA", handler.findConnector("A", derbyConnection).getFromConfig(),
handler.findConnector("A", derbyConnection).getToConfig(), handler.findDriver( handler.findConnector("A", derbyConnection).getToConfig(), handler.findDriver(
MDriver.DRIVER_NAME, derbyConnection).getDriverConfig()); MDriver.DRIVER_NAME, derbyConnection).getDriverConfig());
} }

View File

@ -106,8 +106,8 @@ protected MJob getJob(String name, MConnector connectorA,
MDriver driver = handler.findDriver(MDriver.DRIVER_NAME, MDriver driver = handler.findDriver(MDriver.DRIVER_NAME,
provider.getConnection()); provider.getConnection());
MJob job = new MJob(connectorA.getUniqueName(), MJob job = new MJob(connectorA.getUniqueName(),
connectorB.getUniqueName(), linkA.getPersistenceId(), connectorB.getUniqueName(), linkA.getName(),
linkB.getPersistenceId(), connectorA.getFromConfig(), linkB.getName(), connectorA.getFromConfig(),
connectorB.getToConfig(), driver.getDriverConfig()); connectorB.getToConfig(), driver.getDriverConfig());
job.setName(name); job.setName(name);
fillJob(job); fillJob(job);

View File

@ -94,8 +94,8 @@ protected MJob getJob(String name, MConnector connectorA, MConnector connectorB,
MJob job = new MJob( MJob job = new MJob(
connectorA.getUniqueName(), connectorA.getUniqueName(),
connectorB.getUniqueName(), connectorB.getUniqueName(),
linkA.getPersistenceId(), linkA.getName(),
linkB.getPersistenceId(), linkB.getName(),
connectorA.getFromConfig(), connectorA.getFromConfig(),
connectorB.getToConfig(), connectorB.getToConfig(),
driver.getDriverConfig()); driver.getDriverConfig());

View File

@ -179,14 +179,13 @@ private JsonBean createUpdateJob(RequestContext ctx, boolean create) {
// Job object // Job object
MJob postedJob = jobs.get(0); MJob postedJob = jobs.get(0);
MLink fromLink = HandlerUtils.getLinkFromLinkId(postedJob.getFromLinkId());
MLink toLink = HandlerUtils.getLinkFromLinkId(postedJob.getToLinkId());
// Authorization check // Authorization check
if (create) { if (create) {
AuthorizationEngine.createJob(ctx.getUserName(), fromLink.getName(), toLink.getName()); AuthorizationEngine.createJob(ctx.getUserName(), postedJob.getFromLinkName(), postedJob.getToLinkName());
} else { } else {
AuthorizationEngine.updateJob(ctx.getUserName(), fromLink.getName(), toLink.getName(), postedJob.getName()); AuthorizationEngine.updateJob(ctx.getUserName(), postedJob.getFromLinkName(), postedJob.getToLinkName(),
postedJob.getName());
} }
// Verify that user is not trying to spoof us // Verify that user is not trying to spoof us

View File

@ -92,22 +92,9 @@ private void showSummary() {
for(MJob job : jobs) { for(MJob job : jobs) {
ids.add(String.valueOf(job.getPersistenceId())); ids.add(String.valueOf(job.getPersistenceId()));
names.add(job.getName()); names.add(job.getName());
// From link and connnector // From link and connnector
String fromLinkName = ""; fromConnectors.add(job.getFromLinkName() + " (" + job.getFromConnectorName() + ")");
MLink fromLink = client.getLink(job.getFromLinkId()); toConnectors.add(job.getToLinkName() + " (" + job.getToConnectorName() + ")");
if (fromLink != null) {
fromLinkName = fromLink.getName();
}
fromConnectors.add(fromLinkName + " (" + job.getFromConnectorName() + ")");
// To link and connector
String toLinkName = "";
MLink toLink = client.getLink(job.getToLinkId());
if (toLink != null) {
toLinkName = toLink.getName();
}
toConnectors.add(toLinkName + " (" + job.getToConnectorName() + ")");
availabilities.add(String.valueOf(job.getEnabled())); availabilities.add(String.valueOf(job.getEnabled()));
} }
@ -153,11 +140,11 @@ private void displayJob(MJob job) {
displayConfig(job.getDriverConfig().getConfigs(), displayConfig(job.getDriverConfig().getConfigs(),
client.getDriverConfigBundle()); client.getDriverConfigBundle());
printlnResource(Constants.RES_SHOW_PROMPT_JOB_FROM_LID_INFO, printlnResource(Constants.RES_SHOW_PROMPT_JOB_FROM_LID_INFO,
job.getFromLinkId()); job.getFromLinkName());
displayConfig(job.getFromJobConfig().getConfigs(), displayConfig(job.getFromJobConfig().getConfigs(),
client.getConnectorConfigBundle(job.getFromConnectorName())); client.getConnectorConfigBundle(job.getFromConnectorName()));
printlnResource(Constants.RES_SHOW_PROMPT_JOB_TO_LID_INFO, printlnResource(Constants.RES_SHOW_PROMPT_JOB_TO_LID_INFO,
job.getToLinkId()); job.getToLinkName());
displayConfig(job.getToJobConfig().getConfigs(), displayConfig(job.getToJobConfig().getConfigs(),
client.getConnectorConfigBundle(job.getToConnectorName())); client.getConnectorConfigBundle(job.getToConnectorName()));
} }

View File

@ -155,7 +155,7 @@ public void testCloneLinkInteractive() {
@Test @Test
public void testCloneJob() { public void testCloneJob() {
ShellEnvironment.setInteractive(false); ShellEnvironment.setInteractive(false);
MJob job = new MJob("fromConnectorName", "toConnectorName", 1L, 2L, MJob job = new MJob("fromConnectorName", "toConnectorName", "linkName1", "linkName2",
new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())); new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()));
@ -192,7 +192,8 @@ public void testCloneJob() {
public void testCloneJobInteractive() { public void testCloneJobInteractive() {
ShellEnvironment.setInteractive(true); ShellEnvironment.setInteractive(true);
initEnv(); initEnv();
MJob job = new MJob("fromConnectorName", "toConnectorName", 1, 2, new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()), MJob job = new MJob("fromConnectorName", "toConnectorName", "linkName1", "linkName2",
new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()),
new MToConfig(getConfig("toJobConfig"), new ArrayList<MValidator>()), new MToConfig(getConfig("toJobConfig"), new ArrayList<MValidator>()),
new MDriverConfig(getConfig("driverConfig"), new ArrayList<MValidator>())); new MDriverConfig(getConfig("driverConfig"), new ArrayList<MValidator>()));
when(client.getJob("job_test")).thenReturn(job); when(client.getJob("job_test")).thenReturn(job);

View File

@ -182,7 +182,8 @@ public void testCreateJob() {
MConnector fromConnector = new MConnector("connector_from", "", "", null, new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), null); MConnector fromConnector = new MConnector("connector_from", "", "", null, new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), null);
MConnector toConnector = new MConnector("connector_to", "", "", null, null, new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())); MConnector toConnector = new MConnector("connector_to", "", "", null, null, new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()));
when(client.createJob("link_from", "link_to")).thenReturn( when(client.createJob("link_from", "link_to")).thenReturn(
new MJob("fromConnectorName", "toConnectorName", 1, 2, new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MJob("fromConnectorName", "toConnectorName", "link_from", "link_to",
new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()))); new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())));
when(client.getConnector("fromConnectorName")).thenReturn(fromConnector); when(client.getConnector("fromConnectorName")).thenReturn(fromConnector);
@ -222,7 +223,8 @@ public void testCreateJobInteractive() {
initEnv(); initEnv();
MConnector fromConnector = new MConnector("connector_from", "", "", null, new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), null); MConnector fromConnector = new MConnector("connector_from", "", "", null, new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), null);
MConnector toConnector = new MConnector("connector_to", "", "", null, null, new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())); MConnector toConnector = new MConnector("connector_to", "", "", null, null, new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()));
MJob job = new MJob("fromConnectorName", "toConnectorName", 1, 2, new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()), MJob job = new MJob("fromConnectorName", "toConnectorName", "link_from", "link_to",
new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()),
new MToConfig(getConfig("toJobConfig"), new ArrayList<MValidator>()), new MToConfig(getConfig("toJobConfig"), new ArrayList<MValidator>()),
new MDriverConfig(getConfig("driverConfig"), new ArrayList<MValidator>())); new MDriverConfig(getConfig("driverConfig"), new ArrayList<MValidator>()));
when(client.createJob("link_from", "link_to")).thenReturn(job); when(client.createJob("link_from", "link_to")).thenReturn(job);

View File

@ -235,12 +235,12 @@ public void testShowLink() {
public void testShowJob() { public void testShowJob() {
when(client.getJobs()).thenReturn(new ArrayList<MJob>()); when(client.getJobs()).thenReturn(new ArrayList<MJob>());
when(client.getConnector(any(Long.class))).thenReturn(new MConnector("", "", "", null, null, null)); when(client.getConnector(any(Long.class))).thenReturn(new MConnector("", "", "", null, null, null));
when(client.getJob("1")).thenReturn(new MJob("fromConnectorName", "toConnectorName", 1L, 2L, when(client.getJob("1")).thenReturn(new MJob("fromConnectorName", "toConnectorName", "linkName1", "linkName2",
new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()))); new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())));
when(client.getJobsByConnector("2")).thenReturn(Arrays.asList(new MJob("fromConnectorName", "toConnectorName", 1L, 2L, when(client.getJobsByConnector("2")).thenReturn(Arrays.asList(new MJob("fromConnectorName", "toConnectorName",
new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), "linkName1", "linkName2", new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())))); new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()))));

View File

@ -173,7 +173,7 @@ public void testUpdateLinkInteractive() throws Exception {
@Test @Test
public void testUpdateJob() throws InterruptedException { public void testUpdateJob() throws InterruptedException {
ShellEnvironment.setInteractive(false); ShellEnvironment.setInteractive(false);
MJob job = new MJob("fromConnectorName", "toConnectorName", 1L, 2L, MJob job = new MJob("fromConnectorName", "toConnectorName", "link_from", "link_to",
new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MToConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()),
new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>())); new MDriverConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()));
@ -210,7 +210,8 @@ public void testUpdateJob() throws InterruptedException {
public void testUpdateJobInteractive() { public void testUpdateJobInteractive() {
ShellEnvironment.setInteractive(true); ShellEnvironment.setInteractive(true);
initEnv(); initEnv();
MJob job = new MJob("fromConnectorName", "toConnectorName", 1, 2, new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()), MJob job = new MJob("fromConnectorName", "toConnectorName", "link_from", "link_to",
new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()),
new MToConfig(getConfig("toJobConfig"), new ArrayList<MValidator>()), new MToConfig(getConfig("toJobConfig"), new ArrayList<MValidator>()),
new MDriverConfig(getConfig("driverConfig"), new ArrayList<MValidator>())); new MDriverConfig(getConfig("driverConfig"), new ArrayList<MValidator>()));
when(client.getJob("job_test")).thenReturn(job); when(client.getJob("job_test")).thenReturn(job);

View File

@ -66,7 +66,9 @@ public void testCreateLinkWithNonexistantConnector() throws Exception {
@AfterMethod @AfterMethod
public void stopCluster() throws Exception { public void stopCluster() throws Exception {
getCluster().stop(); if (getCluster() != null) {
getCluster().stop();
}
} }
@Override @Override