diff --git a/src/main/java/org/rundeck/api/parser/PagedResultParser.java b/src/main/java/org/rundeck/api/parser/PagedResultParser.java index 3eed01c..3389a87 100644 --- a/src/main/java/org/rundeck/api/parser/PagedResultParser.java +++ b/src/main/java/org/rundeck/api/parser/PagedResultParser.java @@ -26,6 +26,7 @@ package org.rundeck.api.parser; import org.dom4j.Element; import org.dom4j.Node; +import org.rundeck.api.RundeckApiException; import org.rundeck.api.util.PagedResults; import java.util.*; @@ -38,7 +39,7 @@ import java.util.*; */ public class PagedResultParser implements XmlNodeParser> { ListParser itemParser; - String xpath; + private String xpath; /** * Create a PagedResultParser @@ -54,7 +55,9 @@ public class PagedResultParser implements XmlNodeParser> { @Override public PagedResults parseXmlNode(Node node) { Node pagedNodeContainer = node.selectSingleNode(xpath); - + if(null==pagedNodeContainer) { + throw new RundeckApiException("XML content did not match XPATH expression: " + xpath); + } Element el = (Element) pagedNodeContainer; final int max = integerAttribute(el, "max", -1); final int offset = integerAttribute(el, "offset", -1); @@ -113,4 +116,8 @@ public class PagedResultParser implements XmlNodeParser> { } return parseMax; } + + public String getXpath() { + return xpath; + } } diff --git a/src/test/java/org/rundeck/api/RundeckClientTest.java b/src/test/java/org/rundeck/api/RundeckClientTest.java index 21f306f..d4d844e 100644 --- a/src/test/java/org/rundeck/api/RundeckClientTest.java +++ b/src/test/java/org/rundeck/api/RundeckClientTest.java @@ -402,6 +402,132 @@ public class RundeckClientTest { .build(), 2L, 0L); assertPageResults(adhocTest, 2, 2, 2, 0, 2); } + @Test + @Betamax(tape = "get_executions_v11", + mode = TapeMode.READ_ONLY, + match = {MatchRule.uri, MatchRule.headers, MatchRule.method, MatchRule.path, MatchRule.query}) + public void getExecutionsV11() throws Exception { + + RundeckClient client = createClient(TEST_TOKEN_7, 11); + + + final String projectName = "blah"; + final PagedResults jobTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .job("test job") + .build(), + 2L, + 0L); + assertPageResults(jobTest, 2, 2, 2, 0, 2); + final PagedResults jobExactTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .jobExact("test job") + .build(), + 2L, + 0L); + assertPageResults(jobExactTest, 2, 2, 2, 0, 2); + final PagedResults excludeJobTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .excludeJob("test job") + .build(), + 2L, + 0L); + assertPageResults(excludeJobTest, 2, 2, 2, 0, 2); + final PagedResults excludeJobExactTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .excludeJobExact("test job") + .build(), + 2L, + 0L); + assertPageResults(excludeJobExactTest, 2, 2, 2, 0, 2); + final PagedResults descriptionTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .description("a description") + .build(), 2L, 0L); + assertPageResults(descriptionTest, 2, 2, 2, 0, 2); + final PagedResults abortedbyTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .abortedby("admin") + .build(), + 2L, + 0L); + assertPageResults(abortedbyTest, 1, 1, 2, 0, 1); + final PagedResults beginTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .begin(new Date(1347581178168L)) + .build(), 2L, 0L); + assertPageResults(beginTest, 2, 2, 2, 0, 6); + final PagedResults endTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .end(new Date(1415388156385L)) + .build(), 2L, 0L); + assertPageResults(endTest, 2, 2, 2, 0, 4); + final List excludeJobIdList = Arrays.asList("123", "456"); + final PagedResults excludeJobIdListTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .excludeJobIdList(excludeJobIdList) + .build(), 2L, 0L); + assertPageResults(excludeJobIdListTest, 2, 2, 2, 0, 4); + final List jobList = Arrays.asList("fruit/mango", "fruit/lemon"); + final PagedResults jobListTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .jobList(jobList) + .build(), 2L, 0L); + assertPageResults(jobListTest, 2, 2, 2, 0, 2); + final List excludeJobList = Arrays.asList("a/path/job1", "path/to/job2"); + final PagedResults excludeJobListTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .excludeJobList(excludeJobList) + .build(), 2L, 0L); + assertPageResults(excludeJobListTest, 2, 2, 2, 0, 4); + final List list = Arrays.asList("9aa33253-17a3-4dce-890c-e5f10f9f00d6", + "2dd94199-00c4-4690-9b4d-beda4812bed0"); + final PagedResults jobIdListTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .jobIdList(list) + .build(), 2L, 0L); + assertPageResults(jobIdListTest, 2, 2, 2, 0, 2); + final PagedResults groupPathTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .groupPath("fruit") + .build(), + 2L, + 0L); + assertPageResults(groupPathTest, 2, 2, 2, 0, 2); + final PagedResults groupPathExactTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .groupPathExact("fruit") + .build(), 2L, 0L); + assertPageResults(groupPathExactTest, 2, 2, 2, 0, 2); + + final PagedResults excludeGroupPathTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .excludeGroupPath("fruit") + .build(), + 2L, + 0L); + assertPageResults(excludeGroupPathTest, 2, 2, 2, 0, 2); + final PagedResults excliudeGroupPathExactTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .excludeGroupPathExact("fruit") + .build(), 2L, 0L); + assertPageResults(excliudeGroupPathExactTest, 2, 2, 2, 0, 2); + + final PagedResults recentTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .recent("1h").build(), 2L, 0L); + assertPageResults(recentTest, 2, 2, 2, 0, 2); + final PagedResults statusTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .status(RundeckExecution.ExecutionStatus.SUCCEEDED) + .build(), 2L, 0L); + assertPageResults(statusTest, 2, 2, 2, 0, 3); + final PagedResults adhocTest = client.getExecutions(ExecutionQuery.builder() + .project(projectName) + .adhoc(true) + .build(), 2L, 0L); + assertPageResults(adhocTest, 2, 2, 2, 0, 2); + } /** * Test paging values from results diff --git a/src/test/resources/betamax/tapes/get_executions_v11.yaml b/src/test/resources/betamax/tapes/get_executions_v11.yaml new file mode 100644 index 0000000..ae592b0 --- /dev/null +++ b/src/test/resources/betamax/tapes/get_executions_v11.yaml @@ -0,0 +1,419 @@ +!tape +name: get_executions_v11 +interactions: +- recorded: 2014-11-07T23:18:13.076Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?jobFilter=test+job&project=blah&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Expires: Thu, 01 Jan 1970 00:00:00 GMT + Server: Jetty(7.6.0.v20120127) + Set-Cookie: JSESSIONID=1jt4f1ctz8i6rfsou34u5suz2;Path=/ + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:51:44Z\n 2014-11-07T18:51:49Z\n \n test job\n\ + \ \n blah\n a description\n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:51:32Z\n 2014-11-07T18:51:39Z\n\ + \ admin\n \n test job\n \n blah\n a description\n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:18:13.426Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?jobExactFilter=test+job&project=blah&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:51:44Z\n 2014-11-07T18:51:49Z\n \n test job\n\ + \ \n blah\n a description\n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:51:32Z\n 2014-11-07T18:51:39Z\n\ + \ admin\n \n test job\n \n blah\n a description\n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:18:13.591Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?excludeJobFilter=test+job&project=blah&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:18:13.748Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?excludeJobExactFilter=test+job&project=blah&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:18:13.897Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&descFilter=a+description&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:51:44Z\n 2014-11-07T18:51:49Z\n \n test job\n\ + \ \n blah\n a description\n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:51:32Z\n 2014-11-07T18:51:39Z\n\ + \ admin\n \n test job\n \n blah\n a description\n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:18:14.025Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&abortedbyFilter=admin&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:51:32Z\n 2014-11-07T18:51:39Z\n admin\n \n\ + \ test job\n \n blah\n a description\n \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:18:14.155Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&begin=2012-09-14T00%3A06%3A18Z&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T23:17:55Z\n\ + \ 2014-11-07T23:17:56Z\n echo bye ; false\n \n \n \n \n \n \n admin\n 2014-11-07T23:17:47Z\n 2014-11-07T23:17:50Z\n\ + \ echo hi ; false\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:50.560Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&end=2014-11-07T19%3A22%3A36Z&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Expires: Thu, 01 Jan 1970 00:00:00 GMT + Server: Jetty(7.6.0.v20120127) + Set-Cookie: JSESSIONID=1olgmevldd8n2d4lib3pzifep;Path=/ + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:50.701Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&excludeJobIdListFilter=123&excludeJobIdListFilter=456&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:50.837Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&jobListFilter=fruit%2Fmango&jobListFilter=fruit%2Flemon&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:50.966Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&excludeJobListFilter=a%2Fpath%2Fjob1&excludeJobListFilter=path%2Fto%2Fjob2&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.097Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&jobIdListFilter=9aa33253-17a3-4dce-890c-e5f10f9f00d6&jobIdListFilter=2dd94199-00c4-4690-9b4d-beda4812bed0&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.229Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&groupPath=fruit&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.358Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&groupPathExact=fruit&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.483Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&excludeGroupPath=fruit&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:51:44Z\n 2014-11-07T18:51:49Z\n \n test job\n\ + \ \n blah\n a description\n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:51:32Z\n 2014-11-07T18:51:39Z\n\ + \ admin\n \n test job\n \n blah\n a description\n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.607Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&excludeGroupPathExact=fruit&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:51:44Z\n 2014-11-07T18:51:49Z\n \n test job\n\ + \ \n blah\n a description\n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:51:32Z\n 2014-11-07T18:51:39Z\n\ + \ admin\n \n test job\n \n blah\n a description\n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.724Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&recentFilter=1h&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T23:17:55Z\n\ + \ 2014-11-07T23:17:56Z\n echo bye ; false\n \n \n \n \n \n \n admin\n 2014-11-07T23:17:47Z\n 2014-11-07T23:17:50Z\n\ + \ echo hi ; false\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:19:51.845Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&statusFilter=succeeded&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Server: Jetty(7.6.0.v20120127) + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T18:54:10Z\n 2014-11-07T18:54:16Z\n \n mango\n \ + \ fruit\n blah\n \n \n sleep 5\n \n \n \n \n\ + \ \n \n admin\n 2014-11-07T18:54:08Z\n 2014-11-07T18:54:14Z\n \n lemon\n fruit\n blah\n \n\ + \ \n sleep 5\n \n \n \n \n \n \n" +- recorded: 2014-11-07T23:20:12.975Z + request: + method: GET + uri: http://rundeck.local:4440/api/11/executions?project=blah&adhoc=true&max=2&offset=0 + headers: + Accept: text/xml + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 200 + headers: + Content-Type: text/xml;charset=UTF-8 + Expires: Thu, 01 Jan 1970 00:00:00 GMT + Server: Jetty(7.6.0.v20120127) + Set-Cookie: JSESSIONID=11ubcx5ejb1sr6nycorkmdrg3;Path=/ + X-Rundeck-API-Version: '12' + body: "\n \n \n admin\n 2014-11-07T23:17:55Z\n\ + \ 2014-11-07T23:17:56Z\n echo bye ; false\n \n \n \n \n \n \n admin\n 2014-11-07T23:17:47Z\n 2014-11-07T23:17:50Z\n\ + \ echo hi ; false\n \n \n \n \n \n \n"