diff --git a/src/main/java/org/rundeck/api/domain/RundeckExecution.java b/src/main/java/org/rundeck/api/domain/RundeckExecution.java index 4df8329..fd3af96 100644 --- a/src/main/java/org/rundeck/api/domain/RundeckExecution.java +++ b/src/main/java/org/rundeck/api/domain/RundeckExecution.java @@ -50,6 +50,7 @@ public class RundeckExecution implements Serializable { private String abortedBy; private String description; + private String argstring; /** * @return the duration of the execution in milliseconds (or null if the duration is still running, or has been @@ -170,6 +171,7 @@ public class RundeckExecution implements Serializable { @Override public String toString() { return "RundeckExecution [id=" + id + ", description=" + description + ", url=" + url + ", status=" + status + + ", argstring=" + argstring + ", startedBy=" + startedBy + ", startedAt=" + startedAt + ", endedAt=" + endedAt + ", durationInSeconds=" + getDurationInSeconds() + ", abortedBy=" + abortedBy + ", job=" + job + "]"; } @@ -179,6 +181,7 @@ public class RundeckExecution implements Serializable { final int prime = 31; int result = 1; result = prime * result + ((abortedBy == null) ? 0 : abortedBy.hashCode()); + result = prime * result + ((argstring == null) ? 0 : argstring.hashCode()); result = prime * result + ((description == null) ? 0 : description.hashCode()); result = prime * result + ((endedAt == null) ? 0 : endedAt.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); @@ -204,6 +207,11 @@ public class RundeckExecution implements Serializable { return false; } else if (!abortedBy.equals(other.abortedBy)) return false; + if (argstring == null) { + if (other.argstring != null) + return false; + } else if (!argstring.equals(other.argstring)) + return false; if (description == null) { if (other.description != null) return false; @@ -247,6 +255,17 @@ public class RundeckExecution implements Serializable { return true; } + /** + * the argument string for the execution + */ + public String getArgstring() { + return argstring; + } + + public void setArgstring(String argstring) { + this.argstring = argstring; + } + /** * 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 a57319d..2530c1b 100644 --- a/src/main/java/org/rundeck/api/parser/ExecutionParser.java +++ b/src/main/java/org/rundeck/api/parser/ExecutionParser.java @@ -57,6 +57,7 @@ public class ExecutionParser implements XmlNodeParser { execution.setStatus(null); } execution.setDescription(StringUtils.trimToNull(execNode.valueOf("description"))); + execution.setArgstring(StringUtils.trimToNull(execNode.valueOf("argstring"))); execution.setStartedBy(StringUtils.trimToNull(execNode.valueOf("user"))); execution.setAbortedBy(StringUtils.trimToNull(execNode.valueOf("abortedby"))); String startedAt = StringUtils.trimToNull(execNode.valueOf("date-started/@unixtime")); diff --git a/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java b/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java index bf0092a..8558d95 100644 --- a/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java +++ b/src/test/java/org/rundeck/api/parser/ExecutionParserTest.java @@ -49,6 +49,7 @@ public class ExecutionParserTest { Assert.assertEquals(null, execution.getDuration()); Assert.assertEquals(null, execution.getAbortedBy()); Assert.assertEquals("ls ${option.dir}", execution.getDescription()); + Assert.assertEquals("-arg1 value -arg2 value", execution.getArgstring()); Assert.assertEquals("1", job.getId()); Assert.assertEquals("ls", job.getName()); @@ -75,6 +76,7 @@ public class ExecutionParserTest { Assert.assertEquals("1 minute 4 seconds", execution.getDuration()); Assert.assertEquals(null, execution.getAbortedBy()); Assert.assertEquals("ls ${option.dir}", execution.getDescription()); + Assert.assertEquals("-argA some -argB thing", execution.getArgstring()); Assert.assertEquals("1", job.getId()); Assert.assertEquals("ls", job.getName()); @@ -101,6 +103,7 @@ public class ExecutionParserTest { Assert.assertEquals("0 seconds", execution.getDuration()); Assert.assertEquals(null, execution.getAbortedBy()); Assert.assertEquals("w", execution.getDescription()); + Assert.assertEquals("-monkey true", execution.getArgstring()); Assert.assertNull(job); } @@ -123,6 +126,7 @@ public class ExecutionParserTest { Assert.assertNull(execution.getDuration()); Assert.assertNull(execution.getAbortedBy()); Assert.assertNull(execution.getDescription()); + Assert.assertNull(execution.getArgstring()); Assert.assertNull(job); } diff --git a/src/test/resources/org/rundeck/api/parser/execution-adhoc.xml b/src/test/resources/org/rundeck/api/parser/execution-adhoc.xml index 930f46b..289c00b 100644 --- a/src/test/resources/org/rundeck/api/parser/execution-adhoc.xml +++ b/src/test/resources/org/rundeck/api/parser/execution-adhoc.xml @@ -1 +1 @@ -admin2011-07-05T09:18:59Z2011-07-05T09:18:59Zw \ No newline at end of file +admin2011-07-05T09:18:59Z2011-07-05T09:18:59Zw-monkey true \ No newline at end of file diff --git a/src/test/resources/org/rundeck/api/parser/execution-running.xml b/src/test/resources/org/rundeck/api/parser/execution-running.xml index 262da63..62b67f3 100644 --- a/src/test/resources/org/rundeck/api/parser/execution-running.xml +++ b/src/test/resources/org/rundeck/api/parser/execution-running.xml @@ -1 +1 @@ -admin2011-04-07T13:43:50Zlssystemtestlist filesls ${option.dir} \ No newline at end of file +admin2011-04-07T13:43:50Zlssystemtestlist filesls ${option.dir}-arg1 value -arg2 value \ No newline at end of file diff --git a/src/test/resources/org/rundeck/api/parser/execution-succeeded.xml b/src/test/resources/org/rundeck/api/parser/execution-succeeded.xml index 1deb6c9..cb86290 100644 --- a/src/test/resources/org/rundeck/api/parser/execution-succeeded.xml +++ b/src/test/resources/org/rundeck/api/parser/execution-succeeded.xml @@ -1 +1 @@ -admin2011-06-17T15:01:35Z2011-06-17T15:02:39Zlssystemtestlist filesls ${option.dir} \ No newline at end of file +admin2011-06-17T15:01:35Z2011-06-17T15:02:39Zlssystemtestlist filesls ${option.dir}-argA some -argB thing \ No newline at end of file