5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-06 21:53:44 +08:00

SQOOP-2703: Sqoop2: Use connector name in MJob

(Colin Ma via Jarek Jarcec Cecho)
This commit is contained in:
Jarek Jarcec Cecho 2015-12-08 14:58:09 +01:00
parent 6c4743de15
commit e70b9c259a
25 changed files with 153 additions and 158 deletions

View File

@ -393,8 +393,8 @@ public MJob createJob(String fromLinkName, String toLinkName) {
MConnector connectorForToLink = getConnector(toLink.getConnectorName()); MConnector connectorForToLink = getConnector(toLink.getConnectorName());
return new MJob( return new MJob(
connectorForFromLink.getPersistenceId(), connectorForFromLink.getUniqueName(),
connectorForToLink.getPersistenceId(), connectorForToLink.getUniqueName(),
fromLink.getPersistenceId(), fromLink.getPersistenceId(),
toLink.getPersistenceId(), toLink.getPersistenceId(),
connectorForFromLink.getFromConfig().clone(false), connectorForFromLink.getFromConfig().clone(false),

View File

@ -50,8 +50,8 @@ public class JobBean implements JsonBean {
static final String FROM_LINK_ID = "from-link-id"; static final String FROM_LINK_ID = "from-link-id";
static final String TO_LINK_ID = "to-link-id"; static final String TO_LINK_ID = "to-link-id";
static final String FROM_CONNECTOR_ID = "from-connector-id"; static final String FROM_CONNECTOR_NAME = "from-connector-name";
static final String TO_CONNECTOR_ID = "to-connector-id"; 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";
static final String TO_CONFIG_VALUES = "to-config-values"; static final String TO_CONFIG_VALUES = "to-config-values";
static final String DRIVER_CONFIG_VALUES = "driver-config-values"; static final String DRIVER_CONFIG_VALUES = "driver-config-values";
@ -61,7 +61,7 @@ public class JobBean implements JsonBean {
private List<MJob> jobs; private List<MJob> jobs;
// Optional // Optional
private Map<Long, ResourceBundle> connectorConfigBundles; private Map<String, ResourceBundle> connectorConfigBundles;
private ResourceBundle driverConfigBundle; private ResourceBundle driverConfigBundle;
// For "extract" // For "extract"
@ -78,27 +78,27 @@ public JobBean(List<MJob> jobs) {
// For "restore" // For "restore"
public JobBean() { public JobBean() {
connectorConfigBundles = new HashMap<Long, ResourceBundle>(); connectorConfigBundles = new HashMap<String, ResourceBundle>();
} }
public void setDriverConfigBundle(ResourceBundle driverConfigBundle) { public void setDriverConfigBundle(ResourceBundle driverConfigBundle) {
this.driverConfigBundle = driverConfigBundle; this.driverConfigBundle = driverConfigBundle;
} }
public void addConnectorConfigBundle(Long id, ResourceBundle connectorConfigBundle) { public void addConnectorConfigBundle(String connectorName, ResourceBundle connectorConfigBundle) {
connectorConfigBundles.put(id, connectorConfigBundle); connectorConfigBundles.put(connectorName, connectorConfigBundle);
} }
public boolean hasConnectorConfigBundle(Long id) { public boolean hasConnectorConfigBundle(String connectorName) {
return connectorConfigBundles.containsKey(id); return connectorConfigBundles.containsKey(connectorName);
} }
public List<MJob> getJobs() { public List<MJob> getJobs() {
return jobs; return jobs;
} }
public ResourceBundle getConnectorConfigBundle(Long id) { public ResourceBundle getConnectorConfigBundle(String connectorName) {
return connectorConfigBundles.get(id); return connectorConfigBundles.get(connectorName);
} }
public ResourceBundle getDriverConfigBundle() { public ResourceBundle getDriverConfigBundle() {
@ -134,8 +134,8 @@ private JSONObject extractJob(boolean skipSensitive, MJob job) {
object.put(UPDATE_DATE, job.getLastUpdateDate().getTime()); object.put(UPDATE_DATE, job.getLastUpdateDate().getTime());
// job link associated connectors // job link associated connectors
// TODO(SQOOP-1634): fix not to require the connectorIds in the post data // TODO(SQOOP-1634): fix not to require the connectorIds in the post data
object.put(FROM_CONNECTOR_ID, job.getFromConnectorId()); object.put(FROM_CONNECTOR_NAME, job.getFromConnectorName());
object.put(TO_CONNECTOR_ID, job.getToConnectorId()); object.put(TO_CONNECTOR_NAME, job.getToConnectorName());
// job associated links // job associated links
object.put(FROM_LINK_ID, job.getFromLinkId()); object.put(FROM_LINK_ID, job.getFromLinkId());
object.put(TO_LINK_ID, job.getToLinkId()); object.put(TO_LINK_ID, job.getToLinkId());
@ -168,8 +168,8 @@ protected void restoreJobs(JSONArray array) {
private MJob restoreJob(Object obj) { private MJob restoreJob(Object obj) {
JSONObject object = (JSONObject) obj; JSONObject object = (JSONObject) obj;
long fromConnectorId = JSONUtils.getLong(object, FROM_CONNECTOR_ID); String fromConnectorName = JSONUtils.getString(object, FROM_CONNECTOR_NAME);
long toConnectorId = JSONUtils.getLong(object, TO_CONNECTOR_ID); String toConnectorName = JSONUtils.getString(object, TO_CONNECTOR_NAME);
long fromConnectionId = JSONUtils.getLong(object, FROM_LINK_ID); long fromConnectionId = JSONUtils.getLong(object, FROM_LINK_ID);
long toConnectionId = JSONUtils.getLong(object, TO_LINK_ID); long toConnectionId = JSONUtils.getLong(object, TO_LINK_ID);
JSONObject fromConfigJson = JSONUtils.getJSONObject(object, FROM_CONFIG_VALUES); JSONObject fromConfigJson = JSONUtils.getJSONObject(object, FROM_CONFIG_VALUES);
@ -186,8 +186,8 @@ private MJob restoreJob(Object obj) {
List<MValidator> driverValidators = restoreValidator(JSONUtils.getJSONArray(driverConfigJson, ConfigInputConstants.CONFIG_VALIDATORS)); List<MValidator> driverValidators = restoreValidator(JSONUtils.getJSONArray(driverConfigJson, ConfigInputConstants.CONFIG_VALIDATORS));
MJob job = new MJob( MJob job = new MJob(
fromConnectorId, fromConnectorName,
toConnectorId, toConnectorName,
fromConnectionId, fromConnectionId,
toConnectionId, toConnectionId,
new MFromConfig(fromConfigs, fromValidators), new MFromConfig(fromConfigs, fromValidators),

View File

@ -35,8 +35,8 @@ public class MJob extends MAccountableEntity implements MClonable {
* dependency through link object, but having this dependency explicitly * dependency through link object, but having this dependency explicitly
* carried along helps with not having to make the DB call everytime * carried along helps with not having to make the DB call everytime
*/ */
private final long fromConnectorId; private final String fromConnectorName;
private final long toConnectorId; private final String toConnectorName;
private final long fromLinkId; private final long fromLinkId;
private final long toLinkId; private final long toLinkId;
@ -55,15 +55,15 @@ public class MJob extends MAccountableEntity implements MClonable {
* @param toConfig TO job config * @param toConfig TO job config
* @param driverConfig driver config * @param driverConfig driver config
*/ */
public MJob(long fromConnectorId, public MJob(String fromConnectorName,
long toConnectorId, String toConnectorName,
long fromLinkId, long fromLinkId,
long toLinkId, long toLinkId,
MFromConfig fromConfig, MFromConfig fromConfig,
MToConfig toConfig, MToConfig toConfig,
MDriverConfig driverConfig) { MDriverConfig driverConfig) {
this.fromConnectorId = fromConnectorId; this.fromConnectorName = fromConnectorName;
this.toConnectorId = toConnectorId; this.toConnectorName = toConnectorName;
this.fromLinkId = fromLinkId; this.fromLinkId = fromLinkId;
this.toLinkId = toLinkId; this.toLinkId = toLinkId;
this.fromConfig = fromConfig; this.fromConfig = fromConfig;
@ -97,8 +97,8 @@ public MJob(MJob other) {
public MJob(MJob other, MFromConfig fromConfig, MToConfig toConfig, MDriverConfig driverConfig) { public MJob(MJob other, MFromConfig fromConfig, MToConfig toConfig, MDriverConfig driverConfig) {
super(other); super(other);
this.fromConnectorId = other.getFromConnectorId(); this.fromConnectorName = other.getFromConnectorName();
this.toConnectorId = other.getToConnectorId(); this.toConnectorName = other.getToConnectorName();
this.fromLinkId = other.getFromLinkId(); this.fromLinkId = other.getFromLinkId();
this.toLinkId = other.getToLinkId(); this.toLinkId = other.getToLinkId();
this.fromConfig = fromConfig; this.fromConfig = fromConfig;
@ -125,12 +125,12 @@ public long getToLinkId() {
return toLinkId; return toLinkId;
} }
public long getFromConnectorId() { public String getFromConnectorName() {
return fromConnectorId; return fromConnectorName;
} }
public long getToConnectorId() { public String getToConnectorName() {
return toConnectorId; return toConnectorName;
} }
public MFromConfig getFromJobConfig() { public MFromConfig getFromJobConfig() {
@ -151,8 +151,8 @@ public MJob clone(boolean cloneWithValue) {
return new MJob(this); return new MJob(this);
} else { } else {
return new MJob( return new MJob(
getFromConnectorId(), getFromConnectorName(),
getToConnectorId(), getToConnectorName(),
getFromLinkId(), getFromLinkId(),
getToLinkId(), getToLinkId(),
getFromJobConfig().clone(false), getFromJobConfig().clone(false),
@ -172,8 +172,8 @@ public boolean equals(Object object) {
} }
MJob job = (MJob)object; MJob job = (MJob)object;
return (job.getFromConnectorId() == this.getFromConnectorId()) return (job.getFromConnectorName().equals(this.getFromConnectorName()))
&& (job.getToConnectorId() == this.getToConnectorId()) && (job.getToConnectorName().equals(this.getToConnectorName()))
&& (job.getFromLinkId() == this.getFromLinkId()) && (job.getFromLinkId() == this.getFromLinkId())
&& (job.getToLinkId() == this.getToLinkId()) && (job.getToLinkId() == this.getToLinkId())
&& (job.getPersistenceId() == this.getPersistenceId()) && (job.getPersistenceId() == this.getPersistenceId())
@ -184,8 +184,8 @@ public boolean equals(Object object) {
@Override @Override
public int hashCode() { public int hashCode() {
int result = (int) (fromConnectorId ^ (fromConnectorId >>> 32)); int result = fromConnectorName != null ? fromConnectorName.hashCode() : 0;
result = 31 * result + (int) (toConnectorId ^ (toConnectorId >>> 32)); result = 31 * result + (toConnectorName != null ? toConnectorName.hashCode() : 0);
result = 31 * result + (int) (fromLinkId ^ (fromLinkId >>> 32)); result = 31 * result + (int) (fromLinkId ^ (fromLinkId >>> 32));
result = 31 * result + (int) (toLinkId ^ (toLinkId >>> 32)); result = 31 * result + (int) (toLinkId ^ (toLinkId >>> 32));
result = 31 * result + (fromConfig != null ? fromConfig.hashCode() : 0); result = 31 * result + (fromConfig != null ? fromConfig.hashCode() : 0);

View File

@ -63,8 +63,8 @@ public void testJobSerialization() throws ParseException {
assertEquals(target.getFromLinkId(), 1); assertEquals(target.getFromLinkId(), 1);
assertEquals(target.getToLinkId(), 2); assertEquals(target.getToLinkId(), 2);
assertEquals(target.getFromConnectorId(), 1); assertEquals(target.getFromConnectorName(), "from_ahoj");
assertEquals(target.getToConnectorId(), 2); assertEquals(target.getToConnectorName(), "to_ahoj");
assertEquals(created, target.getCreationDate()); assertEquals(created, target.getCreationDate());
assertEquals(updated, target.getLastUpdateDate()); assertEquals(updated, target.getLastUpdateDate());
assertEquals(false, target.getEnabled()); assertEquals(false, target.getEnabled());

View File

@ -74,8 +74,8 @@ public void testJobsSerialization() throws ParseException {
assertEquals(retrievedJob1.getFromLinkId(), 1); assertEquals(retrievedJob1.getFromLinkId(), 1);
assertEquals(retrievedJob1.getToLinkId(), 2); assertEquals(retrievedJob1.getToLinkId(), 2);
assertEquals(retrievedJob1.getFromConnectorId(), 1); assertEquals(retrievedJob1.getFromConnectorName(), "from_ahoj");
assertEquals(retrievedJob1.getToConnectorId(), 2); assertEquals(retrievedJob1.getToConnectorName(), "to_ahoj");
assertEquals(created, retrievedJob1.getCreationDate()); assertEquals(created, retrievedJob1.getCreationDate());
assertEquals(updated, retrievedJob1.getLastUpdateDate()); assertEquals(updated, retrievedJob1.getLastUpdateDate());
assertEquals(false, retrievedJob1.getEnabled()); assertEquals(false, retrievedJob1.getEnabled());

View File

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

View File

@ -36,8 +36,8 @@ public class TestMJob {
public void testInitialization() { public void testInitialization() {
// Test default constructor // Test default constructor
MJob job = job(); MJob job = job();
assertEquals(123l, job.getFromConnectorId()); assertEquals("fromConnectorName", job.getFromConnectorName());
assertEquals(456l, job.getToConnectorId()); assertEquals("toConnectorName", job.getToConnectorName());
assertEquals("Buffy", job.getCreationUser()); assertEquals("Buffy", job.getCreationUser());
assertEquals("Vampire", job.getName()); assertEquals("Vampire", job.getName());
assertEquals(fromConfig(), job.getFromJobConfig()); assertEquals(fromConfig(), job.getFromJobConfig());
@ -46,8 +46,8 @@ public void testInitialization() {
// Test copy constructor // Test copy constructor
MJob copy = new MJob(job); MJob copy = new MJob(job);
assertEquals(123l, copy.getFromConnectorId()); assertEquals("fromConnectorName", copy.getFromConnectorName());
assertEquals(456l, copy.getToConnectorId()); assertEquals("toConnectorName", copy.getToConnectorName());
assertEquals("Buffy", copy.getCreationUser()); assertEquals("Buffy", copy.getCreationUser());
assertEquals("Vampire", copy.getName()); assertEquals("Vampire", copy.getName());
assertEquals(fromConfig(), copy.getFromJobConfig()); assertEquals(fromConfig(), copy.getFromJobConfig());
@ -56,8 +56,8 @@ public void testInitialization() {
// Test constructor for metadata upgrade (the order of configs is different) // Test constructor for metadata upgrade (the order of configs is different)
MJob upgradeCopy = new MJob(job, fromConfig(), toConfig(), driverConfig()); MJob upgradeCopy = new MJob(job, fromConfig(), toConfig(), driverConfig());
assertEquals(123l, upgradeCopy.getFromConnectorId()); assertEquals("fromConnectorName", upgradeCopy.getFromConnectorName());
assertEquals(456l, upgradeCopy.getToConnectorId()); assertEquals("toConnectorName", upgradeCopy.getToConnectorName());
assertEquals("Buffy", upgradeCopy.getCreationUser()); assertEquals("Buffy", upgradeCopy.getCreationUser());
assertEquals("Vampire", upgradeCopy.getName()); assertEquals("Vampire", upgradeCopy.getName());
assertEquals(fromConfig(), upgradeCopy.getFromJobConfig()); assertEquals(fromConfig(), upgradeCopy.getFromJobConfig());
@ -98,7 +98,7 @@ 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(123l, 456l, 1L, 2L, fromConfig(), toConfig(), driverConfig()); MJob job = new MJob("fromConnectorName", "toConnectorName", 1L, 2L, fromConfig(), toConfig(), driverConfig());
job.setName("Vampire"); job.setName("Vampire");
job.setCreationUser("Buffy"); job.setCreationUser("Buffy");
return job; return job;

View File

@ -496,6 +496,7 @@ MLink getLink(long linkId) {
return link; return link;
} }
// TODO: this method should be removed when MSubmission link job with jobName
MJob getJob(long jobId) { MJob getJob(long jobId) {
MJob job = RepositoryManager.getInstance().getRepository().findJob(jobId); MJob job = RepositoryManager.getInstance().getRepository().findJob(jobId);
if (job == null) { if (job == null) {
@ -508,6 +509,18 @@ MJob getJob(long jobId) {
return job; return job;
} }
MJob getJob(String jobName) {
MJob job = RepositoryManager.getInstance().getRepository().findJob(jobName);
if (job == null) {
throw new SqoopException(DriverError.DRIVER_0004, "Unknown job name: " + jobName);
}
if (!job.getEnabled()) {
throw new SqoopException(DriverError.DRIVER_0009, "Job: " + jobName);
}
return job;
}
@SuppressWarnings({ "unchecked", "rawtypes" }) @SuppressWarnings({ "unchecked", "rawtypes" })
private void initializeConnector(JobRequest jobRequest, Direction direction, Initializer initializer, InitializerContext initializerContext) { private void initializeConnector(JobRequest jobRequest, Direction direction, Initializer initializer, InitializerContext initializerContext) {
// Initialize submission from the connector perspective // Initialize submission from the connector perspective
@ -569,8 +582,8 @@ void invokeDestroyerOnJobSuccess(MSubmission submission) {
try { try {
MJob job = getJob(submission.getJobId()); MJob job = getJob(submission.getJobId());
SqoopConnector fromConnector = getSqoopConnector(job.getFromConnectorId()); SqoopConnector fromConnector = getSqoopConnector(job.getFromConnectorName());
SqoopConnector toConnector = getSqoopConnector(job.getToConnectorId()); SqoopConnector toConnector = getSqoopConnector(job.getToConnectorName());
MLink fromConnection = getLink(job.getFromLinkId()); MLink fromConnection = getLink(job.getFromLinkId());
MLink toConnection = getLink(job.getToLinkId()); MLink toConnection = getLink(job.getToLinkId());

View File

@ -447,7 +447,7 @@ private void deleteJobInputsOnly(List<MJob> jobs, RepositoryTransaction tx) {
public final void upgradeConnector(MConnector oldConnector, MConnector newConnector) { public final void upgradeConnector(MConnector oldConnector, MConnector newConnector) {
LOG.info("Upgrading connector: " + oldConnector.getUniqueName()); LOG.info("Upgrading connector: " + oldConnector.getUniqueName());
long connectorId = oldConnector.getPersistenceId(); long connectorId = oldConnector.getPersistenceId();
String connectorName = oldConnector.getUniqueName(); String oldConnectorName = oldConnector.getUniqueName();
String oldVersion = oldConnector.getVersion(); String oldVersion = oldConnector.getVersion();
newConnector.setPersistenceId(connectorId); newConnector.setPersistenceId(connectorId);
@ -460,7 +460,7 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
// 1. Get an upgrader for the connector // 1. Get an upgrader for the connector
ConnectorConfigurableUpgrader upgrader = connector.getConfigurableUpgrader(oldVersion); ConnectorConfigurableUpgrader upgrader = connector.getConfigurableUpgrader(oldVersion);
// 2. Get all links associated with the connector. // 2. Get all links associated with the connector.
List<MLink> existingLinksByConnector = findLinksForConnectorUpgrade(connectorName); List<MLink> existingLinksByConnector = findLinksForConnectorUpgrade(oldConnectorName);
// 3. Get all jobs associated with the connector. // 3. Get all jobs associated with the connector.
List<MJob> existingJobsByConnector = findJobsForConnectorUpgrade(connectorId); List<MJob> existingJobsByConnector = findJobsForConnectorUpgrade(connectorId);
// -- BEGIN TXN -- // -- BEGIN TXN --
@ -476,7 +476,7 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
// dont always rely on the repository implementation to return empty list for links // dont always rely on the repository implementation to return empty list for links
if (existingLinksByConnector != null) { if (existingLinksByConnector != null) {
for (MLink link : existingLinksByConnector) { for (MLink link : existingLinksByConnector) {
LOG.info(" Link upgrade for link:" + link.getName() + " for connector:" + connectorName); LOG.info(" Link upgrade for link:" + link.getName() + " for connector:" + oldConnectorName);
// Make a new copy of the configs // Make a new copy of the configs
MConfigList linkConfig = newConnector.getLinkConfig().clone(false); MConfigList linkConfig = newConnector.getLinkConfig().clone(false);
MLinkConfig newLinkConfig = new MLinkConfig(linkConfig.getConfigs(), linkConfig.getCloneOfValidators()); MLinkConfig newLinkConfig = new MLinkConfig(linkConfig.getConfigs(), linkConfig.getCloneOfValidators());
@ -496,7 +496,7 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
// and stop the bootup of Sqoop server // and stop the bootup of Sqoop server
logInvalidModelObject("link", newlink, validationResult); logInvalidModelObject("link", newlink, validationResult);
upgradeSuccessful = false; upgradeSuccessful = false;
LOG.info(" LINK config upgrade FAILED for link: " + link.getName() + " for connector:" + connectorName); LOG.info(" LINK config upgrade FAILED for link: " + link.getName() + " for connector:" + oldConnectorName);
} }
} }
} }
@ -506,14 +506,15 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
for (MJob job : existingJobsByConnector) { for (MJob job : existingJobsByConnector) {
// every job has 2 parts, the FROM and the TO links and their // every job has 2 parts, the FROM and the TO links and their
// corresponding connectors. // corresponding connectors.
LOG.info(" Job upgrade for job:" + job.getName()+ " for connector:" + connectorName); LOG.info(" Job upgrade for job:" + job.getName()+ " for connector:" + oldConnectorName);
SupportedDirections supportedDirections = newConnector.getSupportedDirections(); SupportedDirections supportedDirections = newConnector.getSupportedDirections();
// compare the old connector name with job's connector name
if (supportedDirections.isDirectionSupported(Direction.FROM) if (supportedDirections.isDirectionSupported(Direction.FROM)
&& job.getFromConnectorId() == newConnector.getPersistenceId() && job.getFromConnectorName().equals(oldConnectorName)
&& supportedDirections.isDirectionSupported(Direction.TO) && supportedDirections.isDirectionSupported(Direction.TO)
&& job.getToConnectorId() == newConnector.getPersistenceId()) { && job.getToConnectorName().equals(oldConnectorName)) {
// Upgrade both configs // Upgrade both configs
MFromConfig newFromConfig = new MFromConfig(newConnector.getFromConfig().clone(false).getConfigs(), newConnector.getFromConfig().getCloneOfValidators()); MFromConfig newFromConfig = new MFromConfig(newConnector.getFromConfig().clone(false).getConfigs(), newConnector.getFromConfig().getCloneOfValidators());
MFromConfig oldFromConfig = job.getFromJobConfig(); MFromConfig oldFromConfig = job.getFromJobConfig();
@ -528,16 +529,15 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
newJob.getFromJobConfig().getConfigs(), newJob.getFromJobConfig().getConfigs(),
connector.getJobConfigurationClass(Direction.FROM) connector.getJobConfigurationClass(Direction.FROM)
); );
if (validationResult.getStatus().canProceed()) { if (validationResult.getStatus().canProceed()) {
updateJob(newJob, tx); updateJob(newJob, tx);
} else { } else {
logInvalidModelObject("job", newJob, validationResult); logInvalidModelObject("job", newJob, validationResult);
upgradeSuccessful = false; upgradeSuccessful = false;
LOG.error(" JOB config upgrade FAILED for job: " + job.getName() + " for connector:" + connectorName); LOG.error(" JOB config upgrade FAILED for job: " + job.getName() + " for connector:" + oldConnectorName);
} }
} else if (supportedDirections.isDirectionSupported(Direction.FROM) } else if (supportedDirections.isDirectionSupported(Direction.FROM)
&& job.getFromConnectorId() == newConnector.getPersistenceId()) { && job.getFromConnectorName().equals(oldConnectorName)) {
MFromConfig newFromConfig = new MFromConfig(newConnector.getFromConfig().clone(false).getConfigs(), newConnector.getFromConfig().getCloneOfValidators()); MFromConfig newFromConfig = new MFromConfig(newConnector.getFromConfig().clone(false).getConfigs(), newConnector.getFromConfig().getCloneOfValidators());
MFromConfig oldFromConfig = job.getFromJobConfig(); MFromConfig oldFromConfig = job.getFromJobConfig();
upgrader.upgradeFromJobConfig(oldFromConfig, newFromConfig); upgrader.upgradeFromJobConfig(oldFromConfig, newFromConfig);
@ -556,10 +556,10 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
} else { } else {
logInvalidModelObject("job", newJob, validationResult); logInvalidModelObject("job", newJob, validationResult);
upgradeSuccessful = false; upgradeSuccessful = false;
LOG.error(" FROM JOB config upgrade FAILED for job: " + job.getName() + " for connector:" + connectorName); LOG.error(" FROM JOB config upgrade FAILED for job: " + job.getName() + " for connector:" + oldConnectorName);
} }
} else if (supportedDirections.isDirectionSupported(Direction.TO) } else if (supportedDirections.isDirectionSupported(Direction.TO)
&& job.getToConnectorId() == newConnector.getPersistenceId()) { && job.getToConnectorName().equals(oldConnectorName)) {
MToConfig oldToConfig = job.getToJobConfig(); MToConfig oldToConfig = job.getToJobConfig();
MToConfig newToConfig = new MToConfig(newConnector.getToConfig().clone(false).getConfigs(), newConnector.getToConfig().getCloneOfValidators()); MToConfig newToConfig = new MToConfig(newConnector.getToConfig().clone(false).getConfigs(), newConnector.getToConfig().getCloneOfValidators());
upgrader.upgradeToJobConfig(oldToConfig, newToConfig); upgrader.upgradeToJobConfig(oldToConfig, newToConfig);
@ -578,7 +578,7 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
} else { } else {
logInvalidModelObject("job", newJob, validationResult); logInvalidModelObject("job", newJob, validationResult);
upgradeSuccessful = false; upgradeSuccessful = false;
LOG.error(" TO JOB config upgrade FAILED for job: " + job.getName() + " for connector:" + connectorName); LOG.error(" TO JOB config upgrade FAILED for job: " + job.getName() + " for connector:" + oldConnectorName);
} }
} }
} }
@ -587,7 +587,7 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
if (upgradeSuccessful) { if (upgradeSuccessful) {
tx.commit(); tx.commit();
} else { } else {
throw new SqoopException(RepositoryError.JDBCREPO_0027, " for connector:" + connectorName); throw new SqoopException(RepositoryError.JDBCREPO_0027, " for connector:" + oldConnectorName);
} }
} catch (SqoopException ex) { } catch (SqoopException ex) {
if (tx != null) { if (tx != null) {
@ -603,7 +603,7 @@ public final void upgradeConnector(MConnector oldConnector, MConnector newConnec
if (tx != null) { if (tx != null) {
tx.close(); tx.close();
} }
LOG.info("Connector upgrade finished for: " + connectorName); LOG.info("Connector upgrade finished for: " + oldConnectorName);
} }
} }

View File

@ -141,19 +141,19 @@ public void testDisabledLink() {
@Test @Test
public void testGetJob() { public void testGetJob() {
MJob testJob = job(123l, 456l); MJob testJob = job("jobName", "fromConnectorName", "toConnectorName");
testJob.setEnabled(true); testJob.setEnabled(true);
MJob mJobSpy = org.mockito.Mockito.spy(testJob); MJob mJobSpy = org.mockito.Mockito.spy(testJob);
when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock); when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock);
when(jdbcRepoMock.findJob(123l)).thenReturn(mJobSpy); when(jdbcRepoMock.findJob("jobName")).thenReturn(mJobSpy);
assertEquals(jobManager.getJob(123l), mJobSpy); assertEquals(jobManager.getJob("jobName"), mJobSpy);
verify(repositoryManagerMock, times(1)).getRepository(); verify(repositoryManagerMock, times(1)).getRepository();
verify(jdbcRepoMock, times(1)).findJob(123l); verify(jdbcRepoMock, times(1)).findJob("jobName");
} }
@Test @Test
public void testDisabledJob() { public void testDisabledJob() {
MJob testJob = job(123l, 456l); MJob testJob = job("jobName", "fromConnectorName", "toConnectorName");
testJob.setEnabled(false); testJob.setEnabled(false);
testJob.setPersistenceId(1111); testJob.setPersistenceId(1111);
SqoopException exception = new SqoopException(DriverError.DRIVER_0009, "Job: " SqoopException exception = new SqoopException(DriverError.DRIVER_0009, "Job: "
@ -161,13 +161,13 @@ public void testDisabledJob() {
MJob mJobSpy = org.mockito.Mockito.spy(testJob); MJob mJobSpy = org.mockito.Mockito.spy(testJob);
when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock); when(repositoryManagerMock.getRepository()).thenReturn(jdbcRepoMock);
when(jdbcRepoMock.findJob(123l)).thenReturn(mJobSpy); when(jdbcRepoMock.findJob("jobName")).thenReturn(mJobSpy);
try { try {
jobManager.getJob(123l); jobManager.getJob("jobName");
} 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(123l); verify(jdbcRepoMock, times(1)).findJob("jobName");
} }
} }
@ -187,9 +187,9 @@ public void testUnknownJob() {
} }
} }
private MJob job(long fromId, long toId) { private MJob job(String jobName, String fromConnectorName, String toConnectorName) {
MJob job = new MJob(fromId, toId, 1L, 2L, null, null, null); MJob job = new MJob(fromConnectorName, toConnectorName, 1L, 2L, null, null, null);
job.setName("Vampire"); job.setName(jobName);
job.setCreationUser("Buffy"); job.setCreationUser("Buffy");
return job; return job;
} }

View File

@ -229,7 +229,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 2)); List<MJob> jobList = jobs(job(1, "JA", "A1", "A1", 1, 1), job(2, "JB", "A1", "A1", 2, 2));
// 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 +277,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +315,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +425,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +463,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +501,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +543,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +589,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "A1", "A1", 1, 1), job(2, "JB", "A1", "A1", 2, 1));
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 +659,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +689,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +723,7 @@ 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", 1, 1, 1, 1), job(2, "JB", 1, 1, 2, 1)); List<MJob> jobList = jobs(job(1, "JA", "fromConnectorName", "toConnectorName", 1, 1), job(2, "JB", "fromConnectorName", "toConnectorName", 2, 1));
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 +782,8 @@ private MLink link(long linkId, String linkName, String connectorName) {
return link; return link;
} }
private MJob job(long id, String jobName, long fromConnectorId, long toConnectorId, long fromLinkId, long toLinkId) { private MJob job(long id, String jobName, String fromConnectorName, String toConnectorName, long fromLinkId, long toLinkId) {
MJob job = new MJob(fromConnectorId, toConnectorId, fromLinkId, toLinkId, MJob job = new MJob(fromConnectorName, toConnectorName, fromLinkId, toLinkId,
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

@ -1539,7 +1539,6 @@ private List<MLink> loadLinksForUpgrade(PreparedStatement stmt,
connectorConfigInputStatement, 2, conn); connectorConfigInputStatement, 2, conn);
MLink link = new MLink(connectorName, new MLinkConfig(connectorLinkConfig, Collections.EMPTY_LIST)); MLink link = new MLink(connectorName, new MLinkConfig(connectorLinkConfig, Collections.EMPTY_LIST));
link.setPersistenceId(id); link.setPersistenceId(id);
link.setName(name); link.setName(name);
link.setCreationUser(creationUser); link.setCreationUser(creationUser);
@ -1581,7 +1580,6 @@ private List<MLink> loadLinks(PreparedStatement stmt,
loadInputsForConfigs(connectorLinkConfig, configStmt, inputStmt); loadInputsForConfigs(connectorLinkConfig, configStmt, inputStmt);
MLink link = new MLink(connectorName, connectorLinkConfig); MLink link = new MLink(connectorName, connectorLinkConfig);
link.setPersistenceId(id); link.setPersistenceId(id);
link.setName(name); link.setName(name);
link.setCreationUser(creationUser); link.setCreationUser(creationUser);
@ -1624,6 +1622,8 @@ private List<MJob> loadJobsForUpgrade(PreparedStatement stmt,
Date creationDate = rsJob.getTimestamp(9); Date creationDate = rsJob.getTimestamp(9);
String updateBy = rsJob.getString(10); String updateBy = rsJob.getString(10);
Date lastUpdateDate = rsJob.getTimestamp(11); Date lastUpdateDate = rsJob.getTimestamp(11);
String fromConnectorName = rsJob.getString(12);
String toConnectorName = rsJob.getString(13);
fromConfigFetchStmt.setLong(1, fromConnectorId); fromConfigFetchStmt.setLong(1, fromConnectorId);
toConfigFetchStmt.setLong(1,toConnectorId); toConfigFetchStmt.setLong(1,toConnectorId);
@ -1652,7 +1652,7 @@ private List<MJob> loadJobsForUpgrade(PreparedStatement stmt,
loadDriverConfigs(driverConfig, driverConfigfetchStmt, jobInputFetchStmt, 2, conn); loadDriverConfigs(driverConfig, driverConfigfetchStmt, jobInputFetchStmt, 2, conn);
MJob job = new MJob( MJob job = new MJob(
fromConnectorId, toConnectorId, fromConnectorName, toConnectorName,
fromLinkId, toLinkId, fromLinkId, toLinkId,
new MFromConfig(fromConnectorFromJobConfig, Collections.EMPTY_LIST), new MFromConfig(fromConnectorFromJobConfig, Collections.EMPTY_LIST),
new MToConfig(toConnectorToJobConfig, Collections.EMPTY_LIST), new MToConfig(toConnectorToJobConfig, Collections.EMPTY_LIST),
@ -1727,7 +1727,7 @@ private List<MJob> loadJobs(PreparedStatement stmt,
loadDriverConfigs(driverConfig, driverConfigfetchStmt, jobInputFetchStmt, 2, conn); loadDriverConfigs(driverConfig, driverConfigfetchStmt, jobInputFetchStmt, 2, conn);
MJob job = new MJob( MJob job = new MJob(
fromConnectorId, toConnectorId, fromConnectorName, toConnectorName,
fromLinkId, toLinkId, fromLinkId, toLinkId,
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),

View File

@ -343,7 +343,7 @@ public void testDeleteJob() throws Exception {
} }
public MJob getJob() { public MJob getJob() {
return new MJob(1, 1, 1, 1, handler.findConnector("A", derbyConnection).getFromConfig(), return new MJob("A", "A", 1, 1, 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

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

View File

@ -92,8 +92,8 @@ protected MLink getLink(String name, MConnector connector) {
protected MJob getJob(String name, MConnector connectorA, MConnector connectorB, MLink linkA, MLink linkB) { protected MJob getJob(String name, MConnector connectorA, MConnector connectorB, MLink linkA, MLink linkB) {
MDriver driver = handler.findDriver(MDriver.DRIVER_NAME, provider.getConnection()); MDriver driver = handler.findDriver(MDriver.DRIVER_NAME, provider.getConnection());
MJob job = new MJob( MJob job = new MJob(
connectorA.getPersistenceId(), connectorA.getUniqueName(),
connectorB.getPersistenceId(), connectorB.getUniqueName(),
linkA.getPersistenceId(), linkA.getPersistenceId(),
linkB.getPersistenceId(), linkB.getPersistenceId(),
connectorA.getFromConfig(), connectorA.getFromConfig(),

View File

@ -191,9 +191,9 @@ private JsonBean createUpdateJob(RequestContext ctx, boolean create) {
// Verify that user is not trying to spoof us // Verify that user is not trying to spoof us
MFromConfig fromConfig = ConnectorManager.getInstance() MFromConfig fromConfig = ConnectorManager.getInstance()
.getConnectorConfigurable(postedJob.getFromConnectorId()).getFromConfig(); .getConnectorConfigurable(postedJob.getFromConnectorName()).getFromConfig();
MToConfig toConfig = ConnectorManager.getInstance() MToConfig toConfig = ConnectorManager.getInstance()
.getConnectorConfigurable(postedJob.getToConnectorId()).getToConfig(); .getConnectorConfigurable(postedJob.getToConnectorName()).getToConfig();
MDriverConfig driverConfig = Driver.getInstance().getDriver().getDriverConfig(); MDriverConfig driverConfig = Driver.getInstance().getDriver().getDriverConfig();
if (!fromConfig.equals(postedJob.getFromJobConfig()) if (!fromConfig.equals(postedJob.getFromJobConfig())
@ -213,9 +213,9 @@ private JsonBean createUpdateJob(RequestContext ctx, boolean create) {
// Corresponding connectors for this // Corresponding connectors for this
SqoopConnector fromConnector = ConnectorManager.getInstance().getSqoopConnector( SqoopConnector fromConnector = ConnectorManager.getInstance().getSqoopConnector(
postedJob.getFromConnectorId()); postedJob.getFromConnectorName());
SqoopConnector toConnector = ConnectorManager.getInstance().getSqoopConnector( SqoopConnector toConnector = ConnectorManager.getInstance().getSqoopConnector(
postedJob.getToConnectorId()); postedJob.getToConnectorName());
if (!fromConnector.getSupportedDirections().contains(Direction.FROM)) { if (!fromConnector.getSupportedDirections().contains(Direction.FROM)) {
throw new SqoopException(ServerError.SERVER_0004, "Connector " throw new SqoopException(ServerError.SERVER_0004, "Connector "
@ -325,16 +325,17 @@ private JobsBean createJobsBean(List<MJob> jobs, Locale locale) {
private void addConnectorConfigBundle(JobBean bean, Locale locale) { private void addConnectorConfigBundle(JobBean bean, Locale locale) {
// Add associated resources into the bean // Add associated resources into the bean
for (MJob job : bean.getJobs()) { for (MJob job : bean.getJobs()) {
long fromConnectorId = job.getFromConnectorId(); String fromConnectorName = job.getFromConnectorName();
long toConnectorId = job.getToConnectorId(); String toConnectorName = job.getToConnectorName();
// replace it only if it does not already exist // replace it only if it does not already exist
if (!bean.hasConnectorConfigBundle(fromConnectorId)) { if (!bean.hasConnectorConfigBundle(fromConnectorName)) {
bean.addConnectorConfigBundle(fromConnectorId, ConnectorManager.getInstance() bean.addConnectorConfigBundle(fromConnectorName, ConnectorManager.getInstance()
.getResourceBundle(fromConnectorId, locale)); .getResourceBundle(fromConnectorName, locale));
} }
if (!bean.hasConnectorConfigBundle(toConnectorId)) { if (!bean.hasConnectorConfigBundle(toConnectorName)) {
bean.addConnectorConfigBundle(toConnectorId, ConnectorManager.getInstance() bean.addConnectorConfigBundle(toConnectorName, ConnectorManager.getInstance()
.getResourceBundle(toConnectorId, locale)); .getResourceBundle(toConnectorName, locale));
} }
} }
} }

View File

@ -67,13 +67,10 @@ private Status cloneJob(String jobArg, List<String> args, boolean isInteractive)
MJob job = client.getJob(jobArg); MJob job = client.getJob(jobArg);
job.setPersistenceId(MPersistableEntity.PERSISTANCE_ID_DEFAULT); job.setPersistenceId(MPersistableEntity.PERSISTANCE_ID_DEFAULT);
// TODO: the job should be related with connector by connectorName
MConnector fromConnector = getClient().getConnector(job.getFromConnectorId());
MConnector toConnector = getClient().getConnector(job.getToConnectorId());
ResourceBundle fromConnectorBundle = client.getConnectorConfigBundle( ResourceBundle fromConnectorBundle = client.getConnectorConfigBundle(
fromConnector.getUniqueName()); job.getFromConnectorName());
ResourceBundle toConnectorBundle = client.getConnectorConfigBundle( ResourceBundle toConnectorBundle = client.getConnectorConfigBundle(
toConnector.getUniqueName()); job.getToConnectorName());
ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); ResourceBundle driverConfigBundle = client.getDriverConfigBundle();
Status status = Status.OK; Status status = Status.OK;

View File

@ -77,13 +77,13 @@ private Status createJob(String fromLinkArg, String toLinkArg, List<String> args
ConsoleReader reader = getConsoleReader(); ConsoleReader reader = getConsoleReader();
MJob job = getClient().createJob(fromLinkArg, toLinkArg); MJob job = getClient().createJob(fromLinkArg, toLinkArg);
MConnector fromConnector = getClient().getConnector(job.getFromConnectorId()); MConnector fromConnector = getClient().getConnector(job.getFromConnectorName());
if (!fromConnector.getSupportedDirections().isDirectionSupported(Direction.FROM)) { if (!fromConnector.getSupportedDirections().isDirectionSupported(Direction.FROM)) {
errorMessage("Connector " + fromConnector.getUniqueName() + " does not support direction " + Direction.FROM); errorMessage("Connector " + fromConnector.getUniqueName() + " does not support direction " + Direction.FROM);
return Status.ERROR; return Status.ERROR;
} }
MConnector toConnector = getClient().getConnector(job.getToConnectorId()); MConnector toConnector = getClient().getConnector(job.getToConnectorName());
if (!toConnector.getSupportedDirections().isDirectionSupported(Direction.TO)) { if (!toConnector.getSupportedDirections().isDirectionSupported(Direction.TO)) {
errorMessage("Connector " + toConnector.getUniqueName() + " does not support direction " + Direction.TO); errorMessage("Connector " + toConnector.getUniqueName() + " does not support direction " + Direction.TO);
return Status.ERROR; return Status.ERROR;

View File

@ -99,12 +99,7 @@ private void showSummary() {
if (fromLink != null) { if (fromLink != null) {
fromLinkName = fromLink.getName(); fromLinkName = fromLink.getName();
} }
String fromConnectorName = ""; fromConnectors.add(fromLinkName + " (" + job.getFromConnectorName() + ")");
MConnector fromConnector = client.getConnector(job.getFromConnectorId());
if (fromConnector != null) {
fromConnectorName = fromConnector.getUniqueName();
}
fromConnectors.add(fromLinkName + " (" + fromConnectorName + ")");
// To link and connector // To link and connector
String toLinkName = ""; String toLinkName = "";
@ -112,12 +107,7 @@ private void showSummary() {
if (toLink != null) { if (toLink != null) {
toLinkName = toLink.getName(); toLinkName = toLink.getName();
} }
String toConnnectorName = ""; toConnectors.add(toLinkName + " (" + job.getToConnectorName() + ")");
MConnector toConnector = client.getConnector(job.getToConnectorId());
if (toConnector != null) {
toConnnectorName = toConnector.getUniqueName();
}
toConnectors.add(toLinkName + " (" + toConnnectorName + ")");
availabilities.add(String.valueOf(job.getEnabled())); availabilities.add(String.valueOf(job.getEnabled()));
} }
@ -160,19 +150,15 @@ private void displayJob(MJob job) {
formatter.format(job.getLastUpdateDate()) formatter.format(job.getLastUpdateDate())
); );
// TODO: should be removed when MJob link with Connector by name.
MConnector fromConnector = getClient().getConnector(job.getFromConnectorId());
MConnector toConnector = getClient().getConnector(job.getToConnectorId());
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.getFromLinkId());
displayConfig(job.getFromJobConfig().getConfigs(), displayConfig(job.getFromJobConfig().getConfigs(),
client.getConnectorConfigBundle(fromConnector.getUniqueName())); 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.getToLinkId());
displayConfig(job.getToJobConfig().getConfigs(), displayConfig(job.getToJobConfig().getConfigs(),
client.getConnectorConfigBundle(toConnector.getUniqueName())); client.getConnectorConfigBundle(job.getToConnectorName()));
} }
} }

View File

@ -68,14 +68,10 @@ private Status updateJob(String jobArg, List<String> args, boolean isInteractive
// TODO(SQOOP-1634): using from/to and driver config id, this call can be avoided // TODO(SQOOP-1634): using from/to and driver config id, this call can be avoided
MJob job = client.getJob(jobArg); MJob job = client.getJob(jobArg);
// TODO: should be removed when MJob link with Connector by name.
MConnector fromConnector = getClient().getConnector(job.getFromConnectorId());
MConnector toConnector = getClient().getConnector(job.getToConnectorId());
ResourceBundle fromConnectorBundle = client.getConnectorConfigBundle( ResourceBundle fromConnectorBundle = client.getConnectorConfigBundle(
fromConnector.getUniqueName()); job.getFromConnectorName());
ResourceBundle toConnectorBundle = client.getConnectorConfigBundle( ResourceBundle toConnectorBundle = client.getConnectorConfigBundle(
toConnector.getUniqueName()); job.getToConnectorName());
ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); ResourceBundle driverConfigBundle = client.getDriverConfigBundle();
Status status = Status.OK; Status status = Status.OK;

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(1L, 2L, 1L, 2L, MJob job = new MJob("fromConnectorName", "toConnectorName", 1L, 2L,
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,7 @@ public void testCloneJob() {
public void testCloneJobInteractive() { public void testCloneJobInteractive() {
ShellEnvironment.setInteractive(true); ShellEnvironment.setInteractive(true);
initEnv(); initEnv();
MJob job = new MJob(1, 2, 1, 2, new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()), MJob job = new MJob("fromConnectorName", "toConnectorName", 1, 2, 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,11 +182,11 @@ 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(1, 2, 1, 2, new MFromConfig(new ArrayList<MConfig>(), new ArrayList<MValidator>()), new MJob("fromConnectorName", "toConnectorName", 1, 2, 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(1)).thenReturn(fromConnector); when(client.getConnector("fromConnectorName")).thenReturn(fromConnector);
when(client.getConnector(2)).thenReturn(toConnector); when(client.getConnector("toConnectorName")).thenReturn(toConnector);
when(client.saveJob(any(MJob.class))).thenReturn(Status.OK); when(client.saveJob(any(MJob.class))).thenReturn(Status.OK);
// create job -f link_from -to link_to // create job -f link_from -to link_to
@ -222,12 +222,12 @@ 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(1, 2, 1, 2, new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()), MJob job = new MJob("fromConnectorName", "toConnectorName", 1, 2, 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);
when(client.getConnector(1)).thenReturn(fromConnector); when(client.getConnector("fromConnectorName")).thenReturn(fromConnector);
when(client.getConnector(2)).thenReturn(toConnector); when(client.getConnector("toConnectorName")).thenReturn(toConnector);
when(client.saveJob(any(MJob.class))).thenReturn(Status.OK); when(client.saveJob(any(MJob.class))).thenReturn(Status.OK);
when(client.getConnectorConfigBundle(any(String.class))).thenReturn(resourceBundle); when(client.getConnectorConfigBundle(any(String.class))).thenReturn(resourceBundle);
when(client.getDriverConfigBundle()).thenReturn(resourceBundle); when(client.getDriverConfigBundle()).thenReturn(resourceBundle);

View File

@ -235,11 +235,11 @@ 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(1L, 2L, 1L, 2L, when(client.getJob("1")).thenReturn(new MJob("fromConnectorName", "toConnectorName", 1L, 2L,
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(1L, 2L, 1L, 2L, when(client.getJobsByConnector("2")).thenReturn(Arrays.asList(new MJob("fromConnectorName", "toConnectorName", 1L, 2L,
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>()))));

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(1L, 2L, 1L, 2L, MJob job = new MJob("fromConnectorName", "toConnectorName", 1L, 2L,
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,7 @@ public void testUpdateJob() throws InterruptedException {
public void testUpdateJobInteractive() { public void testUpdateJobInteractive() {
ShellEnvironment.setInteractive(true); ShellEnvironment.setInteractive(true);
initEnv(); initEnv();
MJob job = new MJob(1, 2, 1, 2, new MFromConfig(getConfig("fromJobConfig"), new ArrayList<MValidator>()), MJob job = new MJob("fromConnectorName", "toConnectorName", 1, 2, 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

@ -324,8 +324,8 @@ private long loadLink(MLink link) {
private long loadJob(MJob job) { private long loadJob(MJob job) {
// starting by pretending we have a brand new job // starting by pretending we have a brand new job
resetPersistenceId(job); resetPersistenceId(job);
MConnector mFromConnector = ConnectorManager.getInstance().getConnectorConfigurable(job.getFromConnectorId()); MConnector mFromConnector = ConnectorManager.getInstance().getConnectorConfigurable(job.getFromConnectorName());
MConnector mToConnector = ConnectorManager.getInstance().getConnectorConfigurable(job.getToConnectorId()); MConnector mToConnector = ConnectorManager.getInstance().getConnectorConfigurable(job.getToConnectorName());
MFromConfig fromConfig = job.getFromJobConfig(); MFromConfig fromConfig = job.getFromJobConfig();
MToConfig toConfig = job.getToJobConfig(); MToConfig toConfig = job.getToJobConfig();
@ -347,10 +347,10 @@ private long loadJob(MJob job) {
// Transform config structures to objects for validations // Transform config structures to objects for validations
SqoopConnector fromConnector = SqoopConnector fromConnector =
ConnectorManager.getInstance().getSqoopConnector( ConnectorManager.getInstance().getSqoopConnector(
job.getFromConnectorId()); job.getFromConnectorName());
SqoopConnector toConnector = SqoopConnector toConnector =
ConnectorManager.getInstance().getSqoopConnector( ConnectorManager.getInstance().getSqoopConnector(
job.getToConnectorId()); job.getToConnectorName());
Object fromConnectorConfig = ClassUtils.instantiate( Object fromConnectorConfig = ClassUtils.instantiate(
fromConnector.getJobConfigurationClass(Direction.FROM)); fromConnector.getJobConfigurationClass(Direction.FROM));