You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@falcon.apache.org by aj...@apache.org on 2016/01/11 15:52:47 UTC

falcon git commit: FALCON-1495 In instance status list, show all runs for instances when requested by user. Contributed by Narayan Periwal.

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 <aj...@gmail.com>
Authored: Mon Jan 11 19:53:37 2016 +0530
Committer: Ajay Yadava <aj...@gmail.com>
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);