diff --git a/src/main/java/org/rundeck/api/RundeckClient.java b/src/main/java/org/rundeck/api/RundeckClient.java index 8462dba..bc23457 100644 --- a/src/main/java/org/rundeck/api/RundeckClient.java +++ b/src/main/java/org/rundeck/api/RundeckClient.java @@ -1039,7 +1039,8 @@ public class RundeckClient implements Serializable { public String deleteJob(String jobId) throws RundeckApiException, RundeckApiLoginException, RundeckApiTokenException, IllegalArgumentException { AssertUtil.notBlank(jobId, "jobId is mandatory to delete a job !"); - return new ApiCall(this).delete(new ApiPathBuilder("/job/", jobId), new StringParser(rootXpath()+"/success/message")); + new ApiCall(this).delete(new ApiPathBuilder("/job/", jobId)); + return "Job " + jobId + " was deleted successfully"; } /** * Delete multiple jobs, identified by the given IDs diff --git a/src/test/java/org/rundeck/api/RundeckClientTest.java b/src/test/java/org/rundeck/api/RundeckClientTest.java index fb01b80..5dc6d59 100644 --- a/src/test/java/org/rundeck/api/RundeckClientTest.java +++ b/src/test/java/org/rundeck/api/RundeckClientTest.java @@ -1489,6 +1489,32 @@ public class RundeckClientTest { Assert.assertEquals(404,e.getStatusCode()); } } + /** + * delete job + */ + @Test + @Betamax(tape = "delete_job", mode = TapeMode.READ_ONLY) + public void deleteJob() throws Exception { + final RundeckClient client = createClient(TEST_TOKEN_7, 11); + String result = client.deleteJob("api-test-job-run-scheduled"); + + Assert.assertEquals("Job api-test-job-run-scheduled was deleted successfully", result); + } + /** + * delete job (DNE) + */ + @Test + @Betamax(tape = "delete_job_not_found", mode = TapeMode.READ_ONLY) + public void deleteJobNotFound() throws Exception { + final RundeckClient client = createClient(TEST_TOKEN_7, 11); + try { + String result = client.deleteJob("does-not-exist"); + Assert.fail(); + } catch (RundeckApiException.RundeckApiHttpStatusException e) { + Assert.assertEquals(404, e.getStatusCode()); + } + + } @Before public void setUp() throws Exception { diff --git a/src/test/resources/betamax/tapes/delete_job.yaml b/src/test/resources/betamax/tapes/delete_job.yaml new file mode 100644 index 0000000..29e33df --- /dev/null +++ b/src/test/resources/betamax/tapes/delete_job.yaml @@ -0,0 +1,19 @@ +!tape +name: delete_job +interactions: +- recorded: 2014-11-06T18:14:48.773Z + request: + method: DELETE + uri: http://rundeck.local:4440/api/11/job/api-test-job-run-scheduled + headers: + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 204 + headers: + Content-Type: text/html;charset=UTF-8 + Expires: Thu, 01 Jan 1970 00:00:00 GMT + Server: Jetty(7.6.0.v20120127) + Set-Cookie: JSESSIONID=1hb33nx0a7qv21gyuoqes2pahg;Path=/ diff --git a/src/test/resources/betamax/tapes/delete_job_not_found.yaml b/src/test/resources/betamax/tapes/delete_job_not_found.yaml new file mode 100644 index 0000000..f7540a6 --- /dev/null +++ b/src/test/resources/betamax/tapes/delete_job_not_found.yaml @@ -0,0 +1,21 @@ +!tape +name: delete_job_not_found +interactions: +- recorded: 2014-11-06T18:21:13.147Z + request: + method: DELETE + uri: http://rundeck.local:4440/api/11/job/does-not-exist + headers: + Host: rundeck.local:4440 + Proxy-Connection: Keep-Alive + User-Agent: RunDeck API Java Client 11 + X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s + response: + status: 404 + 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=1sxop3bupsrqb1gupbru3vklba;Path=/ + X-Rundeck-API-Version: '12' + body: "\n \n Job ID does not exist: does-not-exist\n \n"