5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-09 03:41:06 +08:00

SQOOP-2395: Sqoop2: Signature of method getConnectorIdFromIdentifier in HandlerUtils is inconsistent with other methods

(Dian Fu via Richard Zhou)
This commit is contained in:
Richard Zhou 2015-06-23 15:51:06 +08:00
parent d16566ace2
commit 87855a3768
5 changed files with 22 additions and 28 deletions

View File

@ -189,12 +189,6 @@ public synchronized void initialize(boolean autoUpgrade) {
}
}
public synchronized Long getConnectorId(String connectorName) {
Repository repository = RepositoryManager.getInstance().getRepository();
return repository.findConnector(connectorName) != null ? repository
.findConnector(connectorName).getPersistenceId() : null;
}
private synchronized void registerConnectors(boolean autoUpgrade) {
Repository repository = RepositoryManager.getInstance().getRepository();

View File

@ -18,19 +18,21 @@
package org.apache.sqoop.handler;
import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.connector.ConnectorManager;
import org.apache.sqoop.model.MConnector;
import org.apache.sqoop.model.MJob;
import org.apache.sqoop.model.MLink;
import org.apache.sqoop.repository.Repository;
import org.apache.sqoop.repository.RepositoryManager;
import org.apache.sqoop.server.common.ServerError;
public class HandlerUtils {
public static long getJobIdFromIdentifier(String identifier, Repository repository) {
public static long getJobIdFromIdentifier(String identifier) {
// support jobName or jobId for the api
// NOTE: jobId is a fallback for older sqoop clients if any, since we want
// to primarily use unique jobNames
long jobId;
Repository repository = RepositoryManager.getInstance().getRepository();
MJob job = repository.findJob(identifier);
if (job != null) {
jobId = job.getPersistenceId();
@ -47,11 +49,12 @@ public static long getJobIdFromIdentifier(String identifier, Repository reposito
return jobId;
}
public static long getLinkIdFromIdentifier(String identifier, Repository repository) {
public static long getLinkIdFromIdentifier(String identifier) {
// support linkName or linkId for the api
// NOTE: linkId is a fallback for older sqoop clients if any, since we want
// to primarily use unique linkNames
long linkId;
Repository repository = RepositoryManager.getInstance().getRepository();
MLink link = repository.findLink(identifier);
if (link != null) {
linkId = link.getPersistenceId();
@ -70,8 +73,10 @@ public static long getLinkIdFromIdentifier(String identifier, Repository reposit
public static long getConnectorIdFromIdentifier(String identifier) {
long connectorId;
if (ConnectorManager.getInstance().getConnectorId(identifier) != null) {
connectorId = ConnectorManager.getInstance().getConnectorId(identifier);
Repository repository = RepositoryManager.getInstance().getRepository();
MConnector connector = repository.findConnector(identifier);
if (connector != null) {
connectorId = connector.getPersistenceId();
} else {
try {
connectorId = Long.valueOf(identifier);

View File

@ -138,7 +138,7 @@ private JsonBean deleteJob(RequestContext ctx) {
Repository repository = RepositoryManager.getInstance().getRepository();
String jobIdentifier = ctx.getLastURLElement();
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
// Authorization check
AuthorizationEngine.deleteJob(String.valueOf(jobId));
@ -210,7 +210,7 @@ private JsonBean createUpdateJob(RequestContext ctx, boolean create) {
if (!create) {
String jobIdentifier = ctx.getLastURLElement();
// support jobName or jobId for the api
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
if (postedJob.getPersistenceId() == MPersistableEntity.PERSISTANCE_ID_DEFAULT) {
MJob existingJob = repository.findJob(jobId);
postedJob.setPersistenceId(existingJob.getPersistenceId());
@ -305,7 +305,7 @@ private JsonBean getJobs(RequestContext ctx) {
AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
ctx.getRequest().getRemoteAddr(), "get", "job", connectorIdentifier);
long jobId = HandlerUtils.getJobIdFromIdentifier(connectorIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(connectorIdentifier);
MJob job = repository.findJob(jobId);
// Authorization check
@ -349,7 +349,7 @@ private JsonBean enableJob(RequestContext ctx, boolean enabled) {
Repository repository = RepositoryManager.getInstance().getRepository();
String[] elements = ctx.getUrlElements();
String jobIdentifier = elements[elements.length - 2];
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
// Authorization check
AuthorizationEngine.enableDisableJob(String.valueOf(jobId));
@ -359,10 +359,9 @@ private JsonBean enableJob(RequestContext ctx, boolean enabled) {
}
private JsonBean startJob(RequestContext ctx) {
Repository repository = RepositoryManager.getInstance().getRepository();
String[] elements = ctx.getUrlElements();
String jobIdentifier = elements[elements.length - 2];
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
// Authorization check
AuthorizationEngine.startJob(String.valueOf(jobId));
@ -383,10 +382,9 @@ private JsonBean startJob(RequestContext ctx) {
}
private JsonBean stopJob(RequestContext ctx) {
Repository repository = RepositoryManager.getInstance().getRepository();
String[] elements = ctx.getUrlElements();
String jobIdentifier = elements[elements.length - 2];
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
// Authorization check
AuthorizationEngine.stopJob(String.valueOf(jobId));
@ -398,10 +396,9 @@ private JsonBean stopJob(RequestContext ctx) {
}
private JsonBean getJobStatus(RequestContext ctx) {
Repository repository = RepositoryManager.getInstance().getRepository();
String[] elements = ctx.getUrlElements();
String jobIdentifier = elements[elements.length - 2];
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
// Authorization check
AuthorizationEngine.statusJob(String.valueOf(jobId));

View File

@ -92,7 +92,7 @@ private JsonBean deleteLink(RequestContext ctx) {
Repository repository = RepositoryManager.getInstance().getRepository();
String linkIdentifier = ctx.getLastURLElement();
// support linkName or linkId for the api
long linkId = HandlerUtils.getLinkIdFromIdentifier(linkIdentifier, repository);
long linkId = HandlerUtils.getLinkIdFromIdentifier(linkIdentifier);
// Authorization check
AuthorizationEngine.deleteLink(String.valueOf(linkId));
@ -152,7 +152,7 @@ private JsonBean createUpdateLink(RequestContext ctx, boolean create) {
if (!create) {
String linkIdentifier = ctx.getLastURLElement();
// support linkName or linkId for the api
long linkId = HandlerUtils.getLinkIdFromIdentifier(linkIdentifier, repository);
long linkId = HandlerUtils.getLinkIdFromIdentifier(linkIdentifier);
if (postedLink.getPersistenceId() == MPersistableEntity.PERSISTANCE_ID_DEFAULT) {
MLink existingLink = repository.findLink(linkId);
postedLink.setPersistenceId(existingLink.getPersistenceId());
@ -233,7 +233,7 @@ private JsonBean getLinks(RequestContext ctx) {
AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
ctx.getRequest().getRemoteAddr(), "get", "link", identifier);
long linkId = HandlerUtils.getLinkIdFromIdentifier(identifier, repository);
long linkId = HandlerUtils.getLinkIdFromIdentifier(identifier);
MLink link = repository.findLink(linkId);
// Authorization check
@ -271,7 +271,7 @@ private JsonBean enableLink(RequestContext ctx, boolean enabled) {
Repository repository = RepositoryManager.getInstance().getRepository();
String[] elements = ctx.getUrlElements();
String linkIdentifier = elements[elements.length - 2];
long linkId = HandlerUtils.getLinkIdFromIdentifier(linkIdentifier, repository);
long linkId = HandlerUtils.getLinkIdFromIdentifier(linkIdentifier);
// Authorization check
AuthorizationEngine.enableDisableLink(String.valueOf(linkId));

View File

@ -25,7 +25,6 @@
import org.apache.sqoop.json.JsonBean;
import org.apache.sqoop.json.SubmissionsBean;
import org.apache.sqoop.model.MSubmission;
import org.apache.sqoop.repository.Repository;
import org.apache.sqoop.repository.RepositoryManager;
import org.apache.sqoop.security.authorization.AuthorizationEngine;
import org.apache.sqoop.server.RequestContext;
@ -50,14 +49,13 @@ public JsonBean handleEvent(RequestContext ctx) {
+ ctx.getMethod());
}
String jobIdentifier = ctx.getLastURLElement();
Repository repository = RepositoryManager.getInstance().getRepository();
// submissions per job are ordered by update time
// hence the latest submission is on the top
if (ctx.getParameterValue(JOB_NAME_QUERY_PARAM) != null) {
jobIdentifier = ctx.getParameterValue(JOB_NAME_QUERY_PARAM);
AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
ctx.getRequest().getRemoteAddr(), "get", "submissionsByJob", jobIdentifier);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier, repository);
long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
return getSubmissionsForJob(jobId);
} else {
// all submissions in the system