From 2854fa9df354a35b33fdcaffb26e6990bbf84ef5 Mon Sep 17 00:00:00 2001 From: Greg Schueler Date: Wed, 21 Aug 2013 10:16:03 -0700 Subject: [PATCH] Add project to parsed execution result for api v9 --- .../rundeck/api/domain/RundeckExecution.java | 15 +++++++++++ .../rundeck/api/parser/ExecutionParser.java | 1 + .../api/parser/ExecutionParserTest.java | 25 +++++++++++++++++++ .../api/parser/execution-running-v9.xml | 10 ++++++++ 4 files changed, 51 insertions(+) create mode 100644 src/test/resources/org/rundeck/api/parser/execution-running-v9.xml diff --git a/src/main/java/org/rundeck/api/domain/RundeckExecution.java b/src/main/java/org/rundeck/api/domain/RundeckExecution.java index fd3af96..0005554 100644 --- a/src/main/java/org/rundeck/api/domain/RundeckExecution.java +++ b/src/main/java/org/rundeck/api/domain/RundeckExecution.java @@ -51,6 +51,7 @@ public class RundeckExecution implements Serializable { private String description; private String argstring; + private String project; /** * @return the duration of the execution in milliseconds (or null if the duration is still running, or has been @@ -190,6 +191,7 @@ public class RundeckExecution implements Serializable { result = prime * result + ((startedBy == null) ? 0 : startedBy.hashCode()); result = prime * result + ((status == null) ? 0 : status.hashCode()); result = prime * result + ((url == null) ? 0 : url.hashCode()); + result = prime * result + ((project == null) ? 0 : project.hashCode()); return result; } @@ -252,6 +254,11 @@ public class RundeckExecution implements Serializable { return false; } else if (!url.equals(other.url)) return false; + if (project == null) { + if (other.project != null) + return false; + } else if (!project.equals(other.project)) + return false; return true; } @@ -266,6 +273,14 @@ public class RundeckExecution implements Serializable { this.argstring = argstring; } + public String getProject() { + return project; + } + + public void setProject(String project) { + this.project = project; + } + /** * The status of an execution */ diff --git a/src/main/java/org/rundeck/api/parser/ExecutionParser.java b/src/main/java/org/rundeck/api/parser/ExecutionParser.java index 2530c1b..63ea0d1 100644 --- a/src/main/java/org/rundeck/api/parser/ExecutionParser.java +++ b/src/main/java/org/rundeck/api/parser/ExecutionParser.java @@ -60,6 +60,7 @@ public class ExecutionParser implements XmlNodeParser { execution.setArgstring(StringUtils.trimToNull(execNode.valueOf("argstring"))); execution.setStartedBy(StringUtils.trimToNull(execNode.valueOf("user"))); execution.setAbortedBy(StringUtils.trimToNull(execNode.valueOf("abortedby"))); + execution.setProject(StringUtils.trimToNull(execNode.valueOf("@project"))); String startedAt = StringUtils.trimToNull(execNode.valueOf("date-started/@unixtime")); if (startedAt != null) { execution.setStartedAt(new Date(Long.valueOf(startedAt))); diff --git a/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java b/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java index 8558d95..0e4daa4 100644 --- a/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java +++ b/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java @@ -131,4 +131,29 @@ public class ExecutionParserTest { Assert.assertNull(job); } + @Test + public void parseV9Execution() throws Exception { + InputStream input = getClass().getResourceAsStream("execution-running-v9.xml"); + Document document = ParserHelper.loadDocument(input); + + RundeckExecution execution = new ExecutionParser("result/executions/execution").parseXmlNode(document); + RundeckJob job = execution.getJob(); + + Assert.assertEquals(null, job); + Assert.assertEquals(new Long(119), execution.getId()); + Assert.assertEquals("http://localhost:4440/execution/follow/119", execution.getUrl()); + Assert.assertEquals(ExecutionStatus.RUNNING, execution.getStatus()); + Assert.assertEquals("admin", execution.getStartedBy()); + Assert.assertEquals(new Date(1377104570966L), execution.getStartedAt()); + Assert.assertEquals(null, execution.getEndedAt()); + Assert.assertEquals(null, execution.getDurationInMillis()); + Assert.assertEquals(null, execution.getDuration()); + Assert.assertEquals(null, execution.getAbortedBy()); + Assert.assertEquals("echo asdf; sleep 120", execution.getDescription()); + Assert.assertEquals(null, execution.getArgstring()); + Assert.assertEquals("test", execution.getProject()); + + + } + } diff --git a/src/test/resources/org/rundeck/api/parser/execution-running-v9.xml b/src/test/resources/org/rundeck/api/parser/execution-running-v9.xml new file mode 100644 index 0000000..fd4ac00 --- /dev/null +++ b/src/test/resources/org/rundeck/api/parser/execution-running-v9.xml @@ -0,0 +1,10 @@ + + + + admin + 2013-08-21T17:02:50Z + echo asdf; sleep 120 + + + +