FALCON-890 Merlin tests need to be updated in secure cluster to get the token using the ugi object requests. Contributed by Arpit Gupta
Project: http://git-wip-us.apache.org/repos/asf/incubator-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-falcon/commit/b85573e2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-falcon/tree/b85573e2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-falcon/diff/b85573e2 Branch: refs/heads/master Commit: b85573e22816d660e743caeb5823918b73390210 Parents: 6f4f4b7 Author: Raghav Kumar Gautam <rag...@apache.org> Authored: Wed Nov 12 15:37:23 2014 -0800 Committer: Raghav Kumar Gautam <rag...@apache.org> Committed: Wed Nov 12 15:37:23 2014 -0800 ---------------------------------------------------------------------- falcon-regression/CHANGES.txt | 3 + .../falcon/regression/core/bundle/Bundle.java | 33 +++-- .../regression/core/helpers/LineageHelper.java | 6 +- .../core/interfaces/IEntityManagerHelper.java | 82 ++++++------ .../falcon/regression/core/util/BundleUtil.java | 2 +- .../regression/core/util/CleanupUtil.java | 15 ++- .../regression/core/util/InstanceUtil.java | 6 +- .../regression/core/util/KerberosHelper.java | 28 ++-- .../falcon/regression/core/util/Util.java | 20 +-- .../org/apache/falcon/request/BaseRequest.java | 5 +- .../security/FalconAuthorizationToken.java | 24 +++- .../regression/testHelper/BaseTestClass.java | 1 - .../falcon/regression/AuthorizationTest.java | 31 +---- .../falcon/regression/FeedLateRerunTest.java | 4 +- .../falcon/regression/FeedReplicationTest.java | 4 +- .../regression/FeedSubmitAndScheduleTest.java | 5 +- .../falcon/regression/InstanceParamTest.java | 12 +- .../falcon/regression/InstanceSummaryTest.java | 10 +- .../regression/ProcessInstanceStatusTest.java | 3 +- .../regression/entity/ListEntitiesTest.java | 15 ++- .../regression/lineage/EntitySummaryTest.java | 9 +- .../lineage/ListFeedInstancesTest.java | 21 +-- .../regression/lineage/ProcessPipelineTest.java | 10 +- .../prism/NewPrismProcessUpdateTest.java | 2 +- .../RescheduleProcessInFinalStatesTest.java | 3 +- .../falcon/regression/prism/RetentionTest.java | 3 +- .../prism/UpdateAtSpecificTimeTest.java | 40 +++--- .../regression/security/ClusterAclTest.java | 2 - .../falcon/regression/security/EntityOp.java | 132 ++++++++++--------- .../regression/security/FalconClientTest.java | 2 - .../falcon/regression/security/FeedAclTest.java | 4 - .../regression/security/ProcessAclTest.java | 4 - .../falcon/regression/ui/LineageGraphTest.java | 4 +- .../falcon/regression/ui/ProcessUITest.java | 9 +- 34 files changed, 288 insertions(+), 266 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/CHANGES.txt ---------------------------------------------------------------------- diff --git a/falcon-regression/CHANGES.txt b/falcon-regression/CHANGES.txt index 19f1aec..645db67 100644 --- a/falcon-regression/CHANGES.txt +++ b/falcon-regression/CHANGES.txt @@ -30,6 +30,9 @@ Trunk (Unreleased) via Samarth Gupta) IMPROVEMENTS + FALCON-890 Merlin tests need to be updated in secure cluster to get the + token using the ugi object requests (Arpit Gupta) + FALCON-863 Fix tests to have start as well as end time for kill, rerun etc requests (Raghav Kumar Gautam) http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java index 5ee6dd2..5535e00 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/bundle/Bundle.java @@ -76,7 +76,9 @@ public class Bundle { private List<String> dataSets; private String processData; - public void submitFeed() throws URISyntaxException, IOException, AuthenticationException, JAXBException { + public void submitFeed() + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + InterruptedException { submitClusters(prismHelper); AssertUtil.assertSucceeded(prismHelper.getFeedHelper().submitEntity(dataSets.get(0))); @@ -95,7 +97,8 @@ public class Bundle { } public void submitAndScheduleAllFeeds() - throws JAXBException, IOException, URISyntaxException, AuthenticationException { + throws JAXBException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { submitClusters(prismHelper); for (String feed : dataSets) { @@ -104,7 +107,7 @@ public class Bundle { } public ServiceResponse submitProcess(boolean shouldSucceed) throws JAXBException, - IOException, URISyntaxException, AuthenticationException { + IOException, URISyntaxException, AuthenticationException, InterruptedException { submitClusters(prismHelper); submitFeeds(prismHelper); ServiceResponse r = prismHelper.getProcessHelper().submitEntity(processData); @@ -255,7 +258,8 @@ public class Bundle { } public ServiceResponse submitBundle(ColoHelper helper) - throws JAXBException, IOException, URISyntaxException, AuthenticationException { + throws JAXBException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { submitClusters(helper); @@ -276,8 +280,8 @@ public class Bundle { * @throws AuthenticationException */ public String submitFeedsScheduleProcess(ColoHelper helper) - throws IOException, JAXBException, URISyntaxException, - AuthenticationException { + throws IOException, JAXBException, URISyntaxException, + AuthenticationException, InterruptedException { ServiceResponse submitResponse = submitBundle(helper); if (submitResponse.getCode() == 400) { return submitResponse.getMessage(); @@ -679,19 +683,22 @@ public class Bundle { public void submitClusters(ColoHelper helper) - throws JAXBException, IOException, URISyntaxException, AuthenticationException { + throws JAXBException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { submitClusters(helper, null); } public void submitClusters(ColoHelper helper, String user) - throws JAXBException, IOException, URISyntaxException, AuthenticationException { + throws JAXBException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { for (String cluster : this.clusters) { AssertUtil.assertSucceeded(helper.getClusterHelper().submitEntity(cluster, user)); } } public void submitFeeds(ColoHelper helper) - throws JAXBException, IOException, URISyntaxException, AuthenticationException { + throws JAXBException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { for (String feed : this.dataSets) { AssertUtil.assertSucceeded(helper.getFeedHelper().submitEntity(feed)); } @@ -791,7 +798,7 @@ public class Bundle { } public static void submitCluster(Bundle... bundles) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { for (Bundle bundle : bundles) { ServiceResponse r = @@ -855,10 +862,12 @@ public class Bundle { } public void submitAndScheduleBundle(ColoHelper helper, boolean checkSuccess) - throws IOException, JAXBException, URISyntaxException, AuthenticationException { + throws IOException, JAXBException, URISyntaxException, AuthenticationException, + InterruptedException { for (int i = 0; i < getClusters().size(); i++) { - ServiceResponse r = helper.getClusterHelper().submitEntity(getClusters().get(i)); + ServiceResponse r; + r = helper.getClusterHelper().submitEntity(getClusters().get(i)); if (checkSuccess) { AssertUtil.assertSucceeded(r); } http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/helpers/LineageHelper.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/helpers/LineageHelper.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/helpers/LineageHelper.java index 20a7ba9..88ea42e 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/helpers/LineageHelper.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/helpers/LineageHelper.java @@ -115,7 +115,7 @@ public class LineageHelper { * @throws AuthenticationException */ public HttpResponse runGetRequest(String url) - throws URISyntaxException, IOException, AuthenticationException { + throws URISyntaxException, IOException, AuthenticationException, InterruptedException { final BaseRequest request = new BaseRequest(url, "get", null); return request.run(); } @@ -129,7 +129,7 @@ public class LineageHelper { * @throws AuthenticationException */ public String runGetRequestSuccessfully(String url) - throws URISyntaxException, IOException, AuthenticationException { + throws URISyntaxException, IOException, AuthenticationException, InterruptedException { HttpResponse response = runGetRequest(url); String responseString = getResponseString(response); LOGGER.info(Util.prettyPrintXmlOrJson(responseString)); @@ -226,6 +226,8 @@ public class LineageHelper { AssertUtil.fail(e); } catch (AuthenticationException e) { AssertUtil.fail(e); + } catch (InterruptedException e) { + AssertUtil.fail(e); } return new GsonBuilder().create().fromJson(responseString, clazz); } http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/interfaces/IEntityManagerHelper.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/interfaces/IEntityManagerHelper.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/interfaces/IEntityManagerHelper.java index 49202bc..89c4883 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/interfaces/IEntityManagerHelper.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/interfaces/IEntityManagerHelper.java @@ -257,12 +257,12 @@ public abstract class IEntityManagerHelper { } public ServiceResponse listEntities() - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return listEntities(null, null); } public ServiceResponse listEntities(String params, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { LOGGER.info("fetching " + getEntityType() + " list"); String url = createUrl(this.hostname + URLS.LIST_URL.getValue(), getEntityType() + colo); @@ -273,133 +273,133 @@ public abstract class IEntityManagerHelper { } public ServiceResponse listAllEntities(String params, String user) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { return listEntities((params == null ? "" : params + '&') + "numResults=" + Integer.MAX_VALUE, user); } public ServiceResponse submitEntity(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return submitEntity(data, null); } public ServiceResponse submitEntity(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { LOGGER.info("Submitting " + getEntityType() + ": \n" + Util.prettyPrintXml(data)); return Util.sendRequest(createUrl(this.hostname + URLS.SUBMIT_URL.getValue(), getEntityType() + colo), "post", data, user); } public ServiceResponse schedule(String processData) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return schedule(processData, null); } public ServiceResponse schedule(String processData, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.SCHEDULE_URL.getValue(), getEntityType(), getEntityName(processData) + colo), "post", user); } public ServiceResponse submitAndSchedule(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return submitAndSchedule(data, null); } public ServiceResponse submitAndSchedule(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { LOGGER.info("Submitting " + getEntityType() + ": \n" + Util.prettyPrintXml(data)); return Util.sendRequest(createUrl(this.hostname + URLS.SUBMIT_AND_SCHEDULE_URL.getValue(), getEntityType()), "post", data, user); } public ServiceResponse deleteByName(String entityName, String user) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.DELETE_URL.getValue(), getEntityType(), entityName + colo), "delete", user); } public ServiceResponse delete(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return delete(data, null); } public ServiceResponse delete(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.DELETE_URL.getValue(), getEntityType(), getEntityName(data) + colo), "delete", user); } public ServiceResponse suspend(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return suspend(data, null); } public ServiceResponse suspend(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.SUSPEND_URL.getValue(), getEntityType(), getEntityName(data) + colo), "post", user); } public ServiceResponse resume(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return resume(data, null); } public ServiceResponse resume(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.RESUME_URL.getValue(), getEntityType(), getEntityName(data) + colo), "post", user); } public ServiceResponse getStatus(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getStatus(data, null); } public ServiceResponse getStatus(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.STATUS_URL.getValue(), getEntityType(), getEntityName(data) + colo), "get", user); } public ServiceResponse getEntityDefinition(String data) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getEntityDefinition(data, null); } public ServiceResponse getEntityDefinition(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.GET_ENTITY_DEFINITION.getValue(), getEntityType(), getEntityName(data) + colo), "get", user); } public ServiceResponse getEntityDependencies(String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return Util.sendRequest(createUrl(this.hostname + URLS.DEPENDENCIES.getValue(), getEntityType(), getEntityName(data) + colo), "get", user); } public InstancesResult getRunningInstance(String name) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getRunningInstance(name, null); } public InstancesResult getRunningInstance(String name, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_RUNNING.getValue(), getEntityType(), name + allColo); return (InstancesResult) InstanceUtil.sendRequestProcessInstance(url, user); } public InstancesResult getProcessInstanceStatus(String entityName, String params) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getProcessInstanceStatus(entityName, params, null); } public InstancesResult getProcessInstanceStatus( String entityName, String params, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_STATUS.getValue(), getEntityType(), entityName, ""); return (InstancesResult) InstanceUtil @@ -408,13 +408,13 @@ public abstract class IEntityManagerHelper { public InstancesResult getProcessInstanceSuspend( String readEntityName, String params) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getProcessInstanceSuspend(readEntityName, params, null); } public InstancesResult getProcessInstanceSuspend( String entityName, String params, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_SUSPEND.getValue(), getEntityType(), entityName, ""); return (InstancesResult) InstanceUtil @@ -422,12 +422,12 @@ public abstract class IEntityManagerHelper { } public ServiceResponse update(String oldEntity, String newEntity) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return update(oldEntity, newEntity, null); } public ServiceResponse update(String oldEntity, String newEntity, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { LOGGER.info("Updating " + getEntityType() + ": \n" + Util.prettyPrintXml(oldEntity)); LOGGER.info("To " + getEntityType() + ": \n" + Util.prettyPrintXml(newEntity)); String url = createUrl(this.hostname + URLS.UPDATE.getValue(), getEntityType(), @@ -437,7 +437,7 @@ public abstract class IEntityManagerHelper { public ServiceResponse update(String oldEntity, String newEntity, String updateTime, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { LOGGER.info("Updating " + getEntityType() + ": \n" + Util.prettyPrintXml(oldEntity)); LOGGER.info("To " + getEntityType() + ": \n" + Util.prettyPrintXml(newEntity)); String url = this.hostname + URLS.UPDATE.getValue() + "/" + getEntityType() + "/" @@ -448,13 +448,13 @@ public abstract class IEntityManagerHelper { } public InstancesResult getProcessInstanceKill(String readEntityName, String params) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getProcessInstanceKill(readEntityName, params, null); } public InstancesResult getProcessInstanceKill(String entityName, String params, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_KILL.getValue(), getEntityType(), entityName, ""); return (InstancesResult) InstanceUtil @@ -462,13 +462,13 @@ public abstract class IEntityManagerHelper { } public InstancesResult getProcessInstanceRerun(String entityName, String params) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getProcessInstanceRerun(entityName, params, null); } public InstancesResult getProcessInstanceRerun(String entityName, String params, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_RERUN.getValue(), getEntityType(), entityName, ""); return (InstancesResult) InstanceUtil @@ -476,13 +476,13 @@ public abstract class IEntityManagerHelper { } public InstancesResult getProcessInstanceResume(String entityName, String params) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return getProcessInstanceResume(entityName, params, null); } public InstancesResult getProcessInstanceResume(String entityName, String params, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_RESUME.getValue(), getEntityType(), entityName, ""); return (InstancesResult) InstanceUtil @@ -491,7 +491,7 @@ public abstract class IEntityManagerHelper { public InstancesSummaryResult getInstanceSummary(String entityName, String params - ) throws IOException, URISyntaxException, AuthenticationException { + ) throws IOException, URISyntaxException, AuthenticationException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_SUMMARY.getValue(), getEntityType(), entityName, ""); return (InstancesSummaryResult) InstanceUtil @@ -518,7 +518,7 @@ public abstract class IEntityManagerHelper { } public InstancesResult getInstanceParams(String entityName, String params) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_PARAMS.getValue(), getEntityType(), entityName, ""); return (InstancesResult) InstanceUtil @@ -534,7 +534,7 @@ public abstract class IEntityManagerHelper { * @throws URISyntaxException */ public ServiceResponse getListByPipeline(String pipeline) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { String url = createUrl(this.hostname + URLS.LIST_URL.getValue() + "/" + getEntityType()); url += "?filterBy=PIPELINES:" + pipeline; return Util.sendRequest(url, "get", null, null); @@ -577,7 +577,7 @@ public abstract class IEntityManagerHelper { * @return entity summary along with its instances. */ public ServiceResponse getEntitySummary(String clusterName, String params) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { String url = createUrl(this.hostname + URLS.ENTITY_SUMMARY.getValue(), getEntityType()) +"?cluster=" + clusterName; if (StringUtils.isNotEmpty(params)) { @@ -594,7 +594,7 @@ public abstract class IEntityManagerHelper { * @return response */ public InstancesResult listInstances(String entityName, String params, String user) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { String url = createUrl(this.hostname + URLS.INSTANCE_LIST.getValue(), getEntityType(), entityName + colo); if (StringUtils.isNotEmpty(params)) { http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java index 123f2de..ee0c072 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/BundleUtil.java @@ -152,7 +152,7 @@ public final class BundleUtil { } public static void submitAllClusters(ColoHelper prismHelper, Bundle... b) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { for (Bundle aB : b) { ServiceResponse r = prismHelper.getClusterHelper().submitEntity(aB.getClusters().get(0)); Assert.assertTrue(r.getMessage().contains("SUCCEEDED")); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/CleanupUtil.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/CleanupUtil.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/CleanupUtil.java index 87f4daa..8fe10f4 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/CleanupUtil.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/CleanupUtil.java @@ -46,23 +46,27 @@ public final class CleanupUtil { private static final Logger LOGGER = Logger.getLogger(CleanupUtil.class); public static List<String> getAllProcesses(ColoHelper prism) - throws IOException, URISyntaxException, AuthenticationException, JAXBException { + throws IOException, URISyntaxException, AuthenticationException, JAXBException, + InterruptedException { return getAllEntitiesOfOneType(prism.getProcessHelper(), null); } public static List<String> getAllFeeds(ColoHelper prism) - throws IOException, URISyntaxException, AuthenticationException, JAXBException { + throws IOException, URISyntaxException, AuthenticationException, JAXBException, + InterruptedException { return getAllEntitiesOfOneType(prism.getFeedHelper(), null); } public static List<String> getAllClusters(ColoHelper prism) - throws IOException, URISyntaxException, AuthenticationException, JAXBException { + throws IOException, URISyntaxException, AuthenticationException, JAXBException, + InterruptedException { return getAllEntitiesOfOneType(prism.getClusterHelper(), null); } public static List<String> getAllEntitiesOfOneType(IEntityManagerHelper iEntityManagerHelper, String user) - throws IOException, URISyntaxException, AuthenticationException, JAXBException { + throws IOException, URISyntaxException, AuthenticationException, JAXBException, + InterruptedException { final EntitiesResult entitiesResult = getEntitiesResultOfOneType(iEntityManagerHelper, user); List<String> clusters = new ArrayList<String>(); for (EntityResult entity : entitiesResult.getEntities()) { @@ -73,7 +77,8 @@ public final class CleanupUtil { private static EntitiesResult getEntitiesResultOfOneType( IEntityManagerHelper iEntityManagerHelper, String user) - throws IOException, URISyntaxException, AuthenticationException, JAXBException { + throws IOException, URISyntaxException, AuthenticationException, JAXBException, + InterruptedException { final ServiceResponse clusterResponse = iEntityManagerHelper.listAllEntities(null, user); JAXBContext jc = JAXBContext.newInstance(EntitiesResult.class); Unmarshaller u = jc.createUnmarshaller(); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java index 4c60be7..22c34f7 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java @@ -96,7 +96,7 @@ public final class InstanceUtil { public static APIResult sendRequestProcessInstance(String url, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return hitUrl(url, Util.getMethodType(url), user); } @@ -104,7 +104,7 @@ public final class InstanceUtil { public static APIResult hitUrl(String url, String method, String user) throws URISyntaxException, - IOException, AuthenticationException { + IOException, AuthenticationException, InterruptedException { BaseRequest request = new BaseRequest(url, method, user); HttpResponse response = request.run(); BufferedReader reader = new BufferedReader( @@ -748,7 +748,7 @@ public final class InstanceUtil { */ public static APIResult createAndSendRequestProcessInstance( String url, String params, String colo, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { if (params != null && !colo.equals("")) { url = url + params + "&" + colo.substring(1); } else if (params != null) { http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java index 3c666e7..dd9fe5c 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java @@ -19,9 +19,12 @@ package org.apache.falcon.regression.core.util; import org.apache.falcon.regression.core.enumsAndConstants.MerlinConstants; +import org.apache.hadoop.security.UserGroupInformation; import org.testng.Assert; import org.apache.log4j.Logger; +import java.io.IOException; + /** * Util methods for Kerberos. */ @@ -32,19 +35,22 @@ public final class KerberosHelper { private static final Logger LOGGER = Logger.getLogger(KerberosHelper.class); - public static void loginFromKeytab(String user) { + public static UserGroupInformation getUGI(String user) throws IOException { + // if unsecure cluster create a remote user object if (!MerlinConstants.IS_SECURE) { - LOGGER.info("Kerberos is disabled, hence no user switching."); - return; - } - if (user == null) { - user = MerlinConstants.CURRENT_USER_NAME; + return UserGroupInformation.createRemoteUser(user); } - final String keytab = MerlinConstants.getKeytabForUser(user); - String principal = MerlinConstants.USER_REALM.isEmpty() ? user : user + '@' + MerlinConstants.USER_REALM; - final String command = String.format("kinit -kt %s %s", keytab, principal); - final int exitVal = ExecUtil.executeCommandGetExitCode(command); - Assert.assertEquals(exitVal, 0, "Switching Kerberos credential did not succeed."); + // if secure create a ugi object from keytab + return UserGroupInformation.loginUserFromKeytabAndReturnUGI(getPrincipal(user), getKeyTab + (user)); } + private static String getKeyTab(String user) { + return MerlinConstants.getKeytabForUser(user); + } + + private static String getPrincipal(String user) { + return MerlinConstants.USER_REALM.isEmpty() ? user : user + '@' + MerlinConstants + .USER_REALM; + } } http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/Util.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/Util.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/Util.java index f0c6db2..18b54f8 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/Util.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/Util.java @@ -94,7 +94,7 @@ public final class Util { * Sends request without data and user. */ public static ServiceResponse sendRequest(String url, String method) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return sendRequest(url, method, null, null); } @@ -102,7 +102,7 @@ public final class Util { * Sends api request without data. */ public static ServiceResponse sendRequest(String url, String method, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { return sendRequest(url, method, null, user); } @@ -118,7 +118,7 @@ public final class Util { * @throws AuthenticationException */ public static ServiceResponse sendRequest(String url, String method, String data, String user) - throws IOException, URISyntaxException, AuthenticationException { + throws IOException, URISyntaxException, AuthenticationException, InterruptedException { BaseRequest request = new BaseRequest(url, method, user, data); request.addHeader(RequestKeys.CONTENT_TYPE_HEADER, RequestKeys.XML_CONTENT_TYPE); HttpResponse response = request.run(); @@ -418,7 +418,8 @@ public final class Util { * @throws URISyntaxException */ public static void startService(IEntityManagerHelper helper) - throws IOException, JSchException, AuthenticationException, URISyntaxException { + throws IOException, JSchException, AuthenticationException, URISyntaxException, + InterruptedException { ExecUtil.runRemoteScriptAsSudo(helper.getQaHost(), helper.getUsername(), helper.getPassword(), helper.getServiceStartCmd(), helper.getServiceUser(), helper.getIdentityFile()); @@ -446,7 +447,8 @@ public final class Util { * @throws URISyntaxException */ public static void restartService(IEntityManagerHelper helper) - throws IOException, JSchException, AuthenticationException, URISyntaxException { + throws IOException, JSchException, AuthenticationException, URISyntaxException, + InterruptedException { LOGGER.info("restarting service for: " + helper.getQaHost()); shutDownService(helper); startService(helper); @@ -582,8 +584,8 @@ public final class Util { */ public static boolean isDefinitionSame(ColoHelper server1, ColoHelper server2, String entity) - throws URISyntaxException, IOException, AuthenticationException, JAXBException, - SAXException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + SAXException, InterruptedException { return XmlUtil.isIdentical(getEntityDefinition(server1, entity, true), getEntityDefinition(server2, entity, true)); } @@ -743,8 +745,8 @@ public final class Util { public static String getEntityDefinition(ColoHelper cluster, String entity, boolean shouldReturn) throws - JAXBException, - IOException, URISyntaxException, AuthenticationException { + JAXBException, + IOException, URISyntaxException, AuthenticationException, InterruptedException { EntityType type = getEntityType(entity); IEntityManagerHelper helper; if (EntityType.PROCESS == type) { http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/request/BaseRequest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/request/BaseRequest.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/request/BaseRequest.java index 7244fb7..cf95107 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/request/BaseRequest.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/request/BaseRequest.java @@ -107,7 +107,8 @@ public class BaseRequest { headers.add(new BasicHeader(name, value)); } - public HttpResponse run() throws URISyntaxException, IOException, AuthenticationException { + public HttpResponse run() throws URISyntaxException, IOException, AuthenticationException, + InterruptedException { URIBuilder uriBuilder = new URIBuilder(this.url); /*falcon now reads a user.name parameter in the request. @@ -135,7 +136,7 @@ public class BaseRequest { } private HttpResponse execute(HttpRequest request) - throws IOException, AuthenticationException { + throws IOException, AuthenticationException, InterruptedException { // add headers to the request if (null != headers && headers.size() > 0) { for (Header header : headers) { http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin-core/src/main/java/org/apache/falcon/security/FalconAuthorizationToken.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/security/FalconAuthorizationToken.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/security/FalconAuthorizationToken.java index 1af999e..fa2caf9 100644 --- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/security/FalconAuthorizationToken.java +++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/security/FalconAuthorizationToken.java @@ -18,7 +18,9 @@ package org.apache.falcon.security; +import org.apache.falcon.regression.core.util.KerberosHelper; import org.apache.falcon.request.BaseRequest; +import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.authentication.client.AuthenticatedURL; import org.apache.hadoop.security.authentication.client.AuthenticationException; import org.apache.hadoop.security.authentication.client.KerberosAuthenticator; @@ -29,7 +31,9 @@ import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLSession; import java.io.IOException; +import java.net.HttpURLConnection; import java.net.URL; +import java.security.PrivilegedExceptionAction; import java.util.concurrent.ConcurrentHashMap; /** Class for obtaining authorization token. */ @@ -55,11 +59,12 @@ public final class FalconAuthorizationToken { private static void authenticate(String user, String protocol, String host, int port) - throws IOException, AuthenticationException { - URL url = new URL(String.format("%s://%s:%d/%s", protocol, host, port, + throws IOException, AuthenticationException, InterruptedException { + final URL url = new URL(String.format("%s://%s:%d/%s", protocol, host, port, AUTH_URL + "?" + PseudoAuthenticator.USER_NAME + "=" + user)); LOGGER.info("Authorize using url: " + url.toString()); - AuthenticatedURL.Token currentToken = new AuthenticatedURL.Token(); + + final AuthenticatedURL.Token currentToken = new AuthenticatedURL.Token(); /*using KerberosAuthenticator which falls back to PsuedoAuthenticator instead of passing authentication type from the command line - bad factory*/ @@ -70,7 +75,14 @@ public final class FalconAuthorizationToken { throw new RuntimeException(e); } HttpsURLConnection.setDefaultHostnameVerifier(ALL_TRUSTING_HOSTNAME_VERIFIER); - new AuthenticatedURL(AUTHENTICATOR).openConnection(url, currentToken); + UserGroupInformation callerUGI = KerberosHelper.getUGI(user); + callerUGI.doAs(new PrivilegedExceptionAction<Void>() { + @Override + public Void run() throws Exception { + new AuthenticatedURL(AUTHENTICATOR).openConnection(url, currentToken); + return null; + } + }); String key = getKey(user, protocol, host, port); // initialize a hash map if its null. @@ -80,7 +92,7 @@ public final class FalconAuthorizationToken { public static AuthenticatedURL.Token getToken(String user, String protocol, String host, int port, boolean overWrite) - throws IOException, AuthenticationException { + throws IOException, AuthenticationException, InterruptedException { String key = getKey(user, protocol, host, port); /*if the tokens are null or if token is not found then we will go ahead and authenticate @@ -93,7 +105,7 @@ public final class FalconAuthorizationToken { public static AuthenticatedURL.Token getToken(String user, String protocol, String host, int port) - throws IOException, AuthenticationException { + throws IOException, AuthenticationException, InterruptedException { return getToken(user, protocol, host, port, false); } http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/testHelper/BaseTestClass.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/testHelper/BaseTestClass.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/testHelper/BaseTestClass.java index c16c8f4..91d8e67 100644 --- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/testHelper/BaseTestClass.java +++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/testHelper/BaseTestClass.java @@ -57,7 +57,6 @@ public class BaseTestClass { public BaseTestClass() { // loginFromKeytab as the current user - KerberosHelper.loginFromKeytab(MerlinConstants.CURRENT_USER_NAME); prism = new ColoHelper(PRISM_PREFIX); servers = getServers(); serverFS = new ArrayList<FileSystem>(); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java index bd159de..f8ce97e 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/AuthorizationTest.java @@ -94,7 +94,6 @@ public class AuthorizationTest extends BaseTestClass { @Test(enabled = false) public void u1SubmitU2DeleteCluster() throws Exception { bundles[0].submitClusters(prism); - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getClusterHelper().delete( bundles[0].getClusters().get(0), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -107,7 +106,6 @@ public class AuthorizationTest extends BaseTestClass { public void u1SubmitU2DeleteProcess() throws Exception { bundles[0].submitClusters(prism); bundles[0].submitProcess(true); - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper().delete( bundles[0].getProcessData(), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -120,7 +118,6 @@ public class AuthorizationTest extends BaseTestClass { public void u1SubmitU2DeleteFeed() throws Exception { bundles[0].submitClusters(prism); bundles[0].submitFeed(); - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper().delete( bundles[0].getDataSets().get(0), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -137,7 +134,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.checkStatus(clusterOC, EntityType.PROCESS, bundles[0].getProcessData(), Job.Status.RUNNING); //try to delete process by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper() .delete(bundles[0].getProcessData(), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -154,7 +150,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.assertSucceeded(prism.getFeedHelper().submitAndSchedule(feed)); AssertUtil.checkStatus(clusterOC, EntityType.FEED, feed, Job.Status.RUNNING); //delete feed by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper().delete(feed, MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, "Feed scheduled by first user should not be deleted by second user"); @@ -172,7 +167,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.checkStatus(clusterOC, EntityType.PROCESS, bundles[0].getProcessData(), Job.Status.SUSPENDED); //try to delete process by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper() .delete(bundles[0].getProcessData(), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -190,7 +184,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.assertSucceeded(prism.getFeedHelper().suspend(feed)); AssertUtil.checkStatus(clusterOC, EntityType.FEED, feed, Job.Status.SUSPENDED); //delete feed by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper() .delete(feed, MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -210,7 +203,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.assertSucceeded(prism.getFeedHelper().submitAndSchedule(feed)); AssertUtil.checkStatus(clusterOC, EntityType.FEED, feed, Job.Status.RUNNING); //try to suspend by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper() .suspend(feed, MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -225,7 +217,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.checkStatus(clusterOC, EntityType.PROCESS, bundles[0].getProcessData(), Job.Status.RUNNING); //try to suspend process by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper() .suspend(bundles[0].getProcessData(), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -246,7 +237,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.assertSucceeded(prism.getFeedHelper().suspend(feed)); AssertUtil.checkStatus(clusterOC, EntityType.FEED, feed, Job.Status.SUSPENDED); //try to resume feed by User2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper() .resume(feed, MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -263,7 +253,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.checkStatus(clusterOC, EntityType.PROCESS, bundles[0].getProcessData(), Job.Status.SUSPENDED); //try to resume process by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper() .resume(bundles[0].getProcessData(), MerlinConstants.USER2_NAME); AssertUtil.assertFailedWithStatus(serviceResponse, HttpStatus.SC_BAD_REQUEST, @@ -320,7 +309,6 @@ public class AuthorizationTest extends BaseTestClass { InstanceUtil.validateResponse(r, 3, 0, 3, 0, 0); //try to resume suspended instances by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); r = prism.getProcessHelper().getProcessInstanceResume(Util.readEntityName(bundles[0] .getProcessData()), "?start=" + startTime + "&end=" + midTime, MerlinConstants.USER2_NAME); @@ -377,7 +365,6 @@ public class AuthorizationTest extends BaseTestClass { InstanceUtil.validateResponse(r, 5, 3, 0, 2, 0); //try to kill all instances by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); r = prism.getProcessHelper().getProcessInstanceKill(Util .readEntityName(bundles[0].getProcessData()), "?start=" + startTime + "&end=" + endTime, MerlinConstants.USER2_NAME); @@ -436,7 +423,6 @@ public class AuthorizationTest extends BaseTestClass { InstanceUtil.validateResponse(r, 3, 0, 3, 0, 0); //try to kill all instances by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); r = prism.getProcessHelper().getProcessInstanceKill(Util .readEntityName(bundles[0].getProcessData()), "?start=" + startTime + "&end=" + endTime, MerlinConstants.USER2_NAME); @@ -452,9 +438,10 @@ public class AuthorizationTest extends BaseTestClass { // .org/jira/browse/FALCON-388 @Test(enabled = false) public void u1KillSomeU2RerunAllProcessInstances() - throws IOException, JAXBException, + throws IOException, JAXBException, - AuthenticationException, URISyntaxException, OozieClientException { + AuthenticationException, URISyntaxException, OozieClientException, + InterruptedException { String startTime = TimeUtil .getTimeWrtSystemTime(0); String endTime = TimeUtil.addMinsToTime(startTime, 5); @@ -501,7 +488,6 @@ public class AuthorizationTest extends BaseTestClass { //generally 3 instances should be killed, 1 is running and 1 is waiting //try to rerun instances by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); r = prism.getProcessHelper().getProcessInstanceRerun(Util .readEntityName(bundles[0].getProcessData()), "?start=" + startTime + "&end=" + @@ -518,7 +504,8 @@ public class AuthorizationTest extends BaseTestClass { // .org/jira/browse/FALCON-388 @Test(enabled = false) public void u1SubmitU2UpdateFeed() - throws URISyntaxException, IOException, AuthenticationException, JAXBException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + InterruptedException { String feed = bundles[0].getInputFeedFromBundle(); //submit feed bundles[0].submitClusters(prism); @@ -531,7 +518,6 @@ public class AuthorizationTest extends BaseTestClass { String newFeed = Util.setFeedPathValue(feed, baseHDFSDir + "/randomPath" + MINUTE_DATE_PATTERN); //try to update feed by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper().update(feed, newFeed, TimeUtil.getTimeWrtSystemTime(0), MerlinConstants.USER2_NAME); @@ -552,7 +538,6 @@ public class AuthorizationTest extends BaseTestClass { String newFeed = Util.setFeedPathValue(feed, baseHDFSDir + "/randomPath" + MINUTE_DATE_PATTERN); //try to update feed by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getFeedHelper().update(feed, newFeed, TimeUtil.getTimeWrtSystemTime(0), MerlinConstants.USER2_NAME); @@ -576,7 +561,6 @@ public class AuthorizationTest extends BaseTestClass { //update process definition bundles[0].setProcessValidity("2010-01-02T01:00Z", "2020-01-02T01:04Z"); //try to update process by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper().update(bundles[0] .getProcessData(), bundles[0].getProcessData(), TimeUtil.getTimeWrtSystemTime(0), @@ -597,7 +581,6 @@ public class AuthorizationTest extends BaseTestClass { //update process definition bundles[0].setProcessValidity("2010-01-02T01:00Z", "2020-01-02T01:04Z"); //try to update process by U2 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); final ServiceResponse serviceResponse = prism.getProcessHelper().update(bundles[0] .getProcessData(), bundles[0].getProcessData(), TimeUtil.getTimeWrtSystemTime(0), @@ -620,7 +603,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.checkStatus(clusterOC, EntityType.FEED, feed, Job.Status.RUNNING); //by U2 schedule process dependant on scheduled feed by U1 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); ServiceResponse serviceResponse = prism.getProcessHelper() .submitAndSchedule(process, MerlinConstants.USER2_NAME); AssertUtil.assertSucceeded(serviceResponse); @@ -642,7 +624,6 @@ public class AuthorizationTest extends BaseTestClass { MINUTE_DATE_PATTERN); //update feed by U1 - KerberosHelper.loginFromKeytab(MerlinConstants.CURRENT_USER_NAME); serviceResponse = prism.getFeedHelper().update(feed, newFeed, TimeUtil.getTimeWrtSystemTime(0), MerlinConstants.CURRENT_USER_NAME); AssertUtil.assertSucceeded(serviceResponse); @@ -671,7 +652,6 @@ public class AuthorizationTest extends BaseTestClass { AssertUtil.checkStatus(clusterOC, EntityType.FEED, feed, Job.Status.RUNNING); //by U2 schedule process dependent on scheduled feed by U1 - KerberosHelper.loginFromKeytab(MerlinConstants.USER2_NAME); ServiceResponse serviceResponse = prism.getProcessHelper().submitAndSchedule(process, MerlinConstants.USER2_NAME); AssertUtil.assertSucceeded(serviceResponse); @@ -706,7 +686,6 @@ public class AuthorizationTest extends BaseTestClass { @AfterMethod(alwaysRun = true) public void tearDown() { - KerberosHelper.loginFromKeytab(MerlinConstants.CURRENT_USER_NAME); removeBundles(); } http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedLateRerunTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedLateRerunTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedLateRerunTest.java index 925ae4d..ced5fbf 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedLateRerunTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedLateRerunTest.java @@ -87,7 +87,7 @@ public class FeedLateRerunTest extends BaseTestClass { @Test(enabled = true) public void FeedLateRerunTestWithEmptyFolders () throws AuthenticationException, IOException, URISyntaxException, JAXBException, - OozieClientException { + OozieClientException, InterruptedException { Bundle.submitCluster(bundles[0], bundles[1]); String startTime = TimeUtil.getTimeWrtSystemTime(0); String endTime = TimeUtil.addMinsToTime(startTime, 30); @@ -179,7 +179,7 @@ public class FeedLateRerunTest extends BaseTestClass { @Test(enabled = true) public void FeedLateRerunTestWithData () throws AuthenticationException, IOException, URISyntaxException, JAXBException, - OozieClientException { + OozieClientException, InterruptedException { Bundle.submitCluster(bundles[0], bundles[1]); String startTime = TimeUtil.getTimeWrtSystemTime(0); String endTime = TimeUtil.addMinsToTime(startTime, 30); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedReplicationTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedReplicationTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedReplicationTest.java index 6cbb9ab..4ba5840 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedReplicationTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedReplicationTest.java @@ -104,8 +104,8 @@ public class FeedReplicationTest extends BaseTestClass { */ @Test public void replicate1Source1Target() - throws AuthenticationException, IOException, URISyntaxException, JAXBException, - OozieClientException { + throws AuthenticationException, IOException, URISyntaxException, JAXBException, + OozieClientException, InterruptedException { Bundle.submitCluster(bundles[0], bundles[1]); String startTime = TimeUtil.getTimeWrtSystemTime(0); String endTime = TimeUtil.addMinsToTime(startTime, 5); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedSubmitAndScheduleTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedSubmitAndScheduleTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedSubmitAndScheduleTest.java index db82a8c..d066910 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedSubmitAndScheduleTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/FeedSubmitAndScheduleTest.java @@ -82,7 +82,8 @@ public class FeedSubmitAndScheduleTest extends BaseTestClass { * @throws AuthenticationException */ private void submitFirstClusterScheduleFirstFeed() - throws JAXBException, IOException, URISyntaxException, AuthenticationException { + throws JAXBException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { Assert.assertEquals(Util.parseResponse(prism.getClusterHelper() .submitEntity(bundles[0].getClusters().get(0))).getStatusCode(), 200); ServiceResponse response = prism.getFeedHelper().submitAndSchedule(feed); @@ -165,4 +166,4 @@ public class FeedSubmitAndScheduleTest extends BaseTestClass { public void tearDownClass() throws IOException { cleanTestDirs(); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceParamTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceParamTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceParamTest.java index c56310e..88cfc2f 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceParamTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceParamTest.java @@ -96,8 +96,8 @@ public class InstanceParamTest extends BaseTestClass { */ @Test(timeOut = 1200000, enabled = false) public void getParamsValidRequestInstanceWaiting() - throws URISyntaxException, JAXBException, AuthenticationException, IOException, - OozieClientException { + throws URISyntaxException, JAXBException, AuthenticationException, IOException, + OozieClientException, InterruptedException { processBundle.setProcessValidity(startTime, endTime); processBundle.addClusterToBundle(bundles[1].getClusters().get(0), ClusterType.SOURCE, null, null); @@ -115,8 +115,8 @@ public class InstanceParamTest extends BaseTestClass { */ @Test(timeOut = 1200000, enabled = true) public void getParamsValidRequestInstanceSucceeded() - throws URISyntaxException, JAXBException, AuthenticationException, IOException, - OozieClientException { + throws URISyntaxException, JAXBException, AuthenticationException, IOException, + OozieClientException, InterruptedException { processBundle.setProcessValidity(startTime, endTime); processBundle.addClusterToBundle(bundles[1].getClusters().get(0), ClusterType.SOURCE, null, null); @@ -138,8 +138,8 @@ public class InstanceParamTest extends BaseTestClass { */ @Test(timeOut = 1200000, enabled = false) public void getParamsValidRequestInstanceKilled() - throws URISyntaxException, JAXBException, AuthenticationException, IOException, - OozieClientException { + throws URISyntaxException, JAXBException, AuthenticationException, IOException, + OozieClientException, InterruptedException { processBundle.setProcessValidity(startTime, endTime); processBundle.addClusterToBundle(bundles[1].getClusters().get(0), ClusterType.SOURCE, null, null); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceSummaryTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceSummaryTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceSummaryTest.java index b864d8d..bf952f7 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceSummaryTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/InstanceSummaryTest.java @@ -107,8 +107,8 @@ public class InstanceSummaryTest extends BaseTestClass { */ @Test(enabled = true, timeOut = 1200000) public void testSummarySingleClusterProcess() - throws URISyntaxException, JAXBException, IOException, ParseException, - OozieClientException, AuthenticationException { + throws URISyntaxException, JAXBException, IOException, ParseException, + OozieClientException, AuthenticationException, InterruptedException { processBundle.setProcessValidity(startTime, endTime); processBundle.submitFeedsScheduleProcess(prism); InstanceUtil.waitTillInstancesAreCreated(cluster3, processBundle.getProcessData(), 0); @@ -182,7 +182,8 @@ public class InstanceSummaryTest extends BaseTestClass { */ @Test(enabled = true, timeOut = 1200000) public void testSummaryMultiClusterProcess() throws JAXBException, - ParseException, IOException, URISyntaxException, AuthenticationException { + ParseException, IOException, URISyntaxException, AuthenticationException, + InterruptedException { processBundle.setProcessValidity(startTime, endTime); processBundle.addClusterToBundle(bundles[1].getClusters().get(0), ClusterType.SOURCE, null, null); @@ -217,7 +218,8 @@ public class InstanceSummaryTest extends BaseTestClass { */ @Test(enabled = true, timeOut = 1200000) public void testSummaryMultiClusterFeed() throws JAXBException, ParseException, IOException, - URISyntaxException, OozieClientException, AuthenticationException { + URISyntaxException, OozieClientException, AuthenticationException, + InterruptedException { //create desired feed String feed = bundles[0].getDataSets().get(0); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ProcessInstanceStatusTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ProcessInstanceStatusTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ProcessInstanceStatusTest.java index a94cf1a..7b3fb62 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ProcessInstanceStatusTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ProcessInstanceStatusTest.java @@ -168,7 +168,8 @@ public class ProcessInstanceStatusTest extends BaseTestClass { */ @Test(groups = {"singleCluster"}) public void testProcessInstanceStatusDateEmpty() - throws JAXBException, AuthenticationException, IOException, URISyntaxException, OozieClientException { + throws JAXBException, AuthenticationException, IOException, URISyntaxException, + OozieClientException, InterruptedException { bundles[0].setProcessValidity("2010-01-02T01:00Z", "2010-01-02T01:30Z"); bundles[0].setProcessConcurrency(5); bundles[0].submitFeedsScheduleProcess(prism); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/entity/ListEntitiesTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/entity/ListEntitiesTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/entity/ListEntitiesTest.java index d1ae4f0..5abc932 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/entity/ListEntitiesTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/entity/ListEntitiesTest.java @@ -71,7 +71,8 @@ public class ListEntitiesTest extends BaseTestClass { */ @BeforeClass(alwaysRun = true) public void prepareData() - throws IOException, AuthenticationException, JAXBException, URISyntaxException { + throws IOException, AuthenticationException, JAXBException, URISyntaxException, + InterruptedException { uploadDirToClusters(aggregateWorkflowDir, OSUtil.RESOURCES_OOZIE); CleanupUtil.cleanAllEntities(prism); @@ -119,7 +120,7 @@ public class ListEntitiesTest extends BaseTestClass { */ @Test(dataProvider = "getHelpers") public void listEntitiesWithOrderBy(IEntityManagerHelper helper) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { List<EntityResult> entities = helper.listAllEntities("orderBy=name", null).getEntitiesResult().getEntities(); @@ -134,7 +135,7 @@ public class ListEntitiesTest extends BaseTestClass { */ @Test(dataProvider = "getHelpers") public void listEntitiesWithFilterByStatus(IEntityManagerHelper helper) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { String[] statuses = helper.getEntityType().equalsIgnoreCase("cluster") ? new String[]{"SUBMITTED"} : new String[]{"SUBMITTED", "RUNNING"}; @@ -168,7 +169,7 @@ public class ListEntitiesTest extends BaseTestClass { */ @Test(dataProvider = "getHelpers") public void listEntitiesWithOffset(IEntityManagerHelper helper) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { List<EntityResult> allEntities = helper.listAllEntities(null, null).getEntitiesResult().getEntities(); @@ -196,7 +197,7 @@ public class ListEntitiesTest extends BaseTestClass { */ @Test(dataProvider = "getHelpers") public void listEntitiesWithNumResults(IEntityManagerHelper helper) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { List<EntityResult> allEntities = helper.listAllEntities(null, null).getEntitiesResult().getEntities(); @@ -220,7 +221,7 @@ public class ListEntitiesTest extends BaseTestClass { */ @Test(dataProvider = "getHelpers") public void listEntitiesWithTags(IEntityManagerHelper helper) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { List<EntityResult> allEntities = helper.listAllEntities("fields=tags", null).getEntitiesResult().getEntities(); @@ -254,7 +255,7 @@ public class ListEntitiesTest extends BaseTestClass { */ @Test(dataProvider = "getHelpers") public void listEntitiesWithCustomFilter(IEntityManagerHelper helper) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { List<EntityResult> entities = helper.listEntities( "numResults=2&fields=status,tags&filterBy=STATUS:SUBMITTED&orderBy=name&tags=" + tags[2], http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/EntitySummaryTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/EntitySummaryTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/EntitySummaryTest.java index 2bed06f..514bc52 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/EntitySummaryTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/EntitySummaryTest.java @@ -184,8 +184,8 @@ public class EntitySummaryTest extends BaseTestClass { private List<String> scheduleEntityValidateWaitingInstances(ColoHelper cluster, String entity, EntityType entityType, String clusterName) - throws AuthenticationException, IOException, URISyntaxException, JAXBException, - OozieClientException { + throws AuthenticationException, IOException, URISyntaxException, JAXBException, + OozieClientException, InterruptedException { String entityName = Util.readEntityName(entity); IEntityManagerHelper helper; List<String> names = new ArrayList<String>(); @@ -242,7 +242,7 @@ public class EntitySummaryTest extends BaseTestClass { */ private void validateProgressingInstances(List<String> names, EntityType entityType, String clusterName) - throws AuthenticationException, IOException, URISyntaxException { + throws AuthenticationException, IOException, URISyntaxException, InterruptedException { InstancesResult r; IEntityManagerHelper helper; if (entityType == EntityType.FEED) { @@ -307,7 +307,8 @@ public class EntitySummaryTest extends BaseTestClass { */ @Test public void getSummaryFilterBy() - throws URISyntaxException, IOException, AuthenticationException, JAXBException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + InterruptedException { //prepare process template bundles[0].setProcessValidity(startTime, endTime); bundles[0].submitClusters(prism); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ListFeedInstancesTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ListFeedInstancesTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ListFeedInstancesTest.java index 4550320..632d09d 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ListFeedInstancesTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ListFeedInstancesTest.java @@ -72,8 +72,8 @@ public class ListFeedInstancesTest extends BaseTestClass { @BeforeClass(alwaysRun = true) public void setUp() - throws IOException, OozieClientException, JAXBException, AuthenticationException, - URISyntaxException { + throws IOException, OozieClientException, JAXBException, AuthenticationException, + URISyntaxException, InterruptedException { uploadDirToClusters(aggregateWorkflowDir, OSUtil.RESOURCES_OOZIE); startTime = TimeUtil.getTimeWrtSystemTime(-55); endTime = TimeUtil.getTimeWrtSystemTime(5); @@ -91,7 +91,7 @@ public class ListFeedInstancesTest extends BaseTestClass { * 3 waiting and 6 killed. Testing is based on expected instances statuses. */ private void prepareScenario() throws AuthenticationException, IOException, URISyntaxException, - JAXBException, OozieClientException { + JAXBException, OozieClientException, InterruptedException { bundles[0].setInputFeedPeriodicity(5, Frequency.TimeUnit.minutes); bundles[0].setInputFeedDataPath(feedDataLocation); String feed = bundles[0].getInputFeedFromBundle(); @@ -174,8 +174,8 @@ public class ListFeedInstancesTest extends BaseTestClass { */ @Test public void testFeedOrderBy() - throws URISyntaxException, OozieClientException, JAXBException, AuthenticationException, - IOException { + throws URISyntaxException, OozieClientException, JAXBException, AuthenticationException, + IOException, InterruptedException { SoftAssert softAssert = new SoftAssert(); //orderBy start time InstancesResult r = prism.getFeedHelper().listInstances(feedName, @@ -223,8 +223,8 @@ public class ListFeedInstancesTest extends BaseTestClass { */ @Test public void testFeedStartEnd() - throws URISyntaxException, OozieClientException, JAXBException, AuthenticationException, - IOException { + throws URISyntaxException, OozieClientException, JAXBException, AuthenticationException, + IOException, InterruptedException { //actual start/end values. InstancesResult r = prism.getFeedHelper().listInstances(feedName, "start=" + startTime + "&end=" + endTime, null); @@ -290,7 +290,7 @@ public class ListFeedInstancesTest extends BaseTestClass { */ @Test public void testFeedOffsetNumResults() - throws URISyntaxException, IOException, AuthenticationException { + throws URISyntaxException, IOException, AuthenticationException, InterruptedException { //check the default value of the numResults param. Expecting 10 instances. InstancesResult r = prism.getFeedHelper().listInstances(feedName, null, null); InstanceUtil.validateResponse(r, 10, 1, 1, 4, 4); @@ -347,7 +347,8 @@ public class ListFeedInstancesTest extends BaseTestClass { */ @Test public void testFeedFilterBy() - throws OozieClientException, AuthenticationException, IOException, URISyntaxException { + throws OozieClientException, AuthenticationException, IOException, URISyntaxException, + InterruptedException { //test with the filterBy status. InstancesResult r = prism.getFeedHelper().listInstances(feedName, "filterBy=STATUS:RUNNING", null); @@ -394,7 +395,7 @@ public class ListFeedInstancesTest extends BaseTestClass { */ @Test public void testFeedCustomFilter() - throws URISyntaxException, IOException, AuthenticationException { + throws URISyntaxException, IOException, AuthenticationException, InterruptedException { String params = "start=" + startTime + "&filterBy=status:RUNNING"; InstancesResult r = prism.getFeedHelper().listInstances(feedName, params, null); InstanceUtil.validateResponse(r, 1, 1, 0, 0, 0); http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ProcessPipelineTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ProcessPipelineTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ProcessPipelineTest.java index 3945e0b..ee5316d 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ProcessPipelineTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/lineage/ProcessPipelineTest.java @@ -82,7 +82,8 @@ public class ProcessPipelineTest extends BaseTestClass{ */ @Test public void listPipeline() - throws URISyntaxException, IOException, AuthenticationException, JAXBException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + InterruptedException { //match processes to pipelines HashMap<String, List<String>> map = new HashMap<String, List<String>>(); //index for few different pipelines @@ -126,8 +127,8 @@ public class ProcessPipelineTest extends BaseTestClass{ */ @Test public void testProcessWithPipeline() - throws URISyntaxException, IOException, AuthenticationException, JAXBException, - SAXException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + SAXException, InterruptedException { String pipeline = "samplePipeline"; bundles[0].setProcessPipeline(pipeline); bundles[0].submitProcess(true); @@ -150,7 +151,8 @@ public class ProcessPipelineTest extends BaseTestClass{ */ @Test(dataProvider = "data") public void testPipelines(String pipeline, String action, boolean shouldSucceed) - throws URISyntaxException, IOException, AuthenticationException, JAXBException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + InterruptedException { bundles[0].setProcessPipeline(pipeline); if (action.equals("list")){ if (shouldSucceed){ http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/NewPrismProcessUpdateTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/NewPrismProcessUpdateTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/NewPrismProcessUpdateTest.java index db29b19..3e85cb3 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/NewPrismProcessUpdateTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/NewPrismProcessUpdateTest.java @@ -1450,7 +1450,7 @@ public class NewPrismProcessUpdateTest extends BaseTestClass { @Test(timeOut = 1200000) public void updateProcessWorkflowXml() throws URISyntaxException, JAXBException, - IOException, OozieClientException, AuthenticationException { + IOException, OozieClientException, AuthenticationException, InterruptedException { Bundle b = BundleUtil.readELBundle(); HadoopFileEditor hadoopFileEditor = null; try { http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/b85573e2/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/RescheduleProcessInFinalStatesTest.java ---------------------------------------------------------------------- diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/RescheduleProcessInFinalStatesTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/RescheduleProcessInFinalStatesTest.java index df9930d..e1cdab4 100644 --- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/RescheduleProcessInFinalStatesTest.java +++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/prism/RescheduleProcessInFinalStatesTest.java @@ -199,7 +199,8 @@ public class RescheduleProcessInFinalStatesTest extends BaseTestClass { * @throws JAXBException */ private void checkNotFoundDefinition(String process) - throws URISyntaxException, IOException, AuthenticationException, JAXBException { + throws URISyntaxException, IOException, AuthenticationException, JAXBException, + InterruptedException { ServiceResponse r = prism.getProcessHelper().getEntityDefinition(process); Assert.assertTrue(r.getMessage().contains("(process) not found")); AssertUtil.assertFailed(r);