Repository: falcon Updated Branches: refs/heads/master 93e178392 -> 35b395796
FALCON-1495 In instance status list, show all runs for instances when requested by user. Contributed by Narayan Periwal. Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/35b39579 Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/35b39579 Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/35b39579 Branch: refs/heads/master Commit: 35b395796164c938aec28c4b8565550007a77466 Parents: 93e1783 Author: Ajay Yadava <[email protected]> Authored: Mon Jan 11 19:53:37 2016 +0530 Committer: Ajay Yadava <[email protected]> Committed: Mon Jan 11 19:53:37 2016 +0530 ---------------------------------------------------------------------- CHANGES.txt | 2 + .../apache/falcon/cli/FalconInstanceCLI.java | 10 ++- .../falcon/client/AbstractFalconClient.java | 10 +-- .../org/apache/falcon/client/FalconClient.java | 45 +++++++---- .../workflow/engine/AbstractWorkflowEngine.java | 2 +- docs/src/site/twiki/FalconCLI.twiki | 3 + .../src/site/twiki/falconcli/ListInstance.twiki | 1 + .../site/twiki/falconcli/StatusInstance.twiki | 1 + docs/src/site/twiki/restapi/InstanceList.twiki | 51 ++++++++++++ .../src/site/twiki/restapi/InstanceStatus.twiki | 1 + .../workflow/engine/OozieWorkflowEngine.java | 81 +++++++++++++++++--- .../resource/AbstractInstanceManager.java | 12 +-- .../AbstractSchedulableEntityManager.java | 2 +- .../resource/proxy/InstanceManagerProxy.java | 10 ++- .../workflow/engine/FalconWorkflowEngine.java | 4 +- .../apache/falcon/unit/FalconUnitClient.java | 12 +-- .../falcon/unit/LocalInstanceManager.java | 4 +- .../apache/falcon/unit/FalconUnitTestBase.java | 5 +- .../apache/falcon/resource/InstanceManager.java | 10 ++- .../InstanceSchedulerManagerJerseyIT.java | 2 +- .../resource/ProcessInstanceManagerIT.java | 18 ++--- 21 files changed, 211 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 7db6ecd..31f0fdf 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,6 +12,8 @@ Proposed Release Version: 0.9 INCOMPATIBLE CHANGES NEW FEATURES + FALCON-1495 In instance status list, show all runs for instances when requested by user(Narayan Periwal via Ajay Yadava) + FALCON-1230 Data based notification Service to notify execution instances when data becomes available(Pavan Kumar Kolamuri via Ajay Yadava) FALCON-1679 API to get type of scheduler(native/oozie) (Pallavi Rao) http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/client/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java b/client/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java index bfb1d65..544bda8 100644 --- a/client/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java +++ b/client/src/main/java/org/apache/falcon/cli/FalconInstanceCLI.java @@ -45,6 +45,7 @@ public class FalconInstanceCLI extends FalconCLI { private static final String KILL_OPT = "kill"; private static final String RERUN_OPT = "rerun"; private static final String LOG_OPT = "logs"; + private static final String ALL_ATTEMPTS = "allAttempts"; private static final String RUNID_OPT = "runid"; private static final String CLUSTERS_OPT = "clusters"; private static final String SOURCECLUSTER_OPT = "sourceClusters"; @@ -151,6 +152,8 @@ public class FalconInstanceCLI extends FalconCLI { Option instanceTime = new Option(INSTANCE_TIME_OPT, true, "Time for an instance"); + Option allAttempts = new Option(ALL_ATTEMPTS, false, "To get all attempts of corresponding instances"); + instanceOptions.addOption(url); instanceOptions.addOptionGroup(group); instanceOptions.addOption(start); @@ -172,6 +175,7 @@ public class FalconInstanceCLI extends FalconCLI { instanceOptions.addOption(doAs); instanceOptions.addOption(debug); instanceOptions.addOption(instanceTime); + instanceOptions.addOption(allAttempts); return instanceOptions; } @@ -224,10 +228,14 @@ public class FalconInstanceCLI extends FalconCLI { result = ResponseHelper.getString(client.getRunningInstances(type, entity, colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, doAsUser)); } else if (optionsList.contains(STATUS_OPT) || optionsList.contains(LIST_OPT)) { + boolean allAttempts = false; + if (optionsList.contains(ALL_ATTEMPTS)) { + allAttempts = true; + } validateOrderBy(orderBy, instanceAction); validateFilterBy(filterBy, instanceAction); result = ResponseHelper.getString(client.getStatusOfInstances(type, entity, start, end, colo, - lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, doAsUser)); + lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, doAsUser, allAttempts)); } else if (optionsList.contains(SUMMARY_OPT)) { validateOrderBy(orderBy, "summary"); validateFilterBy(filterBy, "summary"); http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java ---------------------------------------------------------------------- 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 e59af24..4f86d9b 100644 --- a/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java +++ b/client/src/main/java/org/apache/falcon/client/AbstractFalconClient.java @@ -131,15 +131,13 @@ public abstract class AbstractFalconClient { * @param offset offset while displaying results * @param numResults num of Results to output * @param doAsUser proxy user + * @param allAttempts To get the instances corresponding to each run-id * @return * @throws FalconCLIException */ - public abstract InstancesResult getStatusOfInstances(String type, String entity, - String start, String end, - String colo, List<LifeCycle> lifeCycles, String filterBy, - String orderBy, String sortOrder, - Integer offset, Integer numResults, - String doAsUser) throws FalconCLIException; + public abstract InstancesResult getStatusOfInstances(String type, String entity, String start, String end, String + colo, List<LifeCycle> lifeCycles, String filterBy, String orderBy, String sortOrder, Integer offset, Integer + numResults, String doAsUser, Boolean allAttempts) throws FalconCLIException; /** * Suspend an entity. http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/client/src/main/java/org/apache/falcon/client/FalconClient.java ---------------------------------------------------------------------- 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 2188ba4..8e2ec40 100644 --- a/client/src/main/java/org/apache/falcon/client/FalconClient.java +++ b/client/src/main/java/org/apache/falcon/client/FalconClient.java @@ -492,14 +492,13 @@ public class FalconClient extends AbstractFalconClient { .getEntity(InstancesResult.class); } - public InstancesResult getStatusOfInstances(String type, String entity, - String start, String end, - String colo, List<LifeCycle> lifeCycles, String filterBy, - String orderBy, String sortOrder, - Integer offset, Integer numResults, String doAsUser) throws FalconCLIException { - + @Override + public InstancesResult getStatusOfInstances(String type, String entity, String start, String end, String colo, + List<LifeCycle> lifeCycles, String filterBy, String orderBy, + String sortOrder, Integer offset, Integer numResults, String doAsUser, + Boolean allAttempts) throws FalconCLIException { return sendInstanceRequest(Instances.STATUS, type, entity, start, end, - null, null, colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, doAsUser) + null, null, colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, doAsUser, allAttempts) .getEntity(InstancesResult.class); } @@ -721,7 +720,7 @@ public class FalconClient extends AbstractFalconClient { String fields, String nameSubsequence, String tagKeywords, String filterBy, String tags, String orderBy, String sortOrder, Integer offset, Integer numResults, Integer numInstances, Boolean isForced, - String doAsUser) { + String doAsUser, Boolean allAttempts) { if (StringUtils.isNotEmpty(fields)) { resource = resource.queryParam("fields", fields); } @@ -771,6 +770,9 @@ public class FalconClient extends AbstractFalconClient { if (StringUtils.isNotEmpty(doAsUser)) { resource = resource.queryParam(FalconCLI.DO_AS_OPT, doAsUser); } + if (allAttempts != null) { + resource = resource.queryParam("allAttempts", String.valueOf(allAttempts)); + } return resource; } @@ -788,7 +790,7 @@ public class FalconClient extends AbstractFalconClient { resource = addParamsToResource(resource, start, end, null, null, fields, null, null, filterBy, filterTags, orderBy, sortOrder, - offset, numResults, numInstances, null, doAsUser); + offset, numResults, numInstances, null, doAsUser, false); ClientResponse clientResponse = resource .header("Cookie", AUTH_COOKIE_EQ + authenticationToken) @@ -898,7 +900,7 @@ public class FalconClient extends AbstractFalconClient { String runid, String colo, List<LifeCycle> lifeCycles, String doAsUser) throws FalconCLIException { return sendInstanceRequest(instances, type, entity, start, end, props, - runid, colo, lifeCycles, "", "", "", 0, null, doAsUser) + runid, colo, lifeCycles, "", "", "", 0, null, doAsUser, null) .getEntity(InstancesResult.class); } @@ -907,31 +909,40 @@ public class FalconClient extends AbstractFalconClient { String runid, String colo, List<LifeCycle> lifeCycles, Boolean isForced, String doAsUser) throws FalconCLIException { return sendInstanceRequest(instances, type, entity, start, end, props, - runid, colo, lifeCycles, "", "", "", 0, null, isForced, doAsUser).getEntity(InstancesResult.class); + runid, colo, lifeCycles, "", "", "", 0, null, isForced, doAsUser, + null).getEntity(InstancesResult.class); } - - private ClientResponse sendInstanceRequest(Instances instances, String type, String entity, String start, String end, InputStream props, String runid, String colo, List<LifeCycle> lifeCycles, String filterBy, String orderBy, String sortOrder, Integer offset, Integer numResults, String doAsUser) throws FalconCLIException { return sendInstanceRequest(instances, type, entity, start, end, props, - runid, colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, null, doAsUser); + runid, colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, null, doAsUser, null); + } + + private ClientResponse sendInstanceRequest(Instances instances, String type, String entity, String start, + String end, InputStream props, String runid, String colo, + List<LifeCycle> lifeCycles, String filterBy, String orderBy, + String sortOrder, Integer offset, Integer numResults, String doAsUser, + Boolean allAttempts) throws FalconCLIException { + return sendInstanceRequest(instances, type, entity, start, end, props, runid, colo, lifeCycles, filterBy, + orderBy, sortOrder, offset, numResults, null, doAsUser, allAttempts); } private ClientResponse sendInstanceRequest(Instances instances, String type, String entity, String start, String end, InputStream props, String runid, String colo, List<LifeCycle> lifeCycles, String filterBy, String orderBy, String sortOrder, Integer offset, Integer numResults, Boolean isForced, - String doAsUser) throws FalconCLIException { + String doAsUser, Boolean allAttempts) throws FalconCLIException { checkType(type); WebResource resource = service.path(instances.path).path(type) .path(entity); resource = addParamsToResource(resource, start, end, runid, colo, - null, null, null, filterBy, null, orderBy, sortOrder, offset, numResults, null, isForced, doAsUser); + null, null, null, filterBy, null, orderBy, sortOrder, offset, numResults, null, isForced, doAsUser, + allAttempts); if (lifeCycles != null) { checkLifeCycleOption(lifeCycles, type); @@ -1037,7 +1048,7 @@ public class FalconClient extends AbstractFalconClient { WebResource resource = service.path(entities.path) .path(entityType); resource = addParamsToResource(resource, null, null, null, null, fields, nameSubsequence, tagKeywords, - filterBy, filterTags, orderBy, sortOrder, offset, numResults, null, null, doAsUser); + filterBy, filterTags, orderBy, sortOrder, offset, numResults, null, null, doAsUser, false); ClientResponse clientResponse = resource .header("Cookie", AUTH_COOKIE_EQ + authenticationToken) http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/common/src/main/java/org/apache/falcon/workflow/engine/AbstractWorkflowEngine.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/falcon/workflow/engine/AbstractWorkflowEngine.java b/common/src/main/java/org/apache/falcon/workflow/engine/AbstractWorkflowEngine.java index b53efe6..b899a58 100644 --- a/common/src/main/java/org/apache/falcon/workflow/engine/AbstractWorkflowEngine.java +++ b/common/src/main/java/org/apache/falcon/workflow/engine/AbstractWorkflowEngine.java @@ -87,7 +87,7 @@ public abstract class AbstractWorkflowEngine { List<LifeCycle> lifeCycles) throws FalconException; public abstract InstancesResult getStatus(Entity entity, Date start, Date end, - List<LifeCycle> lifeCycles) throws FalconException; + List<LifeCycle> lifeCycles, Boolean allAttempts) throws FalconException; public abstract InstancesSummaryResult getSummary(Entity entity, Date start, Date end, List<LifeCycle> lifeCycles) throws FalconException; http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/docs/src/site/twiki/FalconCLI.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/FalconCLI.twiki b/docs/src/site/twiki/FalconCLI.twiki index 26e6b33..667d85b 100644 --- a/docs/src/site/twiki/FalconCLI.twiki +++ b/docs/src/site/twiki/FalconCLI.twiki @@ -269,6 +269,7 @@ $FALCON_HOME/bin/falcon instance -type <<feed/process>> -name <<name>> -status Optional Args : -start "yyyy-MM-dd'T'HH:mm'Z'" -end "yyyy-MM-dd'T'HH:mm'Z'" -colo <<colo>> -filterBy <<field1:value1,field2:value2>> -lifecycle <<lifecycles>> -orderBy field -sortOrder <<sortOrder>> -offset 0 -numResults 10 +-allAttempts To get all the attempts for corresponding instances <a href="./Restapi/InstanceStatus.html"> Optional params described here.</a> @@ -287,6 +288,8 @@ $FALCON_HOME/bin/falcon instance -type <<feed/process>> -name <<name>> -list Optional Args : -start "yyyy-MM-dd'T'HH:mm'Z'" -end "yyyy-MM-dd'T'HH:mm'Z'" -colo <<colo>> -lifecycle <<lifecycles>> -filterBy <<field1:value1,field2:value2>> -orderBy field -sortOrder <<sortOrder>> -offset 0 -numResults 10 +-allAttempts To get all the attempts for corresponding instances + <a href="./Restapi/InstanceList.html">Optional params described here.</a> http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/docs/src/site/twiki/falconcli/ListInstance.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/falconcli/ListInstance.twiki b/docs/src/site/twiki/falconcli/ListInstance.twiki index 28e9fed..1203629 100644 --- a/docs/src/site/twiki/falconcli/ListInstance.twiki +++ b/docs/src/site/twiki/falconcli/ListInstance.twiki @@ -15,5 +15,6 @@ $FALCON_HOME/bin/falcon instance -type <<feed/process>> -name <<name>> -list Optional Args : -start "yyyy-MM-dd'T'HH:mm'Z'" -end "yyyy-MM-dd'T'HH:mm'Z'" -colo <<colo>> -lifecycle <<lifecycles>> -filterBy <<field1:value1,field2:value2>> -orderBy field -sortOrder <<sortOrder>> -offset 0 -numResults 10 +-allAttempts To get all the attempts for corresponding instances <a href="../Restapi/InstanceList.html">Optional params described here.</a> http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/docs/src/site/twiki/falconcli/StatusInstance.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/falconcli/StatusInstance.twiki b/docs/src/site/twiki/falconcli/StatusInstance.twiki index f0392b3..047d334 100644 --- a/docs/src/site/twiki/falconcli/StatusInstance.twiki +++ b/docs/src/site/twiki/falconcli/StatusInstance.twiki @@ -16,5 +16,6 @@ $FALCON_HOME/bin/falcon instance -type <<feed/process>> -name <<name>> -status Optional Args : -start "yyyy-MM-dd'T'HH:mm'Z'" -end "yyyy-MM-dd'T'HH:mm'Z'" -colo <<colo>> -filterBy <<field1:value1,field2:value2>> -lifecycle <<lifecycles>> -orderBy field -sortOrder <<sortOrder>> -offset 0 -numResults 10 +-allAttempts To get all the attempts for corresponding instances <a href="../Restapi/InstanceStatus.html"> Optional params described here.</a> http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/docs/src/site/twiki/restapi/InstanceList.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/restapi/InstanceList.twiki b/docs/src/site/twiki/restapi/InstanceList.twiki index 5dee8a5..214c22f 100644 --- a/docs/src/site/twiki/restapi/InstanceList.twiki +++ b/docs/src/site/twiki/restapi/InstanceList.twiki @@ -25,6 +25,7 @@ Get list of all instances of a given entity. * offset <optional param> Show results from the offset, used for pagination. Defaults to 0. * numResults <optional param> Number of results to show per request, used for pagination. Only integers > 0 are valid, Default is 10. * doAs <optional query param> allows the current user to impersonate the user passed in doAs when interacting with the Falcon system. + * allAttempts <optional query param> To get all the attempts for corresponding instances. ---++ Results List of instances of given entity. @@ -98,3 +99,53 @@ GET http://localhost:15000/api/instance/list/process/SampleProcess?colo=*&start= "status": "SUCCEEDED" } </verbatim> + + +---+++ Rest Call +<verbatim> +GET https://localhost:15443/api/instance/status/process/oozie-mr-process?user.name=narayan&start=2013-11-15T00:05Z&end=2013-11-15T01:00Z&colo=*&offset=0&allAttempts=true +</verbatim> +---+++ Result +<verbatim> +{ + "status":"SUCCEEDED", + "message":"default/STATUS\n", + "requestId":"default/942519651@qtp-1386909980-16 - 5b11a8ba-402b-4cc7-969c-256e0ed18ae2\n", + "instances":[ + { + "instance":"2013-11-15T00:05Z", + "status":"SUCCEEDED", + "logFile":"http://IM1948-X0:11000/oozie?job=0000010-160106121750678-oozie-oozi-W", + "cluster":"local", + "startTime":"2016-01-06T12:39:22+05:30", + "endTime":"2016-01-06T12:40:05+05:30", + "runId":0, + "details":"", + "actions":[ + { + "action":"mr-node", + "status":"SUCCEEDED", + "logFile":"http://localhost:8088/proxy/application_1452062826344_0010/" + } + ] + }, + { + "instance":"2013-11-15T00:05Z", + "status":"SUCCEEDED", + "logFile":"http://IM1948-X0:11000/oozie?job=0000011-160106121750678-oozie-oozi-W", + "cluster":"local", + "startTime":"2016-01-06T12:40:27+05:30", + "endTime":"2016-01-06T12:41:05+05:30", + "runId":0, + "details":"", + "actions":[ + { + "action":"mr-node", + "status":"SUCCEEDED", + "logFile":"http://localhost:8088/proxy/application_1452062826344_0012/" + } + ] + } + ] +} +</verbatim> http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/docs/src/site/twiki/restapi/InstanceStatus.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/restapi/InstanceStatus.twiki b/docs/src/site/twiki/restapi/InstanceStatus.twiki index 53f512f..2b7b643 100644 --- a/docs/src/site/twiki/restapi/InstanceStatus.twiki +++ b/docs/src/site/twiki/restapi/InstanceStatus.twiki @@ -25,6 +25,7 @@ Get status of a specific instance of an entity. * offset <optional param> Show results from the offset, used for pagination. Defaults to 0. * numResults <optional param> Number of results to show per request, used for pagination. Only integers > 0 are valid, Default is 10. * doAs <optional query param> allows the current user to impersonate the user passed in doAs when interacting with the Falcon system. + * allAttempts <optional query param> To get all the attempts for corresponding instances. ---++ Results Status of the specified instance along with job urls for all actions of user workflow and non-succeeded actions of the main-workflow. http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java ---------------------------------------------------------------------- diff --git a/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java b/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java index cf0e30d..07eb47c 100644 --- a/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java +++ b/oozie/src/main/java/org/apache/falcon/workflow/engine/OozieWorkflowEngine.java @@ -575,9 +575,9 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine { @Override public InstancesResult getStatus(Entity entity, Date start, Date end, - List<LifeCycle> lifeCycles) throws FalconException { + List<LifeCycle> lifeCycles, Boolean allAttempts) throws FalconException { - return doJobAction(JobAction.STATUS, entity, start, end, null, lifeCycles); + return doJobAction(JobAction.STATUS, entity, start, end, null, lifeCycles, allAttempts); } @Override @@ -624,8 +624,21 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine { } } + private List<WorkflowJob> getWfsForCoordAction(String cluster, String coordActionId) throws FalconException { + try { + return OozieClientFactory.get(cluster).getWfsForCoordAction(coordActionId); + } catch (OozieClientException e) { + throw new FalconException(e); + } + } + private InstancesResult doJobAction(JobAction action, Entity entity, Date start, Date end, Properties props, List<LifeCycle> lifeCycles) throws FalconException { + return doJobAction(action, entity, start, end, props, lifeCycles, null); + } + + private InstancesResult doJobAction(JobAction action, Entity entity, Date start, Date end, Properties props, + List<LifeCycle> lifeCycles, Boolean allAttempts) throws FalconException { Map<String, List<CoordinatorAction>> actionsMap = getCoordActions(entity, start, end, lifeCycles); List<String> clusterList = getIncludedClusters(props, FALCON_INSTANCE_ACTION_CLUSTERS); List<String> sourceClusterList = getIncludedClusters(props, FALCON_INSTANCE_SOURCE_CLUSTERS); @@ -650,20 +663,39 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine { } instanceCount++; String nominalTimeStr = SchemaHelper.formatDateUTC(coordinatorAction.getNominalTime()); - + List<InstancesResult.Instance> instanceList = new ArrayList<>(); InstancesResult.Instance instance = new InstancesResult.Instance(cluster, nominalTimeStr, null); instance.sourceCluster = sourceCluster; - try { - performAction(cluster, action, coordinatorAction, props, instance); - } catch (FalconException e) { - LOG.warn("Unable to perform action {} on cluster", action, e); - instance.status = WorkflowStatus.ERROR; - overallStatus = APIResult.Status.PARTIAL; + if (action.equals(JobAction.STATUS) && Boolean.TRUE.equals(allAttempts)) { + try { + performAction(cluster, action, coordinatorAction, props, instance); + if (instance.getRunId() > 0) { + instanceList = getAllInstances(cluster, coordinatorAction, nominalTimeStr); + } else { + instanceList.add(instance); + } + } catch (FalconException e) { + LOG.warn("Unable to perform action {} on cluster", action, e); + instance.status = WorkflowStatus.ERROR; + overallStatus = APIResult.Status.PARTIAL; + } + for (InstancesResult.Instance instanceResult : instanceList) { + instanceResult.details = coordinatorAction.getMissingDependencies(); + instanceResult.sourceCluster = sourceCluster; + instances.add(instanceResult); + } + } else { + try { + performAction(cluster, action, coordinatorAction, props, instance); + } catch (FalconException e) { + LOG.warn("Unable to perform action {} on cluster", action, e); + instance.status = WorkflowStatus.ERROR; + overallStatus = APIResult.Status.PARTIAL; + } + instance.details = coordinatorAction.getMissingDependencies(); + instances.add(instance); } - - instance.details = coordinatorAction.getMissingDependencies(); - instances.add(instance); } } if (instanceCount < 2 && overallStatus == APIResult.Status.PARTIAL) { @@ -755,6 +787,7 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine { List<InstancesResult.InstanceAction> instanceActions = new ArrayList<InstancesResult.InstanceAction>(); List<WorkflowAction> wfActions = wfJob.getActions(); + // We wanna capture job urls for all user-actions & non succeeded actions of the main workflow for (WorkflowAction action : wfActions) { if (action.getType().equalsIgnoreCase("sub-workflow") && StringUtils.isNotEmpty(action.getExternalId())) { @@ -816,6 +849,29 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine { } } + private List<InstancesResult.Instance> getAllInstances(String cluster, CoordinatorAction coordinatorAction, + String nominalTimeStr) throws FalconException { + List<InstancesResult.Instance> instanceList = new ArrayList<>(); + if (StringUtils.isNotBlank(coordinatorAction.getExternalId())) { + List<WorkflowJob> workflowJobList = getWfsForCoordAction(cluster, coordinatorAction.getExternalId()); + if (workflowJobList != null && workflowJobList.size()>0) { + for (WorkflowJob workflowJob : workflowJobList) { + InstancesResult.Instance newInstance = new InstancesResult.Instance(cluster, nominalTimeStr, null); + WorkflowJob wfJob = getWorkflowInfo(cluster, workflowJob.getId()); + if (wfJob!=null) { + newInstance.startTime = wfJob.getStartTime(); + newInstance.endTime = wfJob.getEndTime(); + newInstance.logFile = wfJob.getConsoleUrl(); + populateInstanceActions(cluster, wfJob, newInstance); + newInstance.status = WorkflowStatus.valueOf(mapActionStatus(wfJob.getStatus().name())); + instanceList.add(newInstance); + } + } + } + } + return instanceList; + } + private void performAction(String cluster, JobAction action, CoordinatorAction coordinatorAction, Properties props, InstancesResult.Instance instance) throws FalconException { WorkflowJob jobInfo = null; @@ -826,6 +882,7 @@ public class OozieWorkflowEngine extends AbstractWorkflowEngine { instance.startTime = jobInfo.getStartTime(); instance.endTime = jobInfo.getEndTime(); instance.logFile = jobInfo.getConsoleUrl(); + instance.runId = jobInfo.getRun(); } switch (action) { http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/prism/src/main/java/org/apache/falcon/resource/AbstractInstanceManager.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/resource/AbstractInstanceManager.java b/prism/src/main/java/org/apache/falcon/resource/AbstractInstanceManager.java index 9e81209..87bebd6 100644 --- a/prism/src/main/java/org/apache/falcon/resource/AbstractInstanceManager.java +++ b/prism/src/main/java/org/apache/falcon/resource/AbstractInstanceManager.java @@ -153,15 +153,15 @@ public abstract class AbstractInstanceManager extends AbstractEntityManager { public InstancesResult getInstances(String type, String entity, String startStr, String endStr, String colo, List<LifeCycle> lifeCycles, String filterBy, String orderBy, String sortOrder, - Integer offset, Integer numResults) { + Integer offset, Integer numResults, Boolean allAttempts) { return getStatus(type, entity, startStr, endStr, colo, lifeCycles, - filterBy, orderBy, sortOrder, offset, numResults); + filterBy, orderBy, sortOrder, offset, numResults, allAttempts); } public InstancesResult getStatus(String type, String entity, String startStr, String endStr, String colo, List<LifeCycle> lifeCycles, String filterBy, String orderBy, String sortOrder, - Integer offset, Integer numResults) { + Integer offset, Integer numResults, Boolean allAttempts) { checkColo(colo); checkType(type); try { @@ -174,7 +174,7 @@ public abstract class AbstractInstanceManager extends AbstractEntityManager { // LifeCycle lifeCycleObject = EntityUtil.getLifeCycle(lifeCycle); AbstractWorkflowEngine wfEngine = getWorkflowEngine(entityObject); return getInstanceResultSubset(wfEngine.getStatus(entityObject, - startAndEndDate.first, startAndEndDate.second, lifeCycles), + startAndEndDate.first, startAndEndDate.second, lifeCycles, allAttempts), filterBy, orderBy, sortOrder, offset, numResults); } catch (FalconException e) { LOG.error("Failed to get instances status", e); @@ -270,7 +270,7 @@ public abstract class AbstractInstanceManager extends AbstractEntityManager { lifeCycles = checkAndUpdateLifeCycle(lifeCycles, type); // getStatus does all validations and filters clusters InstancesResult result = getStatus(type, entity, startStr, endStr, - colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults); + colo, lifeCycles, filterBy, orderBy, sortOrder, offset, numResults, null); LogProvider logProvider = new LogProvider(); Entity entityObject = EntityUtil.getEntity(type, entity); for (Instance instance : result.getInstances()) { @@ -795,7 +795,7 @@ public abstract class AbstractInstanceManager extends AbstractEntityManager { List<LifeCycle> lifeCycles = new ArrayList<LifeCycle>(); lifeCycles.add(LifeCycle.valueOf(LifeCycle.EXECUTION.name())); Date endRange = new Date(instanceTime.getTime() + 200); - Instance[] response = wfEngine.getStatus(process, instanceTime, endRange, lifeCycles).getInstances(); + Instance[] response = wfEngine.getStatus(process, instanceTime, endRange, lifeCycles, null).getInstances(); if (response.length > 0) { return response[0].getStatus(); } http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/prism/src/main/java/org/apache/falcon/resource/AbstractSchedulableEntityManager.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/resource/AbstractSchedulableEntityManager.java b/prism/src/main/java/org/apache/falcon/resource/AbstractSchedulableEntityManager.java index 18df32f..6ca910e 100644 --- a/prism/src/main/java/org/apache/falcon/resource/AbstractSchedulableEntityManager.java +++ b/prism/src/main/java/org/apache/falcon/resource/AbstractSchedulableEntityManager.java @@ -310,7 +310,7 @@ public abstract class AbstractSchedulableEntityManager extends AbstractInstanceM InstancesResult instancesResult = getInstances(entity.getEntityType().name(), entity.getName(), SchemaHelper.getDateFormat().format(startAndEndDates.first), SchemaHelper.getDateFormat().format(startAndEndDates.second), - colo, null, "", "", "", 0, numInstances); + colo, null, "", "", "", 0, numInstances, null); /* ToDo - Use oozie bulk API after FALCON-591 is implemented * getBulkInstances(entity, cluster, http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/prism/src/main/java/org/apache/falcon/resource/proxy/InstanceManagerProxy.java ---------------------------------------------------------------------- diff --git a/prism/src/main/java/org/apache/falcon/resource/proxy/InstanceManagerProxy.java b/prism/src/main/java/org/apache/falcon/resource/proxy/InstanceManagerProxy.java index 0c6be2d..4951c4a 100644 --- a/prism/src/main/java/org/apache/falcon/resource/proxy/InstanceManagerProxy.java +++ b/prism/src/main/java/org/apache/falcon/resource/proxy/InstanceManagerProxy.java @@ -175,14 +175,15 @@ public class InstanceManagerProxy extends AbstractInstanceManager { @DefaultValue("") @QueryParam("orderBy") final String orderBy, @DefaultValue("") @QueryParam("sortOrder") final String sortOrder, @DefaultValue("0") @QueryParam("offset") final Integer offset, - @QueryParam("numResults") Integer numResults) { + @QueryParam("numResults") Integer numResults, + @Dimension("allAttempts") @QueryParam("allAttempts") final Boolean allAttempts) { final Integer resultsPerPage = numResults == null ? getDefaultResultsPerPage() : numResults; return new InstanceProxy<InstancesResult>(InstancesResult.class) { @Override protected InstancesResult doExecute(String colo) throws FalconException { return getInstanceManager(colo).invoke("getInstances", type, entity, startStr, endStr, colo, lifeCycles, - filterBy, orderBy, sortOrder, offset, resultsPerPage); + filterBy, orderBy, sortOrder, offset, resultsPerPage, allAttempts); } }.execute(colo, type, entity); } @@ -227,14 +228,15 @@ public class InstanceManagerProxy extends AbstractInstanceManager { @DefaultValue("") @QueryParam("orderBy") final String orderBy, @DefaultValue("") @QueryParam("sortOrder") final String sortOrder, @DefaultValue("0") @QueryParam("offset") final Integer offset, - @QueryParam("numResults") final Integer numResults) { + @QueryParam("numResults") final Integer numResults, + @Dimension("allAttempts") @QueryParam("allAttempts") final Boolean allAttempts) { final Integer resultsPerPage = numResults == null ? getDefaultResultsPerPage() : numResults; return new InstanceProxy<InstancesResult>(InstancesResult.class) { @Override protected InstancesResult doExecute(String colo) throws FalconException { return getInstanceManager(colo).invoke("getStatus", type, entity, startStr, endStr, colo, lifeCycles, - filterBy, orderBy, sortOrder, offset, resultsPerPage); + filterBy, orderBy, sortOrder, offset, resultsPerPage, allAttempts); } }.execute(colo, type, entity); } http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java ---------------------------------------------------------------------- diff --git a/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java b/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java index ab1a786..bffdb0b 100644 --- a/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java +++ b/scheduler/src/main/java/org/apache/falcon/workflow/engine/FalconWorkflowEngine.java @@ -386,8 +386,8 @@ public class FalconWorkflowEngine extends AbstractWorkflowEngine { } @Override - public InstancesResult getStatus(Entity entity, Date start, Date end, - List<LifeCycle> lifeCycles) throws FalconException { + public InstancesResult getStatus(Entity entity, Date start, Date end, List<LifeCycle> lifeCycles, + Boolean allAttempts) throws FalconException { return doJobAction(JobAction.STATUS, entity, start, end, null, lifeCycles); } http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java ---------------------------------------------------------------------- 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 13375ef..a82cf03 100644 --- a/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java +++ b/unit/src/main/java/org/apache/falcon/unit/FalconUnitClient.java @@ -161,10 +161,10 @@ public class FalconUnitClient extends AbstractFalconClient { //SUSPEND CHECKSTYLE CHECK ParameterNumberCheck @Override - public InstancesResult getStatusOfInstances(String type, String entity, String start, String end, - String colo, List<LifeCycle> lifeCycles, String filterBy, - String orderBy, String sortOrder, Integer offset, - Integer numResults, String doAsUser) throws FalconCLIException { + public InstancesResult getStatusOfInstances(String type, String entity, String start, String end, String colo, + List<LifeCycle> lifeCycles, String filterBy, String orderBy, + String sortOrder, Integer offset, Integer numResults, String doAsUser, + Boolean allAttempts) throws FalconCLIException { if (orderBy == null) { orderBy = DEFAULT_ORDERBY; } @@ -178,7 +178,7 @@ public class FalconUnitClient extends AbstractFalconClient { numResults = 1; } return localInstanceManager.getStatusOfInstances(type, entity, start, end, colo, lifeCycles, filterBy, orderBy, - sortOrder, offset, numResults); + sortOrder, offset, numResults, allAttempts); } @@ -228,7 +228,7 @@ public class FalconUnitClient extends AbstractFalconClient { Date endTimeDate = DateUtil.getNextMinute(startTime); String endTime = DateUtil.getDateFormatFromTime(endTimeDate.getTime()); InstancesResult instancesResult = getStatusOfInstances(entityType, entityName, nominalTime, endTime, null, - null, null, null, null, null, null, null); + null, null, null, null, null, null, null, null); if (instancesResult.getInstances() != null && instancesResult.getInstances().length > 0 && instancesResult.getInstances()[0] != null) { LOG.info("Instance status is " + instancesResult.getInstances()[0].getStatus()); http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/unit/src/main/java/org/apache/falcon/unit/LocalInstanceManager.java ---------------------------------------------------------------------- diff --git a/unit/src/main/java/org/apache/falcon/unit/LocalInstanceManager.java b/unit/src/main/java/org/apache/falcon/unit/LocalInstanceManager.java index 148cbf7..bd42270 100644 --- a/unit/src/main/java/org/apache/falcon/unit/LocalInstanceManager.java +++ b/unit/src/main/java/org/apache/falcon/unit/LocalInstanceManager.java @@ -59,9 +59,9 @@ public class LocalInstanceManager extends AbstractInstanceManager { public InstancesResult getStatusOfInstances(String type, String entity, String start, String end, String colo, List<LifeCycle> lifeCycles, String filterBy, String orderBy, String sortOrder, Integer offset, - Integer numResults) { + Integer numResults, Boolean allAttempts) { return super.getStatus(type, entity, start, end, colo, lifeCycles, filterBy, orderBy, sortOrder, - offset, numResults); + offset, numResults, allAttempts); } public InstancesSummaryResult getSummary(String type, String entity, String startStr, String endStr, String colo, http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java ---------------------------------------------------------------------- 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 382e0c9..fb30a55 100644 --- a/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java +++ b/unit/src/test/java/org/apache/falcon/unit/FalconUnitTestBase.java @@ -372,9 +372,8 @@ public class FalconUnitTestBase { String startTime = DateUtil.getDateFormatFromTime(startTimeInMillis); List<LifeCycle> lifecycles = new ArrayList<>(); lifecycles.add(LifeCycle.EVICTION); - InstancesResult result = falconUnitClient.getStatusOfInstances("feed", - feedName, startTime, endTime, cluster, - lifecycles, null, "status", "asc", 0, 1, null); + InstancesResult result = falconUnitClient.getStatusOfInstances("feed", feedName, startTime, endTime, cluster, + lifecycles, null, "status", "asc", 0, 1, null, null); if (result.getInstances() != null && result.getInstances().length > 0) { return result.getInstances()[0].getStatus(); } http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/webapp/src/main/java/org/apache/falcon/resource/InstanceManager.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/falcon/resource/InstanceManager.java b/webapp/src/main/java/org/apache/falcon/resource/InstanceManager.java index 76c66f3..ef8d77b 100644 --- a/webapp/src/main/java/org/apache/falcon/resource/InstanceManager.java +++ b/webapp/src/main/java/org/apache/falcon/resource/InstanceManager.java @@ -81,10 +81,11 @@ public class InstanceManager extends AbstractInstanceManager { @DefaultValue("") @QueryParam("orderBy") String orderBy, @DefaultValue("") @QueryParam("sortOrder") String sortOrder, @DefaultValue("0") @QueryParam("offset") Integer offset, - @QueryParam("numResults") Integer resultsPerPage) { + @QueryParam("numResults") Integer resultsPerPage, + @Dimension("allAttempts") @QueryParam("allAttempts") Boolean allAttempts) { resultsPerPage = resultsPerPage == null ? getDefaultResultsPerPage() : resultsPerPage; return super.getInstances(type, entity, startStr, endStr, colo, lifeCycles, - filterBy, orderBy, sortOrder, offset, resultsPerPage); + filterBy, orderBy, sortOrder, offset, resultsPerPage, allAttempts); } @GET @@ -103,10 +104,11 @@ public class InstanceManager extends AbstractInstanceManager { @DefaultValue("") @QueryParam("orderBy") String orderBy, @DefaultValue("") @QueryParam("sortOrder") String sortOrder, @DefaultValue("0") @QueryParam("offset") Integer offset, - @QueryParam("numResults") Integer resultsPerPage) { + @QueryParam("numResults") Integer resultsPerPage, + @Dimension("allAttempts") @QueryParam("allAttempts") Boolean allAttempts) { resultsPerPage = resultsPerPage == null ? getDefaultResultsPerPage() : resultsPerPage; return super.getStatus(type, entity, startStr, endStr, colo, lifeCycles, - filterBy, orderBy, sortOrder, offset, resultsPerPage); + filterBy, orderBy, sortOrder, offset, resultsPerPage, allAttempts); } @GET http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/webapp/src/test/java/org/apache/falcon/resource/InstanceSchedulerManagerJerseyIT.java ---------------------------------------------------------------------- diff --git a/webapp/src/test/java/org/apache/falcon/resource/InstanceSchedulerManagerJerseyIT.java b/webapp/src/test/java/org/apache/falcon/resource/InstanceSchedulerManagerJerseyIT.java index 698580b..b1c8ce0 100644 --- a/webapp/src/test/java/org/apache/falcon/resource/InstanceSchedulerManagerJerseyIT.java +++ b/webapp/src/test/java/org/apache/falcon/resource/InstanceSchedulerManagerJerseyIT.java @@ -138,7 +138,7 @@ public class InstanceSchedulerManagerJerseyIT extends AbstractSchedulerManagerJe START_INSTANCE, InstancesResult.WorkflowStatus.RUNNING); InstancesResult result = falconUnitClient.getStatusOfInstances(EntityType.PROCESS.toString(), processName, - START_INSTANCE, "2012-04-23T00:00Z", colo, null, null, null, null, 0, 3, null); + START_INSTANCE, "2012-04-23T00:00Z", colo, null, null, null, null, 0, 3, null, null); Assert.assertEquals(result.getInstances().length, 3); // Ensure the latest instance is on top and oldest at the bottom Assert.assertEquals(result.getInstances()[0].getInstance(), "2012-04-22T00:00Z"); http://git-wip-us.apache.org/repos/asf/falcon/blob/35b39579/webapp/src/test/java/org/apache/falcon/resource/ProcessInstanceManagerIT.java ---------------------------------------------------------------------- diff --git a/webapp/src/test/java/org/apache/falcon/resource/ProcessInstanceManagerIT.java b/webapp/src/test/java/org/apache/falcon/resource/ProcessInstanceManagerIT.java index 755efa3..4687520 100644 --- a/webapp/src/test/java/org/apache/falcon/resource/ProcessInstanceManagerIT.java +++ b/webapp/src/test/java/org/apache/falcon/resource/ProcessInstanceManagerIT.java @@ -124,7 +124,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.RUNNING); String endTime = "2012-04-20T00:01Z"; InstancesResult response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); @@ -139,7 +139,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { String endTime = "2012-04-20T00:02Z"; InstancesResult response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), context.processName, START_INSTANCE, endTime, context.colo, null, "STATUS:RUNNING", "startTime", - "", 0, new Integer(1), null); + "", 0, new Integer(1), null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); @@ -157,14 +157,14 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.KILLED); InstancesResult response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); assertInstance(response.getInstances()[0], START_INSTANCE, WorkflowStatus.KILLED); response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), context.processName, - START_INSTANCE, endTime, context.colo, null, "STATUS:KILLED", "startTime", "", 0, 1, null); + START_INSTANCE, endTime, context.colo, null, "STATUS:KILLED", "startTime", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); @@ -183,7 +183,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.KILLED); InstancesResult response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); @@ -194,7 +194,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.RUNNING); response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); @@ -213,7 +213,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.SUSPENDED); InstancesResult response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); @@ -232,7 +232,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.SUSPENDED); InstancesResult response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1); @@ -243,7 +243,7 @@ public class ProcessInstanceManagerIT extends AbstractSchedulerManagerJerseyIT { waitForStatus(EntityType.PROCESS.name(), context.processName, START_INSTANCE, WorkflowStatus.RUNNING); response = context.getClient().getStatusOfInstances(EntityType.PROCESS.name(), - context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null); + context.processName, START_INSTANCE, endTime, context.colo, null, null, "", "", 0, 1, null, null); Assert.assertEquals(response.getStatus(), APIResult.Status.SUCCEEDED); Assert.assertNotNull(response.getInstances()); Assert.assertEquals(response.getInstances().length, 1);
