FALCON-2224 Change return type of extension APIs to APIResult
Author: Pracheer Agarwal <pracheer.agarwal@inmobi.com>
Reviewers: @sandeepSamudrala, @pallavi-rao
Closes #330 from PracheerAgarwal/APIResult and squashes the following commits:
2f62d03 [Pracheer Agarwal] resolved merge conficts
1c0d6fb [Pracheer Agarwal] resolved merge conficts
8e058e7 [Pracheer Agarwal] removed unused imports
ff1dbb4 [Pracheer Agarwal] FALCON-2224 added getExtensionDetail and getExtensions to AbstractFalconClient
533d507 [Pracheer Agarwal] FALCON-2224, Change return type of extension APIs to APIResult
46042fd [Pracheer Agarwal] Merge branch 'master' of https://github.com/PracheerAgarwal/falcon
daa3ffc [Pracheer Agarwal] FALCON-2225 extension owner added for trusted extensions
622cae4 [Pracheer Agarwal] FALCON-2225 extension owner added for trusted extensions
diff --git a/cli/src/main/java/org/apache/falcon/cli/FalconExtensionCLI.java b/cli/src/main/java/org/apache/falcon/cli/FalconExtensionCLI.java
index c8c66bf..59538bc 100644
--- a/cli/src/main/java/org/apache/falcon/cli/FalconExtensionCLI.java
+++ b/cli/src/main/java/org/apache/falcon/cli/FalconExtensionCLI.java
@@ -77,26 +77,26 @@
String description = commandLine.getOptionValue(FalconCLIConstants.DESCRIPTION);
if (optionsList.contains(ENUMERATE_OPT)) {
- result = client.enumerateExtensions();
+ result = client.enumerateExtensions().getMessage();
result = prettyPrintJson(result);
} else if (optionsList.contains(DEFINITION_OPT)) {
validateRequiredParameter(extensionName, EXTENSION_NAME_OPT);
- result = client.getExtensionDefinition(extensionName);
+ result = client.getExtensionDefinition(extensionName).getMessage();
result = prettyPrintJson(result);
} else if (optionsList.contains(DESCRIBE_OPT)) {
validateRequiredParameter(extensionName, EXTENSION_NAME_OPT);
- result = client.getExtensionDescription(extensionName);
+ result = client.getExtensionDescription(extensionName).getMessage();
} else if (optionsList.contains(UNREGISTER_OPT)) {
validateRequiredParameter(extensionName, EXTENSION_NAME_OPT);
- result = client.unregisterExtension(extensionName);
+ result = client.unregisterExtension(extensionName).getMessage();
} else if (optionsList.contains(DETAIL_OPT)) {
if (optionsList.contains(JOB_NAME_OPT)) {
validateRequiredParameter(jobName, JOB_NAME_OPT);
- result = client.getExtensionJobDetails(jobName);
+ result = client.getExtensionJobDetails(jobName).getMessage();
result = prettyPrintJson(result);
} else {
validateRequiredParameter(extensionName, EXTENSION_NAME_OPT);
- result = client.getExtensionDetail(extensionName);
+ result = client.getExtensionDetail(extensionName).getMessage();
result = prettyPrintJson(result);
}
} else if (optionsList.contains(FalconCLIConstants.SUBMIT_OPT)) {
@@ -107,7 +107,7 @@
} else if (optionsList.contains(REGISTER_OPT)) {
validateRequiredParameter(extensionName, EXTENSION_NAME_OPT);
validateRequiredParameter(path, PATH);
- result = client.registerExtension(extensionName, path, description);
+ result = client.registerExtension(extensionName, path, description).getMessage();
} else if (optionsList.contains(FalconCLIConstants.SUBMIT_AND_SCHEDULE_OPT)) {
validateRequiredParameter(extensionName, EXTENSION_NAME_OPT);
validateRequiredParameter(filePath, FalconCLIConstants.FILE_PATH_OPT);
diff --git a/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java b/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java
index 3dabf52..879d794 100644
--- a/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java
+++ b/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java
@@ -187,14 +187,14 @@
* @param description description of the extension.
* @return Result of the registerExtension command.
*/
- public abstract String registerExtension(String extensionName, String packagePath, String description);
+ public abstract APIResult registerExtension(String extensionName, String packagePath, String description);
/**
*
* @param extensionName extensionName that needs to be unregistered
* @return Result of the unregisterExtension operation
*/
- public abstract String unregisterExtension(String extensionName);
+ public abstract APIResult unregisterExtension(String extensionName);
/**
* Prepares set of entities the extension has implemented and stage them to a local directory and submit them too.
@@ -226,7 +226,20 @@
* @param jobName job name of the extension job.
* @return
*/
- public abstract String getExtensionJobDetails(final String jobName);
+ public abstract APIResult getExtensionJobDetails(final String jobName);
+
+ /**
+ * Returns details of an extension.
+ * @param extensionName name of the extension.
+ * @return
+ */
+ public abstract APIResult getExtensionDetail(final String extensionName);
+
+ /**
+ * Returns all registered extensions.
+ * @return
+ */
+ public abstract APIResult enumerateExtensions();
/**
*
diff --git a/client/src/main/java/org/apache/falcon/client/FalconClient.java b/client/src/main/java/org/apache/falcon/client/FalconClient.java
index d5b8342..fbb4db3 100644
--- a/client/src/main/java/org/apache/falcon/client/FalconClient.java
+++ b/client/src/main/java/org/apache/falcon/client/FalconClient.java
@@ -1009,28 +1009,28 @@
return sendMetadataLineageRequest(MetadataOperations.EDGES, id, doAsUser);
}
- public String enumerateExtensions() {
+ public APIResult enumerateExtensions() {
ClientResponse clientResponse = new ResourceBuilder()
.path(ExtensionOperations.ENUMERATE.path)
.call(ExtensionOperations.ENUMERATE);
- return getResponse(String.class, clientResponse);
+ return getResponse(APIResult.class, clientResponse);
}
- public String unregisterExtension(final String extensionName) {
+ public APIResult unregisterExtension(final String extensionName) {
ClientResponse clientResponse = new ResourceBuilder()
.path(ExtensionOperations.UNREGISTER.path, extensionName)
.call(ExtensionOperations.UNREGISTER);
- return getResponse(String.class, clientResponse);
+ return getResponse(APIResult.class, clientResponse);
}
- public String getExtensionDetail(final String extensionName) {
- return getResponse(String.class, getExtensionDetailResponse(extensionName));
+ public APIResult getExtensionDetail(final String extensionName) {
+ return getResponse(APIResult.class, getExtensionDetailResponse(extensionName));
}
- public String getExtensionJobDetails(final String jobName) {
+ public APIResult getExtensionJobDetails(final String jobName) {
ClientResponse clientResponse = new ResourceBuilder().path(ExtensionOperations.JOB_DETAILS.path, jobName)
.call(ExtensionOperations.JOB_DETAILS);
- return getResponse(String.class, clientResponse);
+ return getResponse(APIResult.class, clientResponse);
}
private ClientResponse getExtensionDetailResponse(final String extensionName) {
@@ -1038,26 +1038,26 @@
.call(ExtensionOperations.DETAIL);
}
- public String registerExtension(final String extensionName, final String packagePath, final String description) {
+ public APIResult registerExtension(final String extensionName, final String packagePath, final String description) {
ClientResponse clientResponse = new ResourceBuilder()
.path(ExtensionOperations.REGISTER.path, extensionName).addQueryParam(PATH, packagePath)
.addQueryParam(FalconCLIConstants.DESCRIPTION, description)
.call(ExtensionOperations.REGISTER);
- return getResponse(String.class, clientResponse);
+ return getResponse(APIResult.class, clientResponse);
}
- public String getExtensionDefinition(final String extensionName) {
+ public APIResult getExtensionDefinition(final String extensionName) {
ClientResponse clientResponse = new ResourceBuilder()
.path(ExtensionOperations.DEFINITION.path, extensionName)
.call(ExtensionOperations.DEFINITION);
- return getResponse(String.class, clientResponse);
+ return getResponse(APIResult.class, clientResponse);
}
- public String getExtensionDescription(final String extensionName) {
+ public APIResult getExtensionDescription(final String extensionName) {
ClientResponse clientResponse = new ResourceBuilder()
.path(ExtensionOperations.DESCRIBE.path, extensionName)
.call(ExtensionOperations.DESCRIBE);
- return getResponse(String.class, clientResponse);
+ return getResponse(APIResult.class, clientResponse);
}
@Override
diff --git a/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java b/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java
index a50b535..d360370 100644
--- a/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java
+++ b/prism/src/main/java/org/apache/falcon/resource/AbstractExtensionManager.java
@@ -23,14 +23,17 @@
import org.apache.falcon.entity.parser.ValidationException;
import org.apache.falcon.extensions.jdbc.ExtensionMetaStore;
import org.apache.falcon.extensions.store.ExtensionStore;
+import org.apache.falcon.persistence.ExtensionBean;
import org.apache.falcon.persistence.ExtensionJobsBean;
import org.apache.falcon.security.CurrentUser;
+import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.core.Response;
+import java.util.List;
/**
* A base class for managing Extension Operations.
@@ -47,6 +50,11 @@
private static final String CREATION_TIME = "creationTime";
private static final String LAST_UPDATE_TIME = "lastUpdatedTime";
+ private static final String NAME = "name";
+ private static final String EXTENSION_TYPE = "type";
+ private static final String EXTENSION_DESC = "description";
+ private static final String EXTENSION_LOCATION = "location";
+
public static void validateExtensionName(final String extensionName) {
if (StringUtils.isBlank(extensionName)) {
throw FalconWebException.newAPIException("Extension name is mandatory and shouldn't be blank",
@@ -54,27 +62,45 @@
}
}
- public String registerExtensionMetadata(String extensionName, String path, String description, String owner) {
+ public APIResult registerExtensionMetadata(String extensionName, String path, String description, String owner) {
validateExtensionName(extensionName);
try {
- return ExtensionStore.get().registerExtension(extensionName, path, description, owner);
+ return new APIResult(APIResult.Status.SUCCEEDED, ExtensionStore.get().registerExtension(extensionName, path,
+ description, owner));
} catch (Throwable e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
}
- public String getExtensionJobDetail(String jobName) {
+ public APIResult getExtensionJobDetail(String jobName) {
try {
- return buildExtensionJobDetailResult(jobName).toString();
+ return new APIResult(APIResult.Status.SUCCEEDED, buildExtensionJobDetailResult(jobName).toString());
} catch (FalconException e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
}
- public String deleteExtensionMetadata(String extensionName){
+ public APIResult getExtensionDetail(String extensionName) {
+ try {
+ return new APIResult(APIResult.Status.SUCCEEDED, buildExtensionDetailResult(extensionName).toString());
+ } catch (FalconException e) {
+ throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ public APIResult getExtensions() {
+ try {
+ return new APIResult(APIResult.Status.SUCCEEDED, buildEnumerateResult().toString());
+ } catch (FalconException e) {
+ throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ public APIResult deleteExtensionMetadata(String extensionName){
validateExtensionName(extensionName);
try {
- return ExtensionStore.get().deleteExtension(extensionName, CurrentUser.getUser());
+ return new APIResult(APIResult.Status.SUCCEEDED, ExtensionStore.get().deleteExtension(extensionName,
+ CurrentUser.getUser()));
} catch (Throwable e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
@@ -114,4 +140,45 @@
}
return tags.substring(nameStart, nameEnd);
}
+
+ private JSONObject buildExtensionDetailResult(final String extensionName) throws FalconException {
+ ExtensionMetaStore metaStore = ExtensionStore.getMetaStore();
+
+ if (!metaStore.checkIfExtensionExists(extensionName)){
+ throw new ValidationException("No extension resources found for " + extensionName);
+ }
+
+ ExtensionBean bean = metaStore.getDetail(extensionName);
+ JSONObject resultObject = new JSONObject();
+ try {
+ resultObject.put(NAME, bean.getExtensionName());
+ resultObject.put(EXTENSION_TYPE, bean.getExtensionType());
+ resultObject.put(EXTENSION_DESC, bean.getDescription());
+ resultObject.put(EXTENSION_LOCATION, bean.getLocation());
+ } catch (JSONException e) {
+ LOG.error("Exception in buildDetailResults:", e);
+ throw new FalconException(e);
+ }
+ return resultObject;
+ }
+
+ private static JSONArray buildEnumerateResult() throws FalconException {
+ JSONArray results = new JSONArray();
+ ExtensionMetaStore metaStore = ExtensionStore.getMetaStore();
+ List<ExtensionBean> extensionBeanList = metaStore.getAllExtensions();
+ for (ExtensionBean extensionBean : extensionBeanList) {
+ JSONObject resultObject = new JSONObject();
+
+ try {
+ resultObject.put(NAME, extensionBean.getExtensionName().toLowerCase());
+ resultObject.put(EXTENSION_TYPE, extensionBean.getExtensionType());
+ resultObject.put(EXTENSION_DESC, extensionBean.getDescription());
+ resultObject.put(EXTENSION_LOCATION, extensionBean.getLocation());
+ } catch (JSONException e) {
+ throw new FalconException(e);
+ }
+ results.put(resultObject);
+ }
+ return results;
+ }
}
diff --git a/prism/src/main/java/org/apache/falcon/resource/proxy/ExtensionManagerProxy.java b/prism/src/main/java/org/apache/falcon/resource/proxy/ExtensionManagerProxy.java
index 9ddebe8..ebe989d 100644
--- a/prism/src/main/java/org/apache/falcon/resource/proxy/ExtensionManagerProxy.java
+++ b/prism/src/main/java/org/apache/falcon/resource/proxy/ExtensionManagerProxy.java
@@ -25,8 +25,6 @@
import org.apache.falcon.FalconWebException;
import org.apache.falcon.entity.EntityUtil;
import org.apache.falcon.entity.parser.ProcessEntityParser;
-import org.apache.falcon.entity.parser.ValidationException;
-import org.apache.falcon.entity.store.StoreAccessException;
import org.apache.falcon.entity.v0.Entity;
import org.apache.falcon.entity.v0.EntityType;
import org.apache.falcon.entity.v0.feed.Feed;
@@ -49,9 +47,6 @@
import org.apache.falcon.security.CurrentUser;
import org.apache.falcon.service.Services;
import org.apache.falcon.util.DeploymentUtil;
-import org.codehaus.jettison.json.JSONArray;
-import org.codehaus.jettison.json.JSONException;
-import org.codehaus.jettison.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -95,24 +90,15 @@
private static final String TAG_PREFIX_EXTENSION_NAME = "_falcon_extension_name=";
private static final String ASCENDING_SORT_ORDER = "asc";
private static final String DESCENDING_SORT_ORDER = "desc";
-
private Extension extension = new Extension();
-
- private static final String EXTENSION_RESULTS = "extensions";
- private static final String TOTAL_RESULTS = "totalResults";
private static final String README = "README";
- private static final String NAME = "name";
- private static final String EXTENSION_TYPE = "type";
- private static final String EXTENSION_DESC = "description";
- private static final String EXTENSION_LOCATION = "location";
+
private boolean embeddedMode = DeploymentUtil.isEmbeddedMode();
private String currentColo = DeploymentUtil.getCurrentColo();
private final Map<String, Channel> configSyncChannels = new HashMap<String, Channel>();
- private static final String PRISM_TAG = "prism";
private final Map<String, Channel> entityManagerChannels = new HashMap<String, Channel>();
-
private static final String EXTENSION_PROPERTY_JSON_SUFFIX = "-properties.json";
//SUSPEND CHECKSTYLE CHECK ParameterNumberCheck
@GET
@@ -596,26 +582,11 @@
@GET
@Path("enumerate")
@Produces({MediaType.APPLICATION_JSON})
- public Response getExtensions() {
+ public APIResult getExtensions() {
checkIfExtensionServiceIsEnabled();
- JSONArray results;
-
try {
- results = buildEnumerateResult();
- } catch (StoreAccessException e) {
- LOG.error("Failed when accessing extension store.", e);
- throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
- } catch (FalconException e) {
- throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
- }
-
- try {
- JSONObject response = new JSONObject();
- response.put(EXTENSION_RESULTS, results);
- response.put(TOTAL_RESULTS, results.length());
-
- return Response.ok(response).build();
- } catch (Throwable e) {
+ return new APIResult(APIResult.Status.SUCCEEDED, super.getExtensions().toString());
+ } catch (FalconWebException e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
}
@@ -623,12 +594,12 @@
@GET
@Path("describe/{extension-name}")
@Produces(MediaType.TEXT_PLAIN)
- public String getExtensionDescription(
+ public APIResult getExtensionDescription(
@PathParam("extension-name") String extensionName) {
checkIfExtensionServiceIsEnabled();
validateExtensionName(extensionName);
try {
- return ExtensionStore.get().getResource(extensionName, README);
+ return new APIResult(APIResult.Status.SUCCEEDED, ExtensionStore.get().getResource(extensionName, README));
} catch (Throwable e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
@@ -637,11 +608,11 @@
@GET
@Path("detail/{extension-name}")
@Produces({MediaType.APPLICATION_JSON})
- public Response getDetail(@PathParam("extension-name") String extensionName) {
+ public APIResult getDetail(@PathParam("extension-name") String extensionName) {
checkIfExtensionServiceIsEnabled();
validateExtensionName(extensionName);
try {
- return Response.ok(buildExtensionDetailResult(extensionName)).build();
+ return super.getExtensionDetail(extensionName);
} catch (Throwable e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
@@ -650,10 +621,10 @@
@GET
@Path("extensionJobDetails/{job-name}")
@Produces({MediaType.APPLICATION_JSON})
- public String getExtensionJobDetail(@PathParam("job-name") String jobName) {
+ public APIResult getExtensionJobDetail(@PathParam("job-name") String jobName) {
checkIfExtensionServiceIsEnabled();
try {
- return super.getExtensionJobDetail(jobName);
+ return super.getExtensionJobDetail(jobName);
} catch (Throwable e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
@@ -663,7 +634,7 @@
@Path("unregister/{extension-name}")
@Consumes({MediaType.TEXT_XML, MediaType.TEXT_PLAIN})
@Produces(MediaType.TEXT_PLAIN)
- public String deleteExtensionMetadata(
+ public APIResult deleteExtensionMetadata(
@PathParam("extension-name") String extensionName){
checkIfExtensionServiceIsEnabled();
try {
@@ -677,7 +648,7 @@
@Path("register/{extension-name}")
@Consumes({MediaType.TEXT_XML, MediaType.TEXT_PLAIN})
@Produces(MediaType.TEXT_PLAIN)
- public String registerExtensionMetadata(
+ public APIResult registerExtensionMetadata(
@PathParam("extension-name") String extensionName,
@QueryParam("path") String path,
@QueryParam("description") String description) {
@@ -692,38 +663,17 @@
@GET
@Path("definition/{extension-name}")
@Produces({MediaType.APPLICATION_JSON})
- public String getExtensionDefinition(
+ public APIResult getExtensionDefinition(
@PathParam("extension-name") String extensionName) {
checkIfExtensionServiceIsEnabled();
try {
- return ExtensionStore.get().getResource(extensionName,
- extensionName.toLowerCase() + EXTENSION_PROPERTY_JSON_SUFFIX);
+ return new APIResult(APIResult.Status.SUCCEEDED, ExtensionStore.get().getResource(extensionName,
+ extensionName.toLowerCase() + EXTENSION_PROPERTY_JSON_SUFFIX));
} catch (Throwable e) {
throw FalconWebException.newAPIException(e, Response.Status.INTERNAL_SERVER_ERROR);
}
}
- private static JSONArray buildEnumerateResult() throws FalconException {
- JSONArray results = new JSONArray();
- ExtensionMetaStore metaStore = ExtensionStore.getMetaStore();
- List<ExtensionBean> extensionBeanList = metaStore.getAllExtensions();
- for (ExtensionBean extensionBean : extensionBeanList) {
- JSONObject resultObject = new JSONObject();
-
- try {
- resultObject.put(NAME, extensionBean.getExtensionName().toLowerCase());
- resultObject.put(EXTENSION_TYPE, extensionBean.getExtensionType());
- resultObject.put(EXTENSION_DESC, extensionBean.getDescription());
- resultObject.put(EXTENSION_LOCATION, extensionBean.getLocation());
- } catch (JSONException e) {
- throw new FalconException(e);
- }
- results.put(resultObject);
-
- }
- return results;
- }
-
private List<Entity> generateEntities(String extensionName, InputStream configStream)
throws FalconException, IOException {
// get entities for extension job
@@ -738,27 +688,6 @@
return entities;
}
- private JSONObject buildExtensionDetailResult(final String extensionName) throws FalconException {
- ExtensionMetaStore metaStore = ExtensionStore.getMetaStore();
-
- if (!metaStore.checkIfExtensionExists(extensionName)){
- throw new ValidationException("No extension resources found for " + extensionName);
- }
-
- ExtensionBean bean = metaStore.getDetail(extensionName);
- JSONObject resultObject = new JSONObject();
- try {
- resultObject.put(NAME, bean.getExtensionName());
- resultObject.put(EXTENSION_TYPE, bean.getExtensionType());
- resultObject.put(EXTENSION_DESC, bean.getDescription());
- resultObject.put(EXTENSION_LOCATION, bean.getLocation());
- } catch (JSONException e) {
- LOG.error("Exception in buildDetailResults:", e);
- throw new FalconException(e);
- }
- return resultObject;
- }
-
private Map<String, List<Entity>> groupEntitiesByJob(List<Entity> entities) {
Map<String, List<Entity>> groupedEntities = new HashMap<>();
for (Entity entity : entities) {
diff --git a/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java b/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java
index 7036dc7..3a3c5b2 100644
--- a/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java
+++ b/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java
@@ -272,12 +272,12 @@
}
@Override
- public String registerExtension(String extensionName, String packagePath, String description) {
+ public APIResult registerExtension(String extensionName, String packagePath, String description) {
return localExtensionManager.registerExtensionMetadata(extensionName, packagePath, description);
}
@Override
- public String unregisterExtension(String extensionName) {
+ public APIResult unregisterExtension(String extensionName) {
return localExtensionManager.unRegisterExtension(extensionName);
}
@@ -336,11 +336,21 @@
}
@Override
- public String getExtensionJobDetails(final String jobName) {
+ public APIResult getExtensionJobDetails(final String jobName) {
return localExtensionManager.getExtensionJobDetails(jobName);
}
@Override
+ public APIResult getExtensionDetail(String extensionName) {
+ return localExtensionManager.getExtensionDetails(extensionName);
+ }
+
+ @Override
+ public APIResult enumerateExtensions() {
+ return localExtensionManager.getExtensions();
+ }
+
+ @Override
public EntityList getEntityList(String entityType, String fields, String nameSubsequence, String tagKeywords,
String filterBy, String filterTags, String orderBy, String sortOrder,
Integer offset, Integer numResults, String doAsUser) {
diff --git a/unit/src/main/java/org/apache/falcon/unit/LocalExtensionManager.java b/unit/src/main/java/org/apache/falcon/unit/LocalExtensionManager.java
index 57c339e..4cf3ae4 100644
--- a/unit/src/main/java/org/apache/falcon/unit/LocalExtensionManager.java
+++ b/unit/src/main/java/org/apache/falcon/unit/LocalExtensionManager.java
@@ -87,16 +87,24 @@
}
- public String registerExtensionMetadata(String extensionName, String packagePath , String description) {
+ public APIResult registerExtensionMetadata(String extensionName, String packagePath , String description) {
return super.registerExtensionMetadata(extensionName, packagePath, description, CurrentUser.getUser());
}
- public String unRegisterExtension(String extensionName) {
+ public APIResult unRegisterExtension(String extensionName) {
return super.deleteExtensionMetadata(extensionName);
}
- public String getExtensionJobDetails(String jobName){
+ public APIResult getExtensionJobDetails(String jobName){
return super.getExtensionJobDetail(jobName);
}
+ public APIResult getExtensionDetails(String extensionName){
+ return super.getExtensionJobDetail(extensionName);
+ }
+
+ public APIResult getExtensions(){
+ return super.getExtensions();
+ }
+
}
diff --git a/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java b/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java
index 6f71747..0771b9d 100644
--- a/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java
+++ b/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java
@@ -221,15 +221,15 @@
public String registerExtension(String extensionName, String packagePath, String description)
throws IOException, FalconException {
- return falconUnitClient.registerExtension(extensionName, packagePath, description);
+ return falconUnitClient.registerExtension(extensionName, packagePath, description).getMessage();
}
public String getExtensionJobDetails(String jobName) {
- return falconUnitClient.getExtensionJobDetails(jobName);
+ return falconUnitClient.getExtensionJobDetails(jobName).getMessage();
}
public String unregisterExtension(String extensionName) {
- return falconUnitClient.unregisterExtension(extensionName);
+ return falconUnitClient.unregisterExtension(extensionName).getMessage();
}
public APIResult submitExtensionJob(String extensionName, String jobName, String configPath, String doAsUser) {