diff --git a/src/main/java/org/rundeck/api/RundeckClient.java b/src/main/java/org/rundeck/api/RundeckClient.java index 5c3e8e7..2d97f9c 100644 --- a/src/main/java/org/rundeck/api/RundeckClient.java +++ b/src/main/java/org/rundeck/api/RundeckClient.java @@ -2668,11 +2668,16 @@ public class RundeckClient implements Serializable { */ public List getRunningExecutions() throws RundeckApiException, RundeckApiLoginException, RundeckApiTokenException { - List executions = new ArrayList(); - for (RundeckProject project : getProjects()) { - executions.addAll(getRunningExecutions(project.getName())); + if (this.getApiVersion() >= Version.V9.getVersionNumber()) { + //simply query using '*' + return getRunningExecutions("*"); + } else { + List executions = new ArrayList(); + for (RundeckProject project : getProjects()) { + executions.addAll(getRunningExecutions(project.getName())); + } + return executions; } - return executions; } /** diff --git a/src/test/java/org/rundeck/api/RundeckClientTest.java b/src/test/java/org/rundeck/api/RundeckClientTest.java index 76dc18b..d7748a1 100644 --- a/src/test/java/org/rundeck/api/RundeckClientTest.java +++ b/src/test/java/org/rundeck/api/RundeckClientTest.java @@ -53,6 +53,7 @@ public class RundeckClientTest { public static final String TEST_TOKEN_2 = "PP4s4SdCRO6KUoNPd1D303Dc304ORN87"; public static final String TEST_TOKEN_3 = "9RdEosesKP3se4oV9EKOd4s3RUeUS3ON"; public static final String TEST_TOKEN_4 = "sN5RRSNvu15DnV6EcNDdc2CkdPcv3s32"; + public static final String TEST_TOKEN_5 = "C3O6d5O98Kr6Dpv71sdE4ERdCuU12P6d"; @Rule public Recorder recorder = new Recorder(); @@ -911,6 +912,21 @@ public class RundeckClientTest { Assert.assertEquals("importJobsProjectParamV7", rundeckJob.getName()); Assert.assertEquals("testXYZ", rundeckJob.getProject()); } + /** + * Running executions for all projects using API v9 + * @throws Exception + */ + @Test + @Betamax(tape = "running_executions_v9") + public void runningExecutionsV9() throws Exception { + final RundeckClient client = createClient(TEST_TOKEN_5, 9); + List runningExecutions = client.getRunningExecutions(); + Assert.assertEquals(2, runningExecutions.size()); + RundeckExecution exec1 = runningExecutions.get(0); + Assert.assertEquals("test", exec1.getProject()); + RundeckExecution exec2 = runningExecutions.get(1); + Assert.assertEquals("test2", exec2.getProject()); + } @Before public void setUp() throws Exception { diff --git a/src/test/resources/betamax/tapes/running_executions_v9.yaml b/src/test/resources/betamax/tapes/running_executions_v9.yaml new file mode 100644 index 0000000..a17dfd9 --- /dev/null +++ b/src/test/resources/betamax/tapes/running_executions_v9.yaml @@ -0,0 +1,20 @@ +!tape +name: running_executions_v9 +interactions: +- recorded: 2013-08-21T17:03:14.308Z + request: + method: GET + uri: http://rundeck.local:4440/api/9/executions/running?project=* + headers: + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 9 + X-RunDeck-Auth-Token: C3O6d5O98Kr6Dpv71sdE4ERdCuU12P6d + response: + status: 200 + headers: + Content-Type: text/xml; charset=utf-8 + Expires: Thu, 01 Jan 1970 00:00:00 GMT + Server: Jetty(6.1.21) + Set-Cookie: JSESSIONID=1voch0o7fzo55;Path=/ + body: admin2013-08-21T17:02:50Zecho asdf; sleep 120admin2013-08-21T17:02:40Zecho asdf; sleep 120