diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html index 5a59333..12f1404 100644 --- a/apidocs/allclasses-frame.html +++ b/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (RunDeck API - Java Client 1.1-SNAPSHOT API) +All Classes (RunDeck API - Java Client 1.1 API) - + @@ -28,8 +28,12 @@ All Classes (RunDeck API - Java Client 1.1-SNAPSHOT API)
ExecutionParser
+FileType +
JobParser
+JobsImportResultParser +
ListParser
NodeFiltersBuilder @@ -60,6 +64,10 @@ All Classes (RunDeck API - Java Client 1.1-SNAPSHOT API)
RundeckJob
+RundeckJobsImportMethod +
+RundeckJobsImportResult +
RundeckNode
RundeckProject diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html index b8f9ad1..54b94a2 100644 --- a/apidocs/allclasses-noframe.html +++ b/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (RunDeck API - Java Client 1.1-SNAPSHOT API) +All Classes (RunDeck API - Java Client 1.1 API) - + @@ -28,8 +28,12 @@ All Classes (RunDeck API - Java Client 1.1-SNAPSHOT API)
ExecutionParser
+FileType +
JobParser
+JobsImportResultParser +
ListParser
NodeFiltersBuilder @@ -60,6 +64,10 @@ All Classes (RunDeck API - Java Client 1.1-SNAPSHOT API)
RundeckJob
+RundeckJobsImportMethod +
+RundeckJobsImportResult +
RundeckNode
RundeckProject diff --git a/apidocs/constant-values.html b/apidocs/constant-values.html index 50f8136..000f52e 100644 --- a/apidocs/constant-values.html +++ b/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (RunDeck API - Java Client 1.1-SNAPSHOT API) +Constant Field Values (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Constant Field Values (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Constant Field Values (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html index 851decb..114bc58 100644 --- a/apidocs/deprecated-list.html +++ b/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (RunDeck API - Java Client 1.1-SNAPSHOT API) +Deprecated List (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Deprecated List (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Deprecated List (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/help-doc.html b/apidocs/help-doc.html index f26f23e..2cdb298 100644 --- a/apidocs/help-doc.html +++ b/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (RunDeck API - Java Client 1.1-SNAPSHOT API) +API Help (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ API Help (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="API Help (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/index-all.html b/apidocs/index-all.html index bdcb0a8..d48c641 100644 --- a/apidocs/index-all.html +++ b/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (RunDeck API - Java Client 1.1-SNAPSHOT API) +Index (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Index (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Index (RunDeck API - Java Client 1.1 API)"; } } @@ -79,7 +79,7 @@ function windowTitle() -A D E F G H J L N O P R S T U V X
+A D E F G H I J L N O P R S T U V X

A

@@ -92,9 +92,18 @@ Constructor for class org.rundeck.api.parser.AbortParser(String) - Constructor for class org.rundeck.api.parser.AbortParser
  +
addFailedJob(RundeckJob, String) - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
addOption(Object, Object) - Method in class org.rundeck.api.OptionsBuilder
Add an option +
addSkippedJob(RundeckJob) - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
  +
addSucceededJob(RundeckJob) - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
API_ENDPOINT - Static variable in class org.rundeck.api.RundeckClient
  @@ -126,6 +135,9 @@ Method in class org.rundeck.api.domain.equals(Object) - Method in class org.rundeck.api.domain.RundeckJob
  +
equals(Object) - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
equals(Object) - Method in class org.rundeck.api.domain.RundeckNode
  @@ -171,32 +183,52 @@ Constructor for class org.rundeck.api.parser.ExecutionParser(String) - Constructor for class org.rundeck.api.parser.ExecutionParser
  -
exportJob(String) - +
exportJob(String, String) - Method in class org.rundeck.api.RundeckClient
Export the definition of a single job, identified by the given ID -
exportJobs(String) - +
exportJob(FileType, String) - +Method in class org.rundeck.api.RundeckClient +
Export the definition of a single job, identified by the given ID +
exportJobs(String, String) - Method in class org.rundeck.api.RundeckClient
Export the definitions of all jobs that belongs to the given project -
exportJobs(String, String, String, String...) - +
exportJobs(FileType, String) - +Method in class org.rundeck.api.RundeckClient +
Export the definitions of all jobs that belongs to the given project +
exportJobs(String, String, String, String, String...) - Method in class org.rundeck.api.RundeckClient
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, groupPath and jobIds) -
exportJobsToFile(String, String) - -Method in class org.rundeck.api.RundeckClient -
Export the definitions of all jobs that belongs to the given project, as an XML file -
exportJobsToFile(String, String, String, String, String...) - +
exportJobs(FileType, String, String, String, String...) - Method in class org.rundeck.api.RundeckClient
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, - groupPath and jobIds), as an XML file -
exportJobToFile(String, String) - + groupPath and jobIds) +
exportJobsToFile(String, String, String) - Method in class org.rundeck.api.RundeckClient -
Export the definition of a single job (identified by the given ID), as an XML file +
Export the definitions of all jobs that belongs to the given project +
exportJobsToFile(String, FileType, String) - +Method in class org.rundeck.api.RundeckClient +
Export the definitions of all jobs that belongs to the given project +
exportJobsToFile(String, String, String, String, String, String...) - +Method in class org.rundeck.api.RundeckClient +
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) +
exportJobsToFile(String, FileType, String, String, String, String...) - +Method in class org.rundeck.api.RundeckClient +
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) +
exportJobToFile(String, String, String) - +Method in class org.rundeck.api.RundeckClient +
Export the definition of a single job (identified by the given ID) +
exportJobToFile(String, FileType, String) - +Method in class org.rundeck.api.RundeckClient +
Export the definition of a single job (identified by the given ID)

F

-
findJob(String, String, String) - +
FileType - Enum in org.rundeck.api
All supported types of files.
findJob(String, String, String) - Method in class org.rundeck.api.RundeckClient
Find a job, identified by its project, group and name.
@@ -261,6 +293,9 @@ Method in class org.rundeck.api.domain.getExecution(Long) - Method in class org.rundeck.api.RundeckClient
Get a single execution, identified by the given ID +
getFailedJobs() - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
getFreeMemoryInBytes() - Method in class org.rundeck.api.domain.RundeckSystemInfo
  @@ -288,9 +323,15 @@ Method in class org.rundeck.api.getJobExecutions(String) - Method in class org.rundeck.api.RundeckClient
Get the executions of the given job +
getJobExecutions(String, String) - +Method in class org.rundeck.api.RundeckClient +
Get the executions of the given job
getJobExecutions(String, RundeckExecution.ExecutionStatus) - Method in class org.rundeck.api.RundeckClient
Get the executions of the given job +
getJobExecutions(String, String, Long, Long) - +Method in class org.rundeck.api.RundeckClient +
Get the executions of the given job
getJobExecutions(String, RundeckExecution.ExecutionStatus, Long, Long) - Method in class org.rundeck.api.RundeckClient
Get the executions of the given job @@ -393,6 +434,9 @@ Method in class org.rundeck.api.domain.getShortDuration() - Method in class org.rundeck.api.domain.RundeckExecution
  +
getSkippedJobs() - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
getStartDate() - Method in class org.rundeck.api.domain.RundeckSystemInfo
  @@ -408,6 +452,9 @@ Method in class org.rundeck.api.domain.getStatus() - Method in class org.rundeck.api.domain.RundeckExecution
  +
getSucceededJobs() - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
getSystemInfo() - Method in class org.rundeck.api.RundeckClient
Get system informations about the RunDeck server @@ -452,6 +499,9 @@ Method in class org.rundeck.api.domain.hashCode() - Method in class org.rundeck.api.domain.RundeckJob
  +
hashCode() - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
hashCode() - Method in class org.rundeck.api.domain.RundeckNode
  @@ -469,6 +519,35 @@ Method in class org.rundeck.api.

+I

+
+
importJobs(String, String) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given file +
importJobs(String, FileType) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given file +
importJobs(String, String, String) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given file, using the given behavior +
importJobs(String, FileType, RundeckJobsImportMethod) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given file, using the given behavior +
importJobs(InputStream, String) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given input stream +
importJobs(InputStream, FileType) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given input stream +
importJobs(InputStream, String, String) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given input stream, using the given behavior +
importJobs(InputStream, FileType, RundeckJobsImportMethod) - +Method in class org.rundeck.api.RundeckClient +
Import the definitions of jobs, from the given input stream, using the given behavior +
+

J

@@ -478,6 +557,12 @@ Constructor for class org.rundeck.api.parser.JobParser(String) - Constructor for class org.rundeck.api.parser.JobParser
  +
JobsImportResultParser - Class in org.rundeck.api.parser
Parser for a single RundeckJobsImportResult
JobsImportResultParser() - +Constructor for class org.rundeck.api.parser.JobsImportResultParser +
  +
JobsImportResultParser(String) - +Constructor for class org.rundeck.api.parser.JobsImportResultParser +
 

@@ -552,6 +637,9 @@ Method in class org.rundeck.api.parser.parseXmlNode(Node) - Method in class org.rundeck.api.parser.JobParser
  +
parseXmlNode(Node) - +Method in class org.rundeck.api.parser.JobsImportResultParser +
 
parseXmlNode(Node) - Method in class org.rundeck.api.parser.ListParser
  @@ -626,6 +714,9 @@ Constructor for class org.rundeck.api.domain.RundeckExecution.ExecutionStatus - Enum in org.rundeck.api.domain
The status of an execution
RundeckJob - Class in org.rundeck.api.domain
Represents a RunDeck job
RundeckJob() - Constructor for class org.rundeck.api.domain.RundeckJob
  +
RundeckJobsImportMethod - Enum in org.rundeck.api.domain
The behavior when importing jobs (which may already exist).
RundeckJobsImportResult - Class in org.rundeck.api.domain
Result of importing some jobs into RunDeck
RundeckJobsImportResult() - +Constructor for class org.rundeck.api.domain.RundeckJobsImportResult +
 
RundeckNode - Class in org.rundeck.api.domain
Represents a RunDeck node (server on which RunDeck can execute jobs and commands)
RundeckNode() - Constructor for class org.rundeck.api.domain.RundeckNode
  @@ -843,6 +934,9 @@ Method in class org.rundeck.api.domain.toString() - Method in class org.rundeck.api.domain.RundeckJob
  +
toString() - +Method in class org.rundeck.api.domain.RundeckJobsImportResult +
 
toString() - Method in class org.rundeck.api.domain.RundeckNode
  @@ -898,6 +992,12 @@ Static method in enum org.rundeck.api.domain.valueOf(String) - Static method in enum org.rundeck.api.domain.RundeckExecution.ExecutionStatus
Returns the enum constant of this type with the specified name. +
valueOf(String) - +Static method in enum org.rundeck.api.domain.RundeckJobsImportMethod +
Returns the enum constant of this type with the specified name. +
valueOf(String) - +Static method in enum org.rundeck.api.FileType +
Returns the enum constant of this type with the specified name.
values() - Static method in enum org.rundeck.api.domain.RundeckAbort.AbortStatus
Returns an array containing the constants of this enum type, in @@ -906,6 +1006,14 @@ the order they are declared. Static method in enum org.rundeck.api.domain.RundeckExecution.ExecutionStatus
Returns an array containing the constants of this enum type, in the order they are declared. +
values() - +Static method in enum org.rundeck.api.domain.RundeckJobsImportMethod +
Returns an array containing the constants of this enum type, in +the order they are declared. +
values() - +Static method in enum org.rundeck.api.FileType +
Returns an array containing the constants of this enum type, in +the order they are declared.

@@ -913,7 +1021,7 @@ the order they are declared.
XmlNodeParser<T> - Interface in org.rundeck.api.parser
Interface to be implemented for parsers that handle XML Nodes

-A D E F G H J L N O P R S T U V X +A D E F G H I J L N O P R S T U V X diff --git a/apidocs/index.html b/apidocs/index.html index 52ecce1..7396223 100644 --- a/apidocs/index.html +++ b/apidocs/index.html @@ -2,10 +2,10 @@ - + -RunDeck API - Java Client 1.1-SNAPSHOT API +RunDeck API - Java Client 1.1 API + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.rundeck.api +
+Enum FileType

+
+java.lang.Object
+  extended by java.lang.Enum<FileType>
+      extended by org.rundeck.api.FileType
+
+
+
All Implemented Interfaces:
Serializable, Comparable<FileType>
+
+
+
+
public enum FileType
extends Enum<FileType>
+ + +

+All supported types of files. +

+ +

+

+
Author:
+
Vincent Behar
+
+
+ +

+ + + + + + + + + + + + + +
+Enum Constant Summary
XML + +
+           
YAML + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static FileTypevalueOf(String name) + +
+          Returns the enum constant of this type with the specified name.
+static FileType[]values() + +
+          Returns an array containing the constants of this enum type, in +the order they are declared.
+ + + + + + + +
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
+ + + + + + + +
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Enum Constant Detail
+ +

+XML

+
+public static final FileType XML
+
+
+
+
+
+ +

+YAML

+
+public static final FileType YAML
+
+
+
+
+ + + + + + + + +
+Method Detail
+ +

+values

+
+public static FileType[] values()
+
+
Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
+for (FileType c : FileType.values())
+    System.out.println(c);
+
+

+

+ +
Returns:
an array containing the constants of this enum type, in +the order they are declared
+
+
+
+ +

+valueOf

+
+public static FileType valueOf(String name)
+
+
Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.) +

+

+
Parameters:
name - the name of the enum constant to be returned. +
Returns:
the enum constant with the specified name +
Throws: +
IllegalArgumentException - if this enum type has no constant +with the specified name +
NullPointerException - if the argument is null
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2011. All Rights Reserved. + + diff --git a/apidocs/org/rundeck/api/NodeFiltersBuilder.html b/apidocs/org/rundeck/api/NodeFiltersBuilder.html index 15ad067..1afa3cd 100644 --- a/apidocs/org/rundeck/api/NodeFiltersBuilder.html +++ b/apidocs/org/rundeck/api/NodeFiltersBuilder.html @@ -2,13 +2,13 @@ - + -NodeFiltersBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API) +NodeFiltersBuilder (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ NodeFiltersBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NodeFiltersBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="NodeFiltersBuilder (RunDeck API - Java Client 1.1 API)"; } } @@ -56,7 +56,7 @@ function windowTitle() - PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   @@ -611,7 +611,7 @@ public - PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   diff --git a/apidocs/org/rundeck/api/OptionsBuilder.html b/apidocs/org/rundeck/api/OptionsBuilder.html index 76e5bc0..686d162 100644 --- a/apidocs/org/rundeck/api/OptionsBuilder.html +++ b/apidocs/org/rundeck/api/OptionsBuilder.html @@ -2,13 +2,13 @@ - + -OptionsBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API) +OptionsBuilder (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ OptionsBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="OptionsBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="OptionsBuilder (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/RundeckApiException.RundeckApiLoginException.html b/apidocs/org/rundeck/api/RundeckApiException.RundeckApiLoginException.html index 597e61d..fdee321 100644 --- a/apidocs/org/rundeck/api/RundeckApiException.RundeckApiLoginException.html +++ b/apidocs/org/rundeck/api/RundeckApiException.RundeckApiLoginException.html @@ -2,13 +2,13 @@ - + -RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1-SNAP function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/RundeckApiException.html b/apidocs/org/rundeck/api/RundeckApiException.html index c3f2328..e32cf4b 100644 --- a/apidocs/org/rundeck/api/RundeckApiException.html +++ b/apidocs/org/rundeck/api/RundeckApiException.html @@ -2,13 +2,13 @@ - + -RundeckApiException (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckApiException (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckApiException (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckApiException (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckApiException (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/RundeckClient.html b/apidocs/org/rundeck/api/RundeckClient.html index d4fd8fd..6b22c95 100644 --- a/apidocs/org/rundeck/api/RundeckClient.html +++ b/apidocs/org/rundeck/api/RundeckClient.html @@ -2,13 +2,13 @@ - + -RundeckClient (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckClient (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckClient (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckClient (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckClient (RunDeck API - Java Client 1.1 API)"; } } @@ -110,13 +110,17 @@ Main entry point to talk to a RunDeck instance.
  RundeckClient rundeck = new RundeckClient("http://localhost:4440", "admin", "admin");
- List<RundeckJob> jobs = rundeck.getJobs();
+ 
+ List<RundeckProject> projects = rundeck.getProjects();
  
  RundeckJob job = rundeck.findJob("my-project", "main-group/sub-group", "job-name");
  RundeckExecution execution = rundeck.triggerJob(job.getId(),
                                                  new OptionsBuilder().addOption("version", "1.2.0").toProperties());
  
  List<RundeckExecution> runningExecutions = rundeck.getRunningExecutions("my-project");
+ 
+ rundeck.exportJobsToFile("/tmp/jobs.xml", FileType.XML, "my-project");
+ rundeck.importJobs("/tmp/jobs.xml", FileType.XML);
  

@@ -208,7 +212,8 @@ Main entry point to talk to a RunDeck instance.
 InputStream -exportJob(String jobId) +exportJob(FileType format, + String jobId)
          Export the definition of a single job, identified by the given ID @@ -216,7 +221,17 @@ Main entry point to talk to a RunDeck instance.
 InputStream -exportJobs(String project) +exportJob(String format, + String jobId) + +
+          Export the definition of a single job, identified by the given ID + + + + InputStream +exportJobs(FileType format, + String project)
          Export the definitions of all jobs that belongs to the given project @@ -224,7 +239,30 @@ Main entry point to talk to a RunDeck instance.
 InputStream -exportJobs(String project, +exportJobs(FileType format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) + + + + InputStream +exportJobs(String format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project + + + + InputStream +exportJobs(String format, + String project, String jobFilter, String groupPath, String... jobIds) @@ -236,16 +274,18 @@ Main entry point to talk to a RunDeck instance.
 void -exportJobsToFile(String filename, +exportJobsToFile(String filename, + FileType format, String project)
-          Export the definitions of all jobs that belongs to the given project, as an XML file +          Export the definitions of all jobs that belongs to the given project  void -exportJobsToFile(String filename, +exportJobsToFile(String filename, + FileType format, String project, String jobFilter, String groupPath, @@ -253,16 +293,51 @@ Main entry point to talk to a RunDeck instance.

          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, - groupPath and jobIds), as an XML file + groupPath and jobIds)  void -exportJobToFile(String filename, +exportJobsToFile(String filename, + String format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project + + + + void +exportJobsToFile(String filename, + String format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) + + + + void +exportJobToFile(String filename, + FileType format, String jobId)
-          Export the definition of a single job (identified by the given ID), as an XML file +          Export the definition of a single job (identified by the given ID) + + + + void +exportJobToFile(String filename, + String format, + String jobId) + +
+          Export the definition of a single job (identified by the given ID) @@ -315,6 +390,26 @@ Main entry point to talk to a RunDeck instance.
Long max, Long offset)
+
+          Get the executions of the given job + + + + List<RundeckExecution> +getJobExecutions(String jobId, + String status) + +
+          Get the executions of the given job + + + + List<RundeckExecution> +getJobExecutions(String jobId, + String status, + Long max, + Long offset) +
          Get the executions of the given job @@ -453,6 +548,82 @@ Main entry point to talk to a RunDeck instance.
+ RundeckJobsImportResult +importJobs(InputStream stream, + FileType fileType) + +
+          Import the definitions of jobs, from the given input stream + + + + RundeckJobsImportResult +importJobs(InputStream stream, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior + + + + RundeckJobsImportResult +importJobs(InputStream stream, + String fileType) + +
+          Import the definitions of jobs, from the given input stream + + + + RundeckJobsImportResult +importJobs(InputStream stream, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior + + + + RundeckJobsImportResult +importJobs(String filename, + FileType fileType) + +
+          Import the definitions of jobs, from the given file + + + + RundeckJobsImportResult +importJobs(String filename, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior + + + + RundeckJobsImportResult +importJobs(String filename, + String fileType) + +
+          Import the definitions of jobs, from the given file + + + + RundeckJobsImportResult +importJobs(String filename, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior + + +  void ping() @@ -889,37 +1060,68 @@ public

+

exportJobsToFile

 public void exportJobsToFile(String filename,
+                             String format,
                              String project)
                       throws RundeckApiException,
                              RundeckApiException.RundeckApiLoginException,
                              IllegalArgumentException,
                              IOException
-
Export the definitions of all jobs that belongs to the given project, as an XML file +
Export the definitions of all jobs that belongs to the given project

-
Parameters:
filename - path of the file where the content should be saved
project - name of the project - mandatory +
Parameters:
filename - path of the file where the content should be saved - mandatory
format - of the export. See FileType - mandatory
project - name of the project - mandatory
Throws:
RundeckApiException - in case of error when calling the API (non-existent project with this name)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the project is blank (null, empty or whitespace) -
IOException - if we failed to write to the file
See Also:
exportJobsToFile(String, String, String, String, String...), -exportJobs(String)
+
IllegalArgumentException - if the format or project is blank (null, empty or whitespace), or the format is + invalid +
IOException - if we failed to write to the file
See Also:
exportJobsToFile(String, FileType, String, String, String, String...), +exportJobs(String, String)


-

+

exportJobsToFile

 public void exportJobsToFile(String filename,
+                             FileType format,
+                             String project)
+                      throws RundeckApiException,
+                             RundeckApiException.RundeckApiLoginException,
+                             IllegalArgumentException,
+                             IOException
+
+
Export the definitions of all jobs that belongs to the given project +

+

+
+
+
+
Parameters:
filename - path of the file where the content should be saved - mandatory
format - of the export. See FileType - mandatory
project - name of the project - mandatory +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent project with this name) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the project is blank (null, empty or whitespace) or the format is null +
IOException - if we failed to write to the file
See Also:
exportJobsToFile(String, FileType, String, String, String, String...), +exportJobs(FileType, String)
+
+
+
+ +

+exportJobsToFile

+
+public void exportJobsToFile(String filename,
+                             String format,
                              String project,
                              String jobFilter,
                              String groupPath,
@@ -930,27 +1132,61 @@ public void exportJobsToFile(IOException
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, - groupPath and jobIds), as an XML file + groupPath and jobIds)

-
Parameters:
filename - path of the file where the content should be saved
project - name of the project - mandatory
jobFilter - a filter for the job Name - optional
groupPath - a group or partial group path to include all jobs within that group path - optional
jobIds - a list of Job IDs to include - optional +
Parameters:
filename - path of the file where the content should be saved - mandatory
format - of the export. See FileType - mandatory
project - name of the project - mandatory
jobFilter - a filter for the job Name - optional
groupPath - a group or partial group path to include all jobs within that group path - optional
jobIds - a list of Job IDs to include - optional
Throws:
RundeckApiException - in case of error when calling the API (non-existent project with this name)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the project is blank (null, empty or whitespace) -
IOException - if we failed to write to the file
See Also:
exportJobsToFile(String, String), -exportJobs(String, String, String, String...)
+
IllegalArgumentException - if the filename, format or project is blank (null, empty or whitespace), or the + format is invalid +
IOException - if we failed to write to the file
See Also:
exportJobsToFile(String, FileType, String, String, String, String...), +exportJobs(FileType, String, String, String, String...)


-

+

+exportJobsToFile

+
+public void exportJobsToFile(String filename,
+                             FileType format,
+                             String project,
+                             String jobFilter,
+                             String groupPath,
+                             String... jobIds)
+                      throws RundeckApiException,
+                             RundeckApiException.RundeckApiLoginException,
+                             IllegalArgumentException,
+                             IOException
+
+
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) +

+

+
+
+
+
Parameters:
filename - path of the file where the content should be saved - mandatory
format - of the export. See FileType - mandatory
project - name of the project - mandatory
jobFilter - a filter for the job Name - optional
groupPath - a group or partial group path to include all jobs within that group path - optional
jobIds - a list of Job IDs to include - optional +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent project with this name) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the filename or project is blank (null, empty or whitespace), or the format + is null +
IOException - if we failed to write to the file
See Also:
exportJobs(FileType, String, String, String, String...)
+
+
+
+ +

exportJobs

-public InputStream exportJobs(String project)
+public InputStream exportJobs(String format,
+                              String project)
                        throws RundeckApiException,
                               RundeckApiException.RundeckApiLoginException,
                               IllegalArgumentException
@@ -961,21 +1197,49 @@ public FileType - mandatory
project - name of the project - mandatory
Returns:
an InputStream instance, not linked to any network resources - won't be null
Throws:
RundeckApiException - in case of error when calling the API (non-existent project with this name)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the project is blank (null, empty or whitespace)
See Also:
exportJobs(String, String, String, String...), -exportJobsToFile(String, String) +
IllegalArgumentException - if the format or project is blank (null, empty or whitespace), or the format is + invalid
See Also:
exportJobs(FileType, String, String, String, String...), +exportJobsToFile(String, String, String)

-

+

exportJobs

-public InputStream exportJobs(String project,
+public InputStream exportJobs(FileType format,
+                              String project)
+                       throws RundeckApiException,
+                              RundeckApiException.RundeckApiLoginException,
+                              IllegalArgumentException
+
+
Export the definitions of all jobs that belongs to the given project +

+

+
+
+
+
Parameters:
format - of the export. See FileType - mandatory
project - name of the project - mandatory +
Returns:
an InputStream instance, not linked to any network resources - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent project with this name) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the project is blank (null, empty or whitespace) or the format is null
See Also:
exportJobs(FileType, String, String, String, String...), +exportJobsToFile(String, FileType, String)
+
+
+
+ +

+exportJobs

+
+public InputStream exportJobs(String format,
+                              String project,
                               String jobFilter,
                               String groupPath,
                               String... jobIds)
@@ -990,48 +1254,111 @@ public FileType - mandatory
project - name of the project - mandatory
jobFilter - a filter for the job Name - optional
groupPath - a group or partial group path to include all jobs within that group path - optional
jobIds - a list of Job IDs to include - optional
Returns:
an InputStream instance, not linked to any network resources - won't be null
Throws:
RundeckApiException - in case of error when calling the API (non-existent project with this name)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the project is blank (null, empty or whitespace)
See Also:
exportJobs(String), -exportJobsToFile(String, String, String, String, String...) +
IllegalArgumentException - if the format or project is blank (null, empty or whitespace), or the format is + invalid
See Also:
exportJobs(FileType, String, String, String, String...), +exportJobsToFile(String, String, String, String, String, String...)

-

+

+exportJobs

+
+public InputStream exportJobs(FileType format,
+                              String project,
+                              String jobFilter,
+                              String groupPath,
+                              String... jobIds)
+                       throws RundeckApiException,
+                              RundeckApiException.RundeckApiLoginException,
+                              IllegalArgumentException
+
+
Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) +

+

+
+
+
+
Parameters:
format - of the export. See FileType - mandatory
project - name of the project - mandatory
jobFilter - a filter for the job Name - optional
groupPath - a group or partial group path to include all jobs within that group path - optional
jobIds - a list of Job IDs to include - optional +
Returns:
an InputStream instance, not linked to any network resources - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent project with this name) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the project is blank (null, empty or whitespace) or the format is null
See Also:
exportJobsToFile(String, FileType, String, String, String, String...)
+
+
+
+ +

exportJobToFile

 public void exportJobToFile(String filename,
+                            String format,
                             String jobId)
                      throws RundeckApiException,
                             RundeckApiException.RundeckApiLoginException,
                             IllegalArgumentException,
                             IOException
-
Export the definition of a single job (identified by the given ID), as an XML file +
Export the definition of a single job (identified by the given ID)

-
Parameters:
filename - path of the file where the content should be saved
jobId - identifier of the job - mandatory +
Parameters:
filename - path of the file where the content should be saved - mandatory
format - of the export. See FileType - mandatory
jobId - identifier of the job - mandatory
Throws:
RundeckApiException - in case of error when calling the API (non-existent job with this ID)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the jobId is blank (null, empty or whitespace) -
IOException - if we failed to write to the file
See Also:
exportJob(String), +
IllegalArgumentException - if the filename, format or jobId is blank (null, empty or whitespace), or the + format is invalid +
IOException - if we failed to write to the file
See Also:
exportJobToFile(String, FileType, String), +exportJob(String, String), getJob(String)

-

+

+exportJobToFile

+
+public void exportJobToFile(String filename,
+                            FileType format,
+                            String jobId)
+                     throws RundeckApiException,
+                            RundeckApiException.RundeckApiLoginException,
+                            IllegalArgumentException,
+                            IOException
+
+
Export the definition of a single job (identified by the given ID) +

+

+
+
+
+
Parameters:
filename - path of the file where the content should be saved - mandatory
format - of the export. See FileType - mandatory
jobId - identifier of the job - mandatory +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent job with this ID) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the filename or jobId is blank (null, empty or whitespace), or the format is + null +
IOException - if we failed to write to the file
See Also:
exportJob(FileType, String), +getJob(String)
+
+
+
+ +

exportJob

-public InputStream exportJob(String jobId)
+public InputStream exportJob(String format,
+                             String jobId)
                       throws RundeckApiException,
                              RundeckApiException.RundeckApiLoginException,
                              IllegalArgumentException
@@ -1042,17 +1369,266 @@ public FileType - mandatory
jobId - identifier of the job - mandatory
Returns:
an InputStream instance, not linked to any network resources - won't be null
Throws:
RundeckApiException - in case of error when calling the API (non-existent job with this ID)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the jobId is blank (null, empty or whitespace)
See Also:
exportJobToFile(String, String), +
IllegalArgumentException - if the format or jobId is blank (null, empty or whitespace), or the format is + invalid
See Also:
exportJobToFile(String, String, String), getJob(String)

+

+exportJob

+
+public InputStream exportJob(FileType format,
+                             String jobId)
+                      throws RundeckApiException,
+                             RundeckApiException.RundeckApiLoginException,
+                             IllegalArgumentException
+
+
Export the definition of a single job, identified by the given ID +

+

+
+
+
+
Parameters:
format - of the export. See FileType - mandatory
jobId - identifier of the job - mandatory +
Returns:
an InputStream instance, not linked to any network resources - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent job with this ID) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the jobId is blank (null, empty or whitespace), or the format is null
See Also:
exportJobToFile(String, FileType, String), +getJob(String)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(String filename,
+                                          String fileType)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException,
+                                          IOException
+
+
Import the definitions of jobs, from the given file +

+

+
+
+
+
Parameters:
filename - of the file containing the jobs definitions - mandatory
fileType - type of the file. See FileType - mandatory +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the filename or fileType is blank (null, empty or whitespace), or the + fileType is invalid +
IOException - if we failed to read the file
See Also:
importJobs(InputStream, String), +importJobs(String, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(String filename,
+                                          FileType fileType)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException,
+                                          IOException
+
+
Import the definitions of jobs, from the given file +

+

+
+
+
+
Parameters:
filename - of the file containing the jobs definitions - mandatory
fileType - type of the file. See FileType - mandatory +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the filename is blank (null, empty or whitespace), or the fileType is null +
IOException - if we failed to read the file
See Also:
importJobs(InputStream, FileType), +importJobs(String, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(String filename,
+                                          String fileType,
+                                          String importBehavior)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException,
+                                          IOException
+
+
Import the definitions of jobs, from the given file, using the given behavior +

+

+
+
+
+
Parameters:
filename - of the file containing the jobs definitions - mandatory
fileType - type of the file. See FileType - mandatory
importBehavior - see RundeckJobsImportMethod +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the filename or fileType is blank (null, empty or whitespace), or the + fileType or behavior is not valid +
IOException - if we failed to read the file
See Also:
importJobs(InputStream, String, String), +importJobs(String, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(String filename,
+                                          FileType fileType,
+                                          RundeckJobsImportMethod importBehavior)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException,
+                                          IOException
+
+
Import the definitions of jobs, from the given file, using the given behavior +

+

+
+
+
+
Parameters:
filename - of the file containing the jobs definitions - mandatory
fileType - type of the file. See FileType - mandatory
importBehavior - see RundeckJobsImportMethod +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the filename is blank (null, empty or whitespace), or the fileType is null +
IOException - if we failed to read the file
See Also:
importJobs(InputStream, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(InputStream stream,
+                                          String fileType)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException
+
+
Import the definitions of jobs, from the given input stream +

+

+
+
+
+
Parameters:
stream - inputStream for reading the definitions - mandatory
fileType - type of the file. See FileType - mandatory +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the stream is null, or the fileType is blank (null, empty or whitespace) or + invalid
See Also:
importJobs(String, String), +importJobs(InputStream, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(InputStream stream,
+                                          FileType fileType)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException
+
+
Import the definitions of jobs, from the given input stream +

+

+
+
+
+
Parameters:
stream - inputStream for reading the definitions - mandatory
fileType - type of the file. See FileType - mandatory +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the stream or fileType is null
See Also:
importJobs(String, FileType), +importJobs(InputStream, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(InputStream stream,
+                                          String fileType,
+                                          String importBehavior)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException
+
+
Import the definitions of jobs, from the given input stream, using the given behavior +

+

+
+
+
+
Parameters:
stream - inputStream for reading the definitions - mandatory
fileType - type of the file. See FileType - mandatory
importBehavior - see RundeckJobsImportMethod +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the stream is null, or the fileType is blank (null, empty or whitespace), or + the fileType or behavior is not valid
See Also:
importJobs(String, String, String), +importJobs(InputStream, FileType, RundeckJobsImportMethod)
+
+
+
+ +

+importJobs

+
+public RundeckJobsImportResult importJobs(InputStream stream,
+                                          FileType fileType,
+                                          RundeckJobsImportMethod importBehavior)
+                                   throws RundeckApiException,
+                                          RundeckApiException.RundeckApiLoginException,
+                                          IllegalArgumentException
+
+
Import the definitions of jobs, from the given input stream, using the given behavior +

+

+
+
+
+
Parameters:
stream - inputStream for reading the definitions - mandatory
fileType - type of the file. See FileType - mandatory
importBehavior - see RundeckJobsImportMethod +
Returns:
a RundeckJobsImportResult instance - won't be null +
Throws: +
RundeckApiException - in case of error when calling the API +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the stream or fileType is null
See Also:
importJobs(String, FileType, RundeckJobsImportMethod)
+
+
+
+

findJob

@@ -1100,7 +1676,7 @@ public RundeckApiException - in case of error when calling the API (non-existent job with this ID)
 
RundeckApiException.RundeckApiLoginException - if the login failed
IllegalArgumentException - if the jobId is blank (null, empty or whitespace)
See Also:
findJob(String, String, String), -exportJob(String) +#exportJob(String)

@@ -1644,7 +2220,7 @@ public List of RundeckExecution : might be empty, but won't be null
Throws:
RundeckApiException - in case of error when calling the API -
RundeckApiException.RundeckApiLoginException - if the login failed +
RundeckApiException.RundeckApiLoginException - if the login failed
See Also:
getRunningExecutions(String)

@@ -1668,7 +2244,7 @@ public RundeckApiException - in case of error when calling the API (non-existent project with this name)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the project is blank (null, empty or whitespace) +
IllegalArgumentException - if the project is blank (null, empty or whitespace)
See Also:
getRunningExecutions()

@@ -1692,7 +2268,33 @@ public RundeckApiException - in case of error when calling the API (non-existent job with this ID)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the jobId is blank (null, empty or whitespace) +
IllegalArgumentException - if the jobId is blank (null, empty or whitespace)
See Also:
#getJobExecutions(String, ExecutionStatus, Long, Long) +
+ +
+ +

+getJobExecutions

+
+public List<RundeckExecution> getJobExecutions(String jobId,
+                                               String status)
+                                        throws RundeckApiException,
+                                               RundeckApiException.RundeckApiLoginException,
+                                               IllegalArgumentException
+
+
Get the executions of the given job +

+

+
+
+
+
Parameters:
jobId - identifier of the job - mandatory
status - of the executions, see RundeckExecution.ExecutionStatus - optional (null for all) +
Returns:
a List of RundeckExecution : might be empty, but won't be null +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent job with this ID) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the jobId is blank (null, empty or whitespace), or the executionStatus is + invalid
See Also:
#getJobExecutions(String, ExecutionStatus, Long, Long)

@@ -1712,12 +2314,40 @@ public RundeckExecution.ExecutionStatus - optional (null for all)
Returns:
a List of RundeckExecution : might be empty, but won't be null
Throws:
RundeckApiException - in case of error when calling the API (non-existent job with this ID)
RundeckApiException.RundeckApiLoginException - if the login failed -
IllegalArgumentException - if the jobId is blank (null, empty or whitespace) +
IllegalArgumentException - if the jobId is blank (null, empty or whitespace)
See Also:
#getJobExecutions(String, ExecutionStatus, Long, Long) +
+ +
+ +

+getJobExecutions

+
+public List<RundeckExecution> getJobExecutions(String jobId,
+                                               String status,
+                                               Long max,
+                                               Long offset)
+                                        throws RundeckApiException,
+                                               RundeckApiException.RundeckApiLoginException,
+                                               IllegalArgumentException
+
+
Get the executions of the given job +

+

+
+
+
+
Parameters:
jobId - identifier of the job - mandatory
status - of the executions, see RundeckExecution.ExecutionStatus - optional (null for all)
max - number of results to return - optional (null for all)
offset - the 0-indexed offset for the first result to return - optional +
Returns:
a List of RundeckExecution : might be empty, but won't be null +
Throws: +
RundeckApiException - in case of error when calling the API (non-existent job with this ID) +
RundeckApiException.RundeckApiLoginException - if the login failed +
IllegalArgumentException - if the jobId is blank (null, empty or whitespace), or the executionStatus is + invalid
See Also:
#getJobExecutions(String, ExecutionStatus, Long, Long)

@@ -1739,7 +2369,7 @@ public RundeckExecution.ExecutionStatus - optional (null for all)
max - number of results to return - optional (null for all)
offset - the 0-indexed offset for the first result to return - optional
Returns:
a List of RundeckExecution : might be empty, but won't be null
Throws:
RundeckApiException - in case of error when calling the API (non-existent job with this ID) diff --git a/apidocs/org/rundeck/api/class-use/FileType.html b/apidocs/org/rundeck/api/class-use/FileType.html new file mode 100644 index 0000000..054132d --- /dev/null +++ b/apidocs/org/rundeck/api/class-use/FileType.html @@ -0,0 +1,301 @@ + + + + + + + +Uses of Class org.rundeck.api.FileType (RunDeck API - Java Client 1.1 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.rundeck.api.FileType

+
+ + + + + + + + + +
+Packages that use FileType
org.rundeck.apiJava client for the RunDeck API. 
+  +

+ + + + + +
+Uses of FileType in org.rundeck.api
+  +

+ + + + + + + + + + + + + +
Methods in org.rundeck.api that return FileType
+static FileTypeFileType.valueOf(String name) + +
+          Returns the enum constant of this type with the specified name.
+static FileType[]FileType.values() + +
+          Returns an array containing the constants of this enum type, in +the order they are declared.
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.rundeck.api with parameters of type FileType
+ InputStreamRundeckClient.exportJob(FileType format, + String jobId) + +
+          Export the definition of a single job, identified by the given ID
+ InputStreamRundeckClient.exportJobs(FileType format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project
+ InputStreamRundeckClient.exportJobs(FileType format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds)
+ voidRundeckClient.exportJobsToFile(String filename, + FileType format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project
+ voidRundeckClient.exportJobsToFile(String filename, + FileType format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds)
+ voidRundeckClient.exportJobToFile(String filename, + FileType format, + String jobId) + +
+          Export the definition of a single job (identified by the given ID)
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + FileType fileType) + +
+          Import the definitions of jobs, from the given input stream
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + FileType fileType) + +
+          Import the definitions of jobs, from the given file
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2011. All Rights Reserved. + + diff --git a/apidocs/org/rundeck/api/class-use/NodeFiltersBuilder.html b/apidocs/org/rundeck/api/class-use/NodeFiltersBuilder.html index e2e7288..ae968f9 100644 --- a/apidocs/org/rundeck/api/class-use/NodeFiltersBuilder.html +++ b/apidocs/org/rundeck/api/class-use/NodeFiltersBuilder.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.NodeFiltersBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.NodeFiltersBuilder (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.NodeFiltersBuilder (RunDeck API - Java Client 1.1- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.NodeFiltersBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.NodeFiltersBuilder (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/class-use/OptionsBuilder.html b/apidocs/org/rundeck/api/class-use/OptionsBuilder.html index 5eaf7fe..cda3373 100644 --- a/apidocs/org/rundeck/api/class-use/OptionsBuilder.html +++ b/apidocs/org/rundeck/api/class-use/OptionsBuilder.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.OptionsBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.OptionsBuilder (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.OptionsBuilder (RunDeck API - Java Client 1.1-SNAP function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.OptionsBuilder (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.OptionsBuilder (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/class-use/RundeckApiException.RundeckApiLoginException.html b/apidocs/org/rundeck/api/class-use/RundeckApiException.RundeckApiLoginException.html index 137786b..5fab596 100644 --- a/apidocs/org/rundeck/api/class-use/RundeckApiException.RundeckApiLoginException.html +++ b/apidocs/org/rundeck/api/class-use/RundeckApiException.RundeckApiLoginException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.RundeckApiException.RundeckApiLoginException (RunD function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.RundeckApiException.RundeckApiLoginException (RunDeck API - Java Client 1.1 API)"; } } @@ -130,7 +130,8 @@ Uses of  InputStream -RundeckClient.exportJob(String jobId) +RundeckClient.exportJob(FileType format, + String jobId)
          Export the definition of a single job, identified by the given ID @@ -138,7 +139,17 @@ Uses of  InputStream -RundeckClient.exportJobs(String project) +RundeckClient.exportJob(String format, + String jobId) + +
+          Export the definition of a single job, identified by the given ID + + + + InputStream +RundeckClient.exportJobs(FileType format, + String project)
          Export the definitions of all jobs that belongs to the given project @@ -146,7 +157,30 @@ Uses of  InputStream -RundeckClient.exportJobs(String project, +RundeckClient.exportJobs(FileType format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) + + + + InputStream +RundeckClient.exportJobs(String format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project + + + + InputStream +RundeckClient.exportJobs(String format, + String project, String jobFilter, String groupPath, String... jobIds) @@ -158,16 +192,18 @@ Uses of  void -RundeckClient.exportJobsToFile(String filename, +RundeckClient.exportJobsToFile(String filename, + FileType format, String project)
-          Export the definitions of all jobs that belongs to the given project, as an XML file +          Export the definitions of all jobs that belongs to the given project  void -RundeckClient.exportJobsToFile(String filename, +RundeckClient.exportJobsToFile(String filename, + FileType format, String project, String jobFilter, String groupPath, @@ -175,16 +211,51 @@ Uses of  void -RundeckClient.exportJobToFile(String filename, +RundeckClient.exportJobsToFile(String filename, + String format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project + + + + void +RundeckClient.exportJobsToFile(String filename, + String format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) + + + + void +RundeckClient.exportJobToFile(String filename, + FileType format, String jobId)
-          Export the definition of a single job (identified by the given ID), as an XML file +          Export the definition of a single job (identified by the given ID) + + + + void +RundeckClient.exportJobToFile(String filename, + String format, + String jobId) + +
+          Export the definition of a single job (identified by the given ID) @@ -237,6 +308,26 @@ Uses of Long max, Long offset)
+
+          Get the executions of the given job + + + + List<RundeckExecution> +RundeckClient.getJobExecutions(String jobId, + String status) + +
+          Get the executions of the given job + + + + List<RundeckExecution> +RundeckClient.getJobExecutions(String jobId, + String status, + Long max, + Long offset) +
          Get the executions of the given job @@ -343,6 +434,82 @@ Uses of + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + FileType fileType) + +
+          Import the definitions of jobs, from the given input stream + + + + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior + + + + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + String fileType) + +
+          Import the definitions of jobs, from the given input stream + + + + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + FileType fileType) + +
+          Import the definitions of jobs, from the given file + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + String fileType) + +
+          Import the definitions of jobs, from the given file + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior + + +  RundeckExecution RundeckClient.runAdhocCommand(String project, String command) diff --git a/apidocs/org/rundeck/api/class-use/RundeckApiException.html b/apidocs/org/rundeck/api/class-use/RundeckApiException.html index d2f03cd..b510e25 100644 --- a/apidocs/org/rundeck/api/class-use/RundeckApiException.html +++ b/apidocs/org/rundeck/api/class-use/RundeckApiException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.RundeckApiException (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.RundeckApiException (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.RundeckApiException (RunDeck API - Java Client 1.1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.RundeckApiException (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.RundeckApiException (RunDeck API - Java Client 1.1 API)"; } } @@ -150,7 +150,8 @@ Uses of  InputStream -RundeckClient.exportJob(String jobId) +RundeckClient.exportJob(FileType format, + String jobId)
          Export the definition of a single job, identified by the given ID @@ -158,7 +159,17 @@ Uses of  InputStream -RundeckClient.exportJobs(String project) +RundeckClient.exportJob(String format, + String jobId) + +
+          Export the definition of a single job, identified by the given ID + + + + InputStream +RundeckClient.exportJobs(FileType format, + String project)
          Export the definitions of all jobs that belongs to the given project @@ -166,7 +177,30 @@ Uses of  InputStream -RundeckClient.exportJobs(String project, +RundeckClient.exportJobs(FileType format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) + + + + InputStream +RundeckClient.exportJobs(String format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project + + + + InputStream +RundeckClient.exportJobs(String format, + String project, String jobFilter, String groupPath, String... jobIds) @@ -178,16 +212,18 @@ Uses of  void -RundeckClient.exportJobsToFile(String filename, +RundeckClient.exportJobsToFile(String filename, + FileType format, String project)
-          Export the definitions of all jobs that belongs to the given project, as an XML file +          Export the definitions of all jobs that belongs to the given project  void -RundeckClient.exportJobsToFile(String filename, +RundeckClient.exportJobsToFile(String filename, + FileType format, String project, String jobFilter, String groupPath, @@ -195,16 +231,51 @@ Uses of  void -RundeckClient.exportJobToFile(String filename, +RundeckClient.exportJobsToFile(String filename, + String format, + String project) + +
+          Export the definitions of all jobs that belongs to the given project + + + + void +RundeckClient.exportJobsToFile(String filename, + String format, + String project, + String jobFilter, + String groupPath, + String... jobIds) + +
+          Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, + groupPath and jobIds) + + + + void +RundeckClient.exportJobToFile(String filename, + FileType format, String jobId)
-          Export the definition of a single job (identified by the given ID), as an XML file +          Export the definition of a single job (identified by the given ID) + + + + void +RundeckClient.exportJobToFile(String filename, + String format, + String jobId) + +
+          Export the definition of a single job (identified by the given ID) @@ -257,6 +328,26 @@ Uses of Long max, Long offset)
+
+          Get the executions of the given job + + + + List<RundeckExecution> +RundeckClient.getJobExecutions(String jobId, + String status) + +
+          Get the executions of the given job + + + + List<RundeckExecution> +RundeckClient.getJobExecutions(String jobId, + String status, + Long max, + Long offset) +
          Get the executions of the given job @@ -363,6 +454,82 @@ Uses of + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + FileType fileType) + +
+          Import the definitions of jobs, from the given input stream + + + + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior + + + + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + String fileType) + +
+          Import the definitions of jobs, from the given input stream + + + + RundeckJobsImportResult +RundeckClient.importJobs(InputStream stream, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + FileType fileType) + +
+          Import the definitions of jobs, from the given file + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + String fileType) + +
+          Import the definitions of jobs, from the given file + + + + RundeckJobsImportResult +RundeckClient.importJobs(String filename, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior + + +  void RundeckClient.ping() diff --git a/apidocs/org/rundeck/api/class-use/RundeckClient.html b/apidocs/org/rundeck/api/class-use/RundeckClient.html index 2647449..458dd67 100644 --- a/apidocs/org/rundeck/api/class-use/RundeckClient.html +++ b/apidocs/org/rundeck/api/class-use/RundeckClient.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.RundeckClient (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.RundeckClient (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.RundeckClient (RunDeck API - Java Client 1.1-SNAPS function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.RundeckClient (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.RundeckClient (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/RundeckAbort.AbortStatus.html b/apidocs/org/rundeck/api/domain/RundeckAbort.AbortStatus.html index a697149..7dbda2b 100644 --- a/apidocs/org/rundeck/api/domain/RundeckAbort.AbortStatus.html +++ b/apidocs/org/rundeck/api/domain/RundeckAbort.AbortStatus.html @@ -2,13 +2,13 @@ - + -RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/RundeckAbort.html b/apidocs/org/rundeck/api/domain/RundeckAbort.html index 0b9f4c5..c5fea84 100644 --- a/apidocs/org/rundeck/api/domain/RundeckAbort.html +++ b/apidocs/org/rundeck/api/domain/RundeckAbort.html @@ -2,13 +2,13 @@ - + -RundeckAbort (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckAbort (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckAbort (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckAbort (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckAbort (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/RundeckExecution.ExecutionStatus.html b/apidocs/org/rundeck/api/domain/RundeckExecution.ExecutionStatus.html index fd26335..c9a92e3 100644 --- a/apidocs/org/rundeck/api/domain/RundeckExecution.ExecutionStatus.html +++ b/apidocs/org/rundeck/api/domain/RundeckExecution.ExecutionStatus.html @@ -2,13 +2,13 @@ - + -RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/RundeckExecution.html b/apidocs/org/rundeck/api/domain/RundeckExecution.html index 3bcc826..7d5b179 100644 --- a/apidocs/org/rundeck/api/domain/RundeckExecution.html +++ b/apidocs/org/rundeck/api/domain/RundeckExecution.html @@ -2,13 +2,13 @@ - + -RundeckExecution (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckExecution (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckExecution (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckExecution (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckExecution (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/RundeckJob.html b/apidocs/org/rundeck/api/domain/RundeckJob.html index 3c96f00..d7f2876 100644 --- a/apidocs/org/rundeck/api/domain/RundeckJob.html +++ b/apidocs/org/rundeck/api/domain/RundeckJob.html @@ -2,13 +2,13 @@ - + -RundeckJob (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckJob (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckJob (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckJob (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckJob (RunDeck API - Java Client 1.1 API)"; } } @@ -57,7 +57,7 @@ function windowTitle()  PREV CLASS  - NEXT CLASSNEXT CLASS
FRAMES    NO FRAMES   @@ -520,7 +520,7 @@ public boolean equals(  PREV CLASS  - NEXT CLASSNEXT CLASS FRAMES    NO FRAMES   diff --git a/apidocs/org/rundeck/api/domain/RundeckJobsImportMethod.html b/apidocs/org/rundeck/api/domain/RundeckJobsImportMethod.html new file mode 100644 index 0000000..95a520b --- /dev/null +++ b/apidocs/org/rundeck/api/domain/RundeckJobsImportMethod.html @@ -0,0 +1,347 @@ + + + + + + + +RundeckJobsImportMethod (RunDeck API - Java Client 1.1 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.rundeck.api.domain +
+Enum RundeckJobsImportMethod

+
+java.lang.Object
+  extended by java.lang.Enum<RundeckJobsImportMethod>
+      extended by org.rundeck.api.domain.RundeckJobsImportMethod
+
+
+
All Implemented Interfaces:
Serializable, Comparable<RundeckJobsImportMethod>
+
+
+
+
public enum RundeckJobsImportMethod
extends Enum<RundeckJobsImportMethod>
+
+ +

+The behavior when importing jobs (which may already exist). +

+ +

+

+
Author:
+
Vincent Behar
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Enum Constant Summary
CREATE + +
+           
SKIP + +
+           
UPDATE + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static RundeckJobsImportMethodvalueOf(String name) + +
+          Returns the enum constant of this type with the specified name.
+static RundeckJobsImportMethod[]values() + +
+          Returns an array containing the constants of this enum type, in +the order they are declared.
+ + + + + + + +
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
+ + + + + + + +
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Enum Constant Detail
+ +

+CREATE

+
+public static final RundeckJobsImportMethod CREATE
+
+
+
+
+
+ +

+UPDATE

+
+public static final RundeckJobsImportMethod UPDATE
+
+
+
+
+
+ +

+SKIP

+
+public static final RundeckJobsImportMethod SKIP
+
+
+
+
+ + + + + + + + +
+Method Detail
+ +

+values

+
+public static RundeckJobsImportMethod[] values()
+
+
Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
+for (RundeckJobsImportMethod c : RundeckJobsImportMethod.values())
+    System.out.println(c);
+
+

+

+ +
Returns:
an array containing the constants of this enum type, in +the order they are declared
+
+
+
+ +

+valueOf

+
+public static RundeckJobsImportMethod valueOf(String name)
+
+
Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.) +

+

+
Parameters:
name - the name of the enum constant to be returned. +
Returns:
the enum constant with the specified name +
Throws: +
IllegalArgumentException - if this enum type has no constant +with the specified name +
NullPointerException - if the argument is null
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2011. All Rights Reserved. + + diff --git a/apidocs/org/rundeck/api/domain/RundeckJobsImportResult.html b/apidocs/org/rundeck/api/domain/RundeckJobsImportResult.html new file mode 100644 index 0000000..4adb9e2 --- /dev/null +++ b/apidocs/org/rundeck/api/domain/RundeckJobsImportResult.html @@ -0,0 +1,445 @@ + + + + + + + +RundeckJobsImportResult (RunDeck API - Java Client 1.1 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.rundeck.api.domain +
+Class RundeckJobsImportResult

+
+java.lang.Object
+  extended by org.rundeck.api.domain.RundeckJobsImportResult
+
+
+
All Implemented Interfaces:
Serializable
+
+
+
+
public class RundeckJobsImportResult
extends Object
implements Serializable
+
+ +

+Result of importing some jobs into RunDeck +

+ +

+

+
Author:
+
Vincent Behar
+
See Also:
Serialized Form
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
RundeckJobsImportResult() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddFailedJob(RundeckJob job, + String errorMessage) + +
+           
+ voidaddSkippedJob(RundeckJob job) + +
+           
+ voidaddSucceededJob(RundeckJob job) + +
+           
+ booleanequals(Object obj) + +
+           
+ Map<RundeckJob,String>getFailedJobs() + +
+           
+ List<RundeckJob>getSkippedJobs() + +
+           
+ List<RundeckJob>getSucceededJobs() + +
+           
+ inthashCode() + +
+           
+ StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+RundeckJobsImportResult

+
+public RundeckJobsImportResult()
+
+
+ + + + + + + + +
+Method Detail
+ +

+addSucceededJob

+
+public void addSucceededJob(RundeckJob job)
+
+
+
+
+
+
+
+
+
+ +

+addSkippedJob

+
+public void addSkippedJob(RundeckJob job)
+
+
+
+
+
+
+
+
+
+ +

+addFailedJob

+
+public void addFailedJob(RundeckJob job,
+                         String errorMessage)
+
+
+
+
+
+
+
+
+
+ +

+getSucceededJobs

+
+public List<RundeckJob> getSucceededJobs()
+
+
+
+
+
+
+
+
+
+ +

+getSkippedJobs

+
+public List<RundeckJob> getSkippedJobs()
+
+
+
+
+
+
+
+
+
+ +

+getFailedJobs

+
+public Map<RundeckJob,String> getFailedJobs()
+
+
+
+
+
+
+
+
+
+ +

+toString

+
+public String toString()
+
+
+
Overrides:
toString in class Object
+
+
+
+
+
+
+ +

+hashCode

+
+public int hashCode()
+
+
+
Overrides:
hashCode in class Object
+
+
+
+
+
+
+ +

+equals

+
+public boolean equals(Object obj)
+
+
+
Overrides:
equals in class Object
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2011. All Rights Reserved. + + diff --git a/apidocs/org/rundeck/api/domain/RundeckNode.html b/apidocs/org/rundeck/api/domain/RundeckNode.html index 29e8073..72c0d9b 100644 --- a/apidocs/org/rundeck/api/domain/RundeckNode.html +++ b/apidocs/org/rundeck/api/domain/RundeckNode.html @@ -2,13 +2,13 @@ - + -RundeckNode (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckNode (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckNode (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckNode (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckNode (RunDeck API - Java Client 1.1 API)"; } } @@ -56,7 +56,7 @@ function windowTitle() PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   @@ -804,7 +804,7 @@ public boolean equals(PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   diff --git a/apidocs/org/rundeck/api/domain/RundeckProject.html b/apidocs/org/rundeck/api/domain/RundeckProject.html index 6496d01..3465fa0 100644 --- a/apidocs/org/rundeck/api/domain/RundeckProject.html +++ b/apidocs/org/rundeck/api/domain/RundeckProject.html @@ -2,13 +2,13 @@ - + -RundeckProject (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckProject (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckProject (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckProject (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckProject (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/RundeckSystemInfo.html b/apidocs/org/rundeck/api/domain/RundeckSystemInfo.html index d31a1e6..c0c2aeb 100644 --- a/apidocs/org/rundeck/api/domain/RundeckSystemInfo.html +++ b/apidocs/org/rundeck/api/domain/RundeckSystemInfo.html @@ -2,13 +2,13 @@ - + -RundeckSystemInfo (RunDeck API - Java Client 1.1-SNAPSHOT API) +RundeckSystemInfo (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ RundeckSystemInfo (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RundeckSystemInfo (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="RundeckSystemInfo (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.AbortStatus.html b/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.AbortStatus.html index 08df465..7eee844 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.AbortStatus.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.AbortStatus.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckAbort.AbortStatus (RunDeck API - Jav function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckAbort.AbortStatus (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.html b/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.html index d8563ae..06414a0 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckAbort.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckAbort (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckAbort (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckAbort (RunDeck API - Java Client 1.1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckAbort (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckAbort (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.ExecutionStatus.html b/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.ExecutionStatus.html index ce7d2e1..51cb13b 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.ExecutionStatus.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.ExecutionStatus.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckExecution.ExecutionStatus (RunDeck A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckExecution.ExecutionStatus (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.html b/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.html index b85293a..e155683 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckExecution.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckExecution (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckExecution (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckExecution (RunDeck API - Java Client function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckExecution (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckExecution (RunDeck API - Java Client 1.1 API)"; } } @@ -339,6 +339,26 @@ Uses of Long max, Long offset)
+
+          Get the executions of the given job + + + + List<RundeckExecution> +RundeckClient.getJobExecutions(String jobId, + String status) + +
+          Get the executions of the given job + + + + List<RundeckExecution> +RundeckClient.getJobExecutions(String jobId, + String status, + Long max, + Long offset) +
          Get the executions of the given job diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckJob.html b/apidocs/org/rundeck/api/domain/class-use/RundeckJob.html index 486f4ed..6abba07 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckJob.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckJob.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckJob (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckJob (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckJob (RunDeck API - Java Client 1.1-S function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckJob (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckJob (RunDeck API - Java Client 1.1 API)"; } } @@ -201,6 +201,38 @@ Uses of + +Methods in org.rundeck.api.domain that return types with arguments of type RundeckJob
+ + + + Map<RundeckJob,String> +RundeckJobsImportResult.getFailedJobs() + +
+            + + + + List<RundeckJob> +RundeckJobsImportResult.getSkippedJobs() + +
+            + + + + List<RundeckJob> +RundeckJobsImportResult.getSucceededJobs() + +
+            + + +  +

+ @@ -208,6 +240,31 @@ Uses of + + + + + + + + + + + + +RundeckExecution.ExecutionStatus +
+RundeckJobsImportMethod
Methods in org.rundeck.api.domain with parameters of type RundeckJob  voidRundeckJobsImportResult.addFailedJob(RundeckJob job, + String errorMessage) + +
+           
+ voidRundeckJobsImportResult.addSkippedJob(RundeckJob job) + +
+           
+ voidRundeckJobsImportResult.addSucceededJob(RundeckJob job) + +
+           
+ void RundeckExecution.setJob(RundeckJob job)
diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckJobsImportMethod.html b/apidocs/org/rundeck/api/domain/class-use/RundeckJobsImportMethod.html new file mode 100644 index 0000000..6ab46fe --- /dev/null +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckJobsImportMethod.html @@ -0,0 +1,231 @@ + + + + + + + +Uses of Class org.rundeck.api.domain.RundeckJobsImportMethod (RunDeck API - Java Client 1.1 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.rundeck.api.domain.RundeckJobsImportMethod

+
+ + + + + + + + + + + + + +
+Packages that use RundeckJobsImportMethod
org.rundeck.apiJava client for the RunDeck API. 
org.rundeck.api.domainDomain classes that are returned to the client of the API. 
+  +

+ + + + + +
+Uses of RundeckJobsImportMethod in org.rundeck.api
+  +

+ + + + + + + + + + + + + +
Methods in org.rundeck.api with parameters of type RundeckJobsImportMethod
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior
+  +

+ + + + + +
+Uses of RundeckJobsImportMethod in org.rundeck.api.domain
+  +

+ + + + + + + + + + + + + +
Methods in org.rundeck.api.domain that return RundeckJobsImportMethod
+static RundeckJobsImportMethodRundeckJobsImportMethod.valueOf(String name) + +
+          Returns the enum constant of this type with the specified name.
+static RundeckJobsImportMethod[]RundeckJobsImportMethod.values() + +
+          Returns an array containing the constants of this enum type, in +the order they are declared.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2011. All Rights Reserved. + + diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckJobsImportResult.html b/apidocs/org/rundeck/api/domain/class-use/RundeckJobsImportResult.html new file mode 100644 index 0000000..97e326e --- /dev/null +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckJobsImportResult.html @@ -0,0 +1,278 @@ + + + + + + + +Uses of Class org.rundeck.api.domain.RundeckJobsImportResult (RunDeck API - Java Client 1.1 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.rundeck.api.domain.RundeckJobsImportResult

+
+ + + + + + + + + + + + + +
+Packages that use RundeckJobsImportResult
org.rundeck.apiJava client for the RunDeck API. 
org.rundeck.api.parserInternal parsers for parsing the RunDeck responses. 
+  +

+ + + + + +
+Uses of RundeckJobsImportResult in org.rundeck.api
+  +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Methods in org.rundeck.api that return RundeckJobsImportResult
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + FileType fileType) + +
+          Import the definitions of jobs, from the given input stream
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + String fileType) + +
+          Import the definitions of jobs, from the given input stream
+ RundeckJobsImportResultRundeckClient.importJobs(InputStream stream, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given input stream, using the given behavior
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + FileType fileType) + +
+          Import the definitions of jobs, from the given file
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + FileType fileType, + RundeckJobsImportMethod importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + String fileType) + +
+          Import the definitions of jobs, from the given file
+ RundeckJobsImportResultRundeckClient.importJobs(String filename, + String fileType, + String importBehavior) + +
+          Import the definitions of jobs, from the given file, using the given behavior
+  +

+ + + + + +
+Uses of RundeckJobsImportResult in org.rundeck.api.parser
+  +

+ + + + + + + + + +
Methods in org.rundeck.api.parser that return RundeckJobsImportResult
+ RundeckJobsImportResultJobsImportResultParser.parseXmlNode(org.dom4j.Node node) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2011. All Rights Reserved. + + diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckNode.html b/apidocs/org/rundeck/api/domain/class-use/RundeckNode.html index fbf146b..2400c68 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckNode.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckNode.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckNode (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckNode (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckNode (RunDeck API - Java Client 1.1- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckNode (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckNode (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckProject.html b/apidocs/org/rundeck/api/domain/class-use/RundeckProject.html index 5e13353..02fbaec 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckProject.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckProject.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckProject (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckProject (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckProject (RunDeck API - Java Client 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckProject (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckProject (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/class-use/RundeckSystemInfo.html b/apidocs/org/rundeck/api/domain/class-use/RundeckSystemInfo.html index 759b728..f623b79 100644 --- a/apidocs/org/rundeck/api/domain/class-use/RundeckSystemInfo.html +++ b/apidocs/org/rundeck/api/domain/class-use/RundeckSystemInfo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.domain.RundeckSystemInfo (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.domain.RundeckSystemInfo (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.domain.RundeckSystemInfo (RunDeck API - Java Clien function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.domain.RundeckSystemInfo (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.domain.RundeckSystemInfo (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/domain/package-frame.html b/apidocs/org/rundeck/api/domain/package-frame.html index 2760bf5..61b5963 100644 --- a/apidocs/org/rundeck/api/domain/package-frame.html +++ b/apidocs/org/rundeck/api/domain/package-frame.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.domain (RunDeck API - Java Client 1.1 API) - + @@ -30,6 +30,8 @@ Classes 
RundeckJob
+RundeckJobsImportResult +
RundeckNode
RundeckProject @@ -47,7 +49,9 @@ Enums 
RundeckAbort.AbortStatus
-RundeckExecution.ExecutionStatus
diff --git a/apidocs/org/rundeck/api/domain/package-summary.html b/apidocs/org/rundeck/api/domain/package-summary.html index 55ede0c..d2c2241 100644 --- a/apidocs/org/rundeck/api/domain/package-summary.html +++ b/apidocs/org/rundeck/api/domain/package-summary.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.domain (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api.domain (RunDeck API - Java Client 1.1 API)"; } } @@ -108,6 +108,10 @@ Domain classes that are returned to the client of the API. Represents a RunDeck job +RundeckJobsImportResult +Result of importing some jobs into RunDeck + + RundeckNode Represents a RunDeck node (server on which RunDeck can execute jobs and commands) @@ -137,6 +141,10 @@ Domain classes that are returned to the client of the API. RundeckExecution.ExecutionStatus The status of an execution + +RundeckJobsImportMethod +The behavior when importing jobs (which may already exist). +   diff --git a/apidocs/org/rundeck/api/domain/package-tree.html b/apidocs/org/rundeck/api/domain/package-tree.html index 9560dbf..3a3ba01 100644 --- a/apidocs/org/rundeck/api/domain/package-tree.html +++ b/apidocs/org/rundeck/api/domain/package-tree.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.domain Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.domain Class Hierarchy (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api.domain Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.domain Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api.domain Class Hierarchy (RunDeck API - Java Client 1.1 API)"; } } @@ -96,6 +96,7 @@ Class Hierarchy

  • org.rundeck.api.domain.RundeckAbort (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckExecution (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckJob (implements java.io.Serializable) +
  • org.rundeck.api.domain.RundeckJobsImportResult (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckNode (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckProject (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckSystemInfo (implements java.io.Serializable) @@ -108,7 +109,7 @@ Enum Hierarchy
  • java.lang.Object
    diff --git a/apidocs/org/rundeck/api/domain/package-use.html b/apidocs/org/rundeck/api/domain/package-use.html index ddd5783..77cfcb1 100644 --- a/apidocs/org/rundeck/api/domain/package-use.html +++ b/apidocs/org/rundeck/api/domain/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Package org.rundeck.api.domain (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Package org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.rundeck.api.domain (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Package org.rundeck.api.domain (RunDeck API - Java Client 1.1 API)"; } } @@ -136,6 +136,18 @@ Classes in org           Represents a RunDeck job +RundeckJobsImportMethod + +
    +          The behavior when importing jobs (which may already exist). + + +RundeckJobsImportResult + +
    +          Result of importing some jobs into RunDeck + + RundeckNode
    @@ -186,6 +198,12 @@ Classes in org
              Represents a RunDeck job + +
    RundeckJobsImportMethod + +
    +          The behavior when importing jobs (which may already exist). +  

    @@ -214,6 +232,12 @@ Classes in org           Represents a RunDeck job +RundeckJobsImportResult + +
    +          Result of importing some jobs into RunDeck + + RundeckNode
    diff --git a/apidocs/org/rundeck/api/package-frame.html b/apidocs/org/rundeck/api/package-frame.html index 3c319c5..ed85774 100644 --- a/apidocs/org/rundeck/api/package-frame.html +++ b/apidocs/org/rundeck/api/package-frame.html @@ -2,13 +2,13 @@ - + -org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api (RunDeck API - Java Client 1.1 API) - + @@ -33,6 +33,17 @@ Classes
      + + + + +
    +Enums  + +
    +FileType
    + + + NEXT CLASSNEXT CLASS + + + + diff --git a/testapidocs/org/rundeck/api/parser/package-tree.html b/testapidocs/org/rundeck/api/parser/package-tree.html index 894287f..77489eb 100644 --- a/testapidocs/org/rundeck/api/parser/package-tree.html +++ b/testapidocs/org/rundeck/api/parser/package-tree.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT T function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1 Test API)"; } } @@ -93,7 +93,7 @@ Class Hierarchy
    diff --git a/testapidocs/org/rundeck/api/parser/package-use.html b/testapidocs/org/rundeck/api/parser/package-use.html index 373b92e..d02a906 100644 --- a/testapidocs/org/rundeck/api/parser/package-use.html +++ b/testapidocs/org/rundeck/api/parser/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT T function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/org/rundeck/api/util/ParametersUtilTest.html b/testapidocs/org/rundeck/api/util/ParametersUtilTest.html index 901c286..ac4b1ab 100644 --- a/testapidocs/org/rundeck/api/util/ParametersUtilTest.html +++ b/testapidocs/org/rundeck/api/util/ParametersUtilTest.html @@ -2,13 +2,13 @@ - + -ParametersUtilTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +ParametersUtilTest (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ ParametersUtilTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ParametersUtilTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="ParametersUtilTest (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/org/rundeck/api/util/class-use/ParametersUtilTest.html b/testapidocs/org/rundeck/api/util/class-use/ParametersUtilTest.html index c0c8587..9f2d1ad 100644 --- a/testapidocs/org/rundeck/api/util/class-use/ParametersUtilTest.html +++ b/testapidocs/org/rundeck/api/util/class-use/ParametersUtilTest.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.util.ParametersUtilTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Uses of Class org.rundeck.api.util.ParametersUtilTest (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.util.ParametersUtilTest (RunDeck API - Java Client function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.util.ParametersUtilTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Uses of Class org.rundeck.api.util.ParametersUtilTest (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/org/rundeck/api/util/package-frame.html b/testapidocs/org/rundeck/api/util/package-frame.html index 0689ded..32f0a75 100644 --- a/testapidocs/org/rundeck/api/util/package-frame.html +++ b/testapidocs/org/rundeck/api/util/package-frame.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +org.rundeck.api.util (RunDeck API - Java Client 1.1 Test API) - + diff --git a/testapidocs/org/rundeck/api/util/package-summary.html b/testapidocs/org/rundeck/api/util/package-summary.html index 3864716..02040d2 100644 --- a/testapidocs/org/rundeck/api/util/package-summary.html +++ b/testapidocs/org/rundeck/api/util/package-summary.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +org.rundeck.api.util (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="org.rundeck.api.util (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/org/rundeck/api/util/package-tree.html b/testapidocs/org/rundeck/api/util/package-tree.html index 56a9854..f82698f 100644 --- a/testapidocs/org/rundeck/api/util/package-tree.html +++ b/testapidocs/org/rundeck/api/util/package-tree.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Tes function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/org/rundeck/api/util/package-use.html b/testapidocs/org/rundeck/api/util/package-use.html index f22ad68..77ba535 100644 --- a/testapidocs/org/rundeck/api/util/package-use.html +++ b/testapidocs/org/rundeck/api/util/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Tes function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/overview-frame.html b/testapidocs/overview-frame.html index d5c77eb..987bdb5 100644 --- a/testapidocs/overview-frame.html +++ b/testapidocs/overview-frame.html @@ -2,13 +2,13 @@ - + -Overview List (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Overview List (RunDeck API - Java Client 1.1 Test API) - + diff --git a/testapidocs/overview-summary.html b/testapidocs/overview-summary.html index f567585..d4be57a 100644 --- a/testapidocs/overview-summary.html +++ b/testapidocs/overview-summary.html @@ -2,13 +2,13 @@ - + -Overview (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Overview (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Overview (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Overview (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Overview (RunDeck API - Java Client 1.1 Test API)"; } } @@ -82,7 +82,7 @@ function windowTitle()

    -RunDeck API - Java Client 1.1-SNAPSHOT Test API +RunDeck API - Java Client 1.1 Test API

    diff --git a/testapidocs/overview-tree.html b/testapidocs/overview-tree.html index 74a1739..ebc3762 100644 --- a/testapidocs/overview-tree.html +++ b/testapidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Class Hierarchy (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Class Hierarchy (RunDeck API - Java Client 1.1 Test API)"; } } @@ -92,7 +92,7 @@ Class Hierarchy
    diff --git a/xref-test/allclasses-frame.html b/xref-test/allclasses-frame.html index 543aa5f..8ac7674 100644 --- a/xref-test/allclasses-frame.html +++ b/xref-test/allclasses-frame.html @@ -1,47 +1,50 @@ - - - - - - All Classes - - - - -

    All Classes

    - - - - - + + + + + + All Classes + + + + +

    All Classes

    + + + + + diff --git a/xref-test/index.html b/xref-test/index.html index 8ddcf23..a8de5d6 100644 --- a/xref-test/index.html +++ b/xref-test/index.html @@ -1,24 +1,24 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference - - - - - - - - - <body> - <h1>Frame Alert</h1> - <p> - You don't have frames. Go <a href="overview-summary.html">here</a> - </p> - </body> - - - - + + + + + + RunDeck API - Java Client 1.1 Reference + + + + + + + + + <body> + <h1>Frame Alert</h1> + <p> + You don't have frames. Go <a href="overview-summary.html">here</a> + </p> + </body> + + + + diff --git a/xref-test/org/rundeck/api/parser/JobsImportResultParserTest.html b/xref-test/org/rundeck/api/parser/JobsImportResultParserTest.html new file mode 100644 index 0000000..f8f3d0a --- /dev/null +++ b/xref-test/org/rundeck/api/parser/JobsImportResultParserTest.html @@ -0,0 +1,65 @@ + + + + +JobsImportResultParserTest xref + + + +
    +
    +1   /*
    +2    * Copyright 2011 Vincent Behar
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.rundeck.api.parser;
    +17  
    +18  import java.io.InputStream;
    +19  import org.dom4j.Document;
    +20  import org.junit.Assert;
    +21  import org.junit.Test;
    +22  import org.rundeck.api.domain.RundeckJob;
    +23  import org.rundeck.api.domain.RundeckJobsImportResult;
    +24  
    +25  /**
    +26   * Test the {@link JobsImportResultParser}
    +27   * 
    +28   * @author Vincent Behar
    +29   */
    +30  public class JobsImportResultParserTest {
    +31  
    +32      @Test
    +33      public void parseResult() throws Exception {
    +34          InputStream input = getClass().getResourceAsStream("jobs-import.xml");
    +35          Document document = ParserHelper.loadDocument(input);
    +36  
    +37          RundeckJobsImportResult result = new JobsImportResultParser("result").parseXmlNode(document);
    +38  
    +39          Assert.assertEquals(2, result.getSucceededJobs().size());
    +40          Assert.assertEquals(0, result.getSkippedJobs().size());
    +41          Assert.assertEquals(1, result.getFailedJobs().size());
    +42  
    +43          Assert.assertEquals("job-one", result.getSucceededJobs().get(0).getName());
    +44          Assert.assertEquals("job-two", result.getSucceededJobs().get(1).getName());
    +45  
    +46          RundeckJob failedJob = result.getFailedJobs().keySet().iterator().next();
    +47          Assert.assertEquals("job-three", failedJob.getName());
    +48          Assert.assertEquals("Error message", result.getFailedJobs().get(failedJob));
    +49      }
    +50  
    +51  }
    +
    +
    + + diff --git a/xref-test/org/rundeck/api/parser/package-frame.html b/xref-test/org/rundeck/api/parser/package-frame.html index a5d9f66..bfb2f72 100644 --- a/xref-test/org/rundeck/api/parser/package-frame.html +++ b/xref-test/org/rundeck/api/parser/package-frame.html @@ -1,48 +1,51 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.parser - - - - -

    - org.rundeck.api.parser -

    - -

    Classes

    - - - - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.parser + + + + +

    + org.rundeck.api.parser +

    + +

    Classes

    + + + + \ No newline at end of file diff --git a/xref-test/org/rundeck/api/parser/package-summary.html b/xref-test/org/rundeck/api/parser/package-summary.html index c854f2b..7cc4ccd 100644 --- a/xref-test/org/rundeck/api/parser/package-summary.html +++ b/xref-test/org/rundeck/api/parser/package-summary.html @@ -1,107 +1,112 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.parser - - - -
    - -
    -
    - -
    - -

    Package org.rundeck.api.parser

    - -
    diff --git a/apidocs/org/rundeck/api/package-summary.html b/apidocs/org/rundeck/api/package-summary.html index c0161af..96d93d5 100644 --- a/apidocs/org/rundeck/api/package-summary.html +++ b/apidocs/org/rundeck/api/package-summary.html @@ -2,13 +2,13 @@ - + -org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api (RunDeck API - Java Client 1.1 API)"; } } @@ -112,6 +112,20 @@ Java client for the RunDeck API.

    + + + + + + + + +
    +Enum Summary
    FileTypeAll supported types of files.
    +  + +

    + + + + + NEXT CLASSNEXT CLASS + + + + + + + + diff --git a/apidocs/org/rundeck/api/parser/package-tree.html b/apidocs/org/rundeck/api/parser/package-tree.html index 7a8da97..c589f49 100644 --- a/apidocs/org/rundeck/api/parser/package-tree.html +++ b/apidocs/org/rundeck/api/parser/package-tree.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api.parser Class Hierarchy (RunDeck API - Java Client 1.1 API)"; } } @@ -96,6 +96,7 @@ Class Hierarchy
  • org.rundeck.api.parser.AbortParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.ExecutionParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.JobParser (implements org.rundeck.api.parser.XmlNodeParser<T>) +
  • org.rundeck.api.parser.JobsImportResultParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.ListParser<T> (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.NodeParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.ParserHelper
  • org.rundeck.api.parser.ProjectParser (implements org.rundeck.api.parser.XmlNodeParser<T>) diff --git a/apidocs/org/rundeck/api/parser/package-use.html b/apidocs/org/rundeck/api/parser/package-use.html index 7e07194..9721ee0 100644 --- a/apidocs/org/rundeck/api/parser/package-use.html +++ b/apidocs/org/rundeck/api/parser/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Package org.rundeck.api.parser (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/AssertUtil.html b/apidocs/org/rundeck/api/util/AssertUtil.html index c0d4c7e..edd17ed 100644 --- a/apidocs/org/rundeck/api/util/AssertUtil.html +++ b/apidocs/org/rundeck/api/util/AssertUtil.html @@ -2,13 +2,13 @@ - + -AssertUtil (RunDeck API - Java Client 1.1-SNAPSHOT API) +AssertUtil (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ AssertUtil (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AssertUtil (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="AssertUtil (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/ParametersUtil.html b/apidocs/org/rundeck/api/util/ParametersUtil.html index e56c35b..24130c4 100644 --- a/apidocs/org/rundeck/api/util/ParametersUtil.html +++ b/apidocs/org/rundeck/api/util/ParametersUtil.html @@ -2,13 +2,13 @@ - + -ParametersUtil (RunDeck API - Java Client 1.1-SNAPSHOT API) +ParametersUtil (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ ParametersUtil (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ParametersUtil (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="ParametersUtil (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/class-use/AssertUtil.html b/apidocs/org/rundeck/api/util/class-use/AssertUtil.html index d9261f3..2965edc 100644 --- a/apidocs/org/rundeck/api/util/class-use/AssertUtil.html +++ b/apidocs/org/rundeck/api/util/class-use/AssertUtil.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.util.AssertUtil (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.util.AssertUtil (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.util.AssertUtil (RunDeck API - Java Client 1.1-SNA function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.util.AssertUtil (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.util.AssertUtil (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/class-use/ParametersUtil.html b/apidocs/org/rundeck/api/util/class-use/ParametersUtil.html index 50a02da..a1d7bb7 100644 --- a/apidocs/org/rundeck/api/util/class-use/ParametersUtil.html +++ b/apidocs/org/rundeck/api/util/class-use/ParametersUtil.html @@ -2,13 +2,13 @@ - + -Uses of Class org.rundeck.api.util.ParametersUtil (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Class org.rundeck.api.util.ParametersUtil (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Class org.rundeck.api.util.ParametersUtil (RunDeck API - Java Client 1.1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.rundeck.api.util.ParametersUtil (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Class org.rundeck.api.util.ParametersUtil (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/package-frame.html b/apidocs/org/rundeck/api/util/package-frame.html index 8c67ff9..3a09855 100644 --- a/apidocs/org/rundeck/api/util/package-frame.html +++ b/apidocs/org/rundeck/api/util/package-frame.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.util (RunDeck API - Java Client 1.1 API) - + diff --git a/apidocs/org/rundeck/api/util/package-summary.html b/apidocs/org/rundeck/api/util/package-summary.html index 94c4159..0a9bb49 100644 --- a/apidocs/org/rundeck/api/util/package-summary.html +++ b/apidocs/org/rundeck/api/util/package-summary.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.util (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api.util (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/package-tree.html b/apidocs/org/rundeck/api/util/package-tree.html index 5b65f0f..f695974 100644 --- a/apidocs/org/rundeck/api/util/package-tree.html +++ b/apidocs/org/rundeck/api/util/package-tree.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api.util Class Hierarchy (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/util/package-use.html b/apidocs/org/rundeck/api/util/package-use.html index 93dd527..da3c789 100644 --- a/apidocs/org/rundeck/api/util/package-use.html +++ b/apidocs/org/rundeck/api/util/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Package org.rundeck.api.util (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/overview-frame.html b/apidocs/overview-frame.html index 4d65d73..647e7ba 100644 --- a/apidocs/overview-frame.html +++ b/apidocs/overview-frame.html @@ -2,13 +2,13 @@ - + -Overview List (RunDeck API - Java Client 1.1-SNAPSHOT API) +Overview List (RunDeck API - Java Client 1.1 API) - + diff --git a/apidocs/overview-summary.html b/apidocs/overview-summary.html index 3f8e673..0f5fe57 100644 --- a/apidocs/overview-summary.html +++ b/apidocs/overview-summary.html @@ -2,13 +2,13 @@ - + -Overview (RunDeck API - Java Client 1.1-SNAPSHOT API) +Overview (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Overview (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Overview (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Overview (RunDeck API - Java Client 1.1 API)"; } } @@ -82,7 +82,7 @@ function windowTitle()

    -RunDeck API - Java Client 1.1-SNAPSHOT API +RunDeck API - Java Client 1.1 API

    See the documentation of the RundeckClient class (main entry point of the API). diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html index 1e9f766..ca9f24a 100644 --- a/apidocs/overview-tree.html +++ b/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) +Class Hierarchy (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Class Hierarchy (RunDeck API - Java Client 1.1 API)"; } } @@ -95,6 +95,7 @@ Class Hierarchy
  • org.rundeck.api.parser.AbortParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.util.AssertUtil
  • org.rundeck.api.parser.ExecutionParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.JobParser (implements org.rundeck.api.parser.XmlNodeParser<T>) +
  • org.rundeck.api.parser.JobsImportResultParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.parser.ListParser<T> (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.NodeFiltersBuilder
  • org.rundeck.api.parser.NodeParser (implements org.rundeck.api.parser.XmlNodeParser<T>)
  • org.rundeck.api.OptionsBuilder
  • org.rundeck.api.util.ParametersUtil
  • org.rundeck.api.parser.ParserHelper
  • org.rundeck.api.parser.ProjectParser (implements org.rundeck.api.parser.XmlNodeParser<T>) @@ -102,6 +103,7 @@ Class Hierarchy
  • org.rundeck.api.RundeckClient (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckExecution (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckJob (implements java.io.Serializable) +
  • org.rundeck.api.domain.RundeckJobsImportResult (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckNode (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckProject (implements java.io.Serializable)
  • org.rundeck.api.domain.RundeckSystemInfo (implements java.io.Serializable) @@ -130,7 +132,7 @@ Enum Hierarchy
  • java.lang.Object
    diff --git a/apidocs/serialized-form.html b/apidocs/serialized-form.html index fbd528f..9502f5c 100644 --- a/apidocs/serialized-form.html +++ b/apidocs/serialized-form.html @@ -2,13 +2,13 @@ - + -Serialized Form (RunDeck API - Java Client 1.1-SNAPSHOT API) +Serialized Form (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Serialized Form (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Serialized Form (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Serialized Form (RunDeck API - Java Client 1.1 API)"; } } @@ -390,6 +390,54 @@ description +

    + +

  • diff --git a/apidocs/org/rundeck/api/package-tree.html b/apidocs/org/rundeck/api/package-tree.html index eb39efd..d862a92 100644 --- a/apidocs/org/rundeck/api/package-tree.html +++ b/apidocs/org/rundeck/api/package-tree.html @@ -2,13 +2,13 @@ - + -org.rundeck.api Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api Class Hierarchy (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api Class Hierarchy (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api Class Hierarchy (RunDeck API - Java Client 1.1 API)"; } } @@ -105,6 +105,16 @@ Class Hierarchy +

    +Enum Hierarchy +

    +
    diff --git a/apidocs/org/rundeck/api/package-use.html b/apidocs/org/rundeck/api/package-use.html index 35102c6..a2ae148 100644 --- a/apidocs/org/rundeck/api/package-use.html +++ b/apidocs/org/rundeck/api/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API) +Uses of Package org.rundeck.api (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ Uses of Package org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.rundeck.api (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="Uses of Package org.rundeck.api (RunDeck API - Java Client 1.1 API)"; } } @@ -108,6 +108,12 @@ Packages that use org.ru Classes in org.rundeck.api used by org.rundeck.api
    FileType + +
    +          All supported types of files.
    NodeFiltersBuilder
    diff --git a/apidocs/org/rundeck/api/parser/AbortParser.html b/apidocs/org/rundeck/api/parser/AbortParser.html index 7b0f142..cd440ea 100644 --- a/apidocs/org/rundeck/api/parser/AbortParser.html +++ b/apidocs/org/rundeck/api/parser/AbortParser.html @@ -2,13 +2,13 @@ - + -AbortParser (RunDeck API - Java Client 1.1-SNAPSHOT API) +AbortParser (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ AbortParser (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AbortParser (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="AbortParser (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/parser/ExecutionParser.html b/apidocs/org/rundeck/api/parser/ExecutionParser.html index d2ac24f..e5f8549 100644 --- a/apidocs/org/rundeck/api/parser/ExecutionParser.html +++ b/apidocs/org/rundeck/api/parser/ExecutionParser.html @@ -2,13 +2,13 @@ - + -ExecutionParser (RunDeck API - Java Client 1.1-SNAPSHOT API) +ExecutionParser (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ ExecutionParser (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ExecutionParser (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="ExecutionParser (RunDeck API - Java Client 1.1 API)"; } } diff --git a/apidocs/org/rundeck/api/parser/JobParser.html b/apidocs/org/rundeck/api/parser/JobParser.html index 92d6925..473ed13 100644 --- a/apidocs/org/rundeck/api/parser/JobParser.html +++ b/apidocs/org/rundeck/api/parser/JobParser.html @@ -2,13 +2,13 @@ - + -JobParser (RunDeck API - Java Client 1.1-SNAPSHOT API) +JobParser (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ JobParser (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="JobParser (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="JobParser (RunDeck API - Java Client 1.1 API)"; } } @@ -57,7 +57,7 @@ function windowTitle()
     classJobsImportResultParser + +
    +          Parser for a single RundeckJobsImportResult
    + class ListParser<T>
    diff --git a/apidocs/org/rundeck/api/parser/package-frame.html b/apidocs/org/rundeck/api/parser/package-frame.html index 9830feb..1f18e03 100644 --- a/apidocs/org/rundeck/api/parser/package-frame.html +++ b/apidocs/org/rundeck/api/parser/package-frame.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.parser (RunDeck API - Java Client 1.1 API) - + @@ -41,6 +41,8 @@ Classes 
    JobParser
    +JobsImportResultParser +
    ListParser
    NodeParser diff --git a/apidocs/org/rundeck/api/parser/package-summary.html b/apidocs/org/rundeck/api/parser/package-summary.html index bf256ee..b49ea94 100644 --- a/apidocs/org/rundeck/api/parser/package-summary.html +++ b/apidocs/org/rundeck/api/parser/package-summary.html @@ -2,13 +2,13 @@ - + -org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT API) +org.rundeck.api.parser (RunDeck API - Java Client 1.1 API) - + @@ -16,7 +16,7 @@ org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.rundeck.api.parser (RunDeck API - Java Client 1.1-SNAPSHOT API)"; + parent.document.title="org.rundeck.api.parser (RunDeck API - Java Client 1.1 API)"; } } @@ -122,6 +122,10 @@ Internal parsers for parsing the RunDeck responses.
    Parser for a single RundeckJob
    JobsImportResultParserParser for a single RundeckJobsImportResult
    ListParser<T> Parser for a List of elements
    + + + +
    +Class org.rundeck.api.domain.RundeckJobsImportResult extends Object implements Serializable
    + +

    +serialVersionUID: 1L + +

    + + + + + +
    +Serialized Fields
    + +

    +succeededJobs

    +
    +List<E> succeededJobs
    +
    +
    +
    +
    +
    +

    +skippedJobs

    +
    +List<E> skippedJobs
    +
    +
    +
    +
    +
    +

    +failedJobs

    +
    +Map<K,V> failedJobs
    +
    +
    +
    +
    +

    diff --git a/changes-report.html b/changes-report.html index 2377b74..968bada 100644 --- a/changes-report.html +++ b/changes-report.html @@ -1,5 +1,5 @@ - + @@ -11,7 +11,7 @@ - + @@ -50,8 +50,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -150,7 +150,7 @@
    -

    Changelog

    Release History

    VersionDateDescription
    1.02011-07-08Use RunDeck REST API version 1 (RunDeck 1.2+)

    Release 1.0 - 2011-07-08

    TypeChangesBy

    add

    Initial releasevbehar
    +

    Changelog

    Release History

    VersionDateDescription
    1.12011-07-28Import / export jobs
    1.02011-07-08Use RunDeck REST API version 1 (RunDeck 1.2+)

    Release 1.1 - 2011-07-28

    TypeChangesBy

    add

    Import jobs (XML or YAML)vbehar

    add

    YAML format is now supported when exporting jobs definitionsvbehar

    add

    Support for using an HTTP proxyvbehar

    Release 1.0 - 2011-07-08

    TypeChangesBy

    add

    Initial releasevbehar
    diff --git a/cpd.html b/cpd.html index 341d164..d28a9cb 100644 --- a/cpd.html +++ b/cpd.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/dependencies.html b/dependencies.html index 5d8df79..87d0ef9 100644 --- a/dependencies.html +++ b/dependencies.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -143,7 +143,7 @@
    -

    Project Dependencies

    compile

    The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

    GroupIdArtifactIdVersionTypeLicense
    commons-iocommons-io2.0.1jarThe Apache Software License, Version 2.0
    commons-langcommons-lang2.6jarThe Apache Software License, Version 2.0
    dom4jdom4j1.6.1jar-
    jaxenjaxen1.1.1jar-
    org.apache.httpcomponentshttpclient4.1.1jarLICENSE.txt

    test

    The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:

    GroupIdArtifactIdVersionTypeLicense
    junitjunit4.8.2jarCommon Public License Version 1.0

    Project Transitive Dependencies

    The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

    compile

    The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

    GroupIdArtifactIdVersionTypeLicense
    com.ibm.icuicu4j2.6.1jar-
    commons-codeccommons-codec1.4jarThe Apache Software License, Version 2.0
    commons-loggingcommons-logging1.1.1jarThe Apache Software License, Version 2.0
    jdomjdom1.0jar-
    org.apache.httpcomponentshttpcore4.1jarLICENSE.txt
    xalanxalan2.6.0jar-
    xercesxercesImpl2.6.2jar-
    xercesxmlParserAPIs2.6.2jar-
    xml-apisxml-apis1.0.b2jarThe Apache Software License, Version 2.0
    xomxom1.0jarLGPL

    Project Dependency Graph

    -

    Dependency Tree

    • org.rundeck:rundeck-api-java-client:jar:1.1-SNAPSHOT Information
      • org.apache.httpcomponents:httpclient:jar:4.1.1 (compile) Information
        • org.apache.httpcomponents:httpcore:jar:4.1 (compile) Information
        • commons-logging:commons-logging:jar:1.1.1 (compile) Information
        • commons-codec:commons-codec:jar:1.4 (compile) Information
      • com.ibm.icu:icu4j:jar:2.6.1 (compile) Information
  • junit:junit:jar:4.8.2 (test) Information
  • Licenses

    LGPL: xom

    Unknown: Unnamed - com.ibm.icu:icu4j:jar:2.6.1, Unnamed - jdom:jdom:jar:1.0, Unnamed - xalan:xalan:jar:2.6.0, Unnamed - xerces:xercesImpl:jar:2.6.2, Unnamed - xerces:xmlParserAPIs:jar:2.6.2, dom4j, jaxen

    Apache License: HttpClient, HttpCore, HttpMime

    Common Public License Version 1.0: JUnit

    The Apache Software License, Version 2.0: Commons Codec, Commons IO, Commons Lang, Commons Logging, RunDeck API - Java Client, XML Commons External Components XML APIs

    Dependency File Details

    FilenameSizeEntriesClassesPackagesJDK RevDebugSealed
    icu4j-2.6.1.jar2.34 MB75564861.2debug-
    commons-codec-1.4.jar56.80 kB473051.4debug-
    commons-io-2.0.1.jar155.77 kB12210461.5debug-
    commons-lang-2.6.jar277.56 kB155133101.3debug-
    commons-logging-1.1.1.jar59.26 kB422821.1debug-
    dom4j-1.6.1.jar306.54 kB208190141.3debug-
    jaxen-1.1.1.jar221.60 kB236214171.2debug-
    jdom-1.0.jar149.66 kB877581.1debug-
    junit-4.8.2.jar231.78 kB267230301.5debug-
    httpclient-4.1.1.jar342.90 kB308272221.5debug-
    httpcore-4.1.jar176.80 kB185163101.3debug-
    httpmime-4.1.1.jar26.26 kB311521.5debug-
    xalan-2.6.0.jar3.00 MB1,6251,548501.1debug-
    xercesImpl-2.6.2.jar986.99 kB845784371.1release-
    xmlParserAPIs-2.6.2.jar121.80 kB238207171.1release-
    xml-apis-1.0.b2.jar106.76 kB217184171.2release-
    xom-1.0.jar106.32 kB1089661.2releasesealed
    TotalSizeEntriesClassesPackagesJDK RevDebugSealed
    178.59 MB5,4764,9212591.5131
    compile: 16compile: 8.36 MBcompile: 5,209compile: 4,691compile: 229-compile: 12compile: 1
    test: 1test: 231.78 kBtest: 267test: 230test: 30-test: 1-

    Dependency Repository Locations

    Repo IDURLReleaseSnapshot
    apache.snapshotshttp://people.apache.org/repo/m2-snapshot-repository-Yes-
    sonatype-nexus-snapshotshttps://oss.sonatype.org/content/repositories/snapshots-Yes-
    centralhttp://repo1.maven.org/maven2Yes--

    Repository locations for each of the Dependencies.

    Artifactapache.snapshotssonatype-nexus-snapshotscentral
    com.ibm.icu:icu4j:jar:2.6.1--Found at http://repo1.maven.org/maven2
    commons-codec:commons-codec:jar:1.4--Found at http://repo1.maven.org/maven2
    commons-io:commons-io:jar:2.0.1--Found at http://repo1.maven.org/maven2
    commons-lang:commons-lang:jar:2.6--Found at http://repo1.maven.org/maven2
    commons-logging:commons-logging:jar:1.1.1--Found at http://repo1.maven.org/maven2
    dom4j:dom4j:jar:1.6.1--Found at http://repo1.maven.org/maven2
    jaxen:jaxen:jar:1.1.1--Found at http://repo1.maven.org/maven2
    jdom:jdom:jar:1.0--Found at http://repo1.maven.org/maven2
    junit:junit:jar:4.8.2--Found at http://repo1.maven.org/maven2
    org.apache.httpcomponents:httpclient:jar:4.1.1--Found at http://repo1.maven.org/maven2
    org.apache.httpcomponents:httpcore:jar:4.1--Found at http://repo1.maven.org/maven2
    org.apache.httpcomponents:httpmime:jar:4.1.1--Found at http://repo1.maven.org/maven2
    xalan:xalan:jar:2.6.0--Found at http://repo1.maven.org/maven2
    xerces:xercesImpl:jar:2.6.2--Found at http://repo1.maven.org/maven2
    xerces:xmlParserAPIs:jar:2.6.2--Found at http://repo1.maven.org/maven2
    xml-apis:xml-apis:jar:1.0.b2--Found at http://repo1.maven.org/maven2
    xom:xom:jar:1.0--Found at http://repo1.maven.org/maven2
    Totalapache.snapshotssonatype-nexus-snapshotscentral
    17 (compile: 16, test: 1)0017
    diff --git a/dependency-updates-report.html b/dependency-updates-report.html index eb7d780..983b7a1 100644 --- a/dependency-updates-report.html +++ b/dependency-updates-report.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -149,7 +149,7 @@
    -

    Overview

    This report summarizes newer versions that may be available for your project's various dependencies.

    # of dependencies using the latest version available6
    # of dependencies where the next version available is smaller than an incremental version update0
    # of dependencies where the next version available is an incremental version update0
    # of dependencies where the next version available is a minor version update0
    # of dependencies where the next version available is a major version update0

    Dependency Management

    This project does not declare any dependencies in a dependencyManagement section.

    Dependencies

    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeNext VersionNext IncrementalNext MinorNext Major
    commons-iocommons-io2.0.1compilejar
    commons-langcommons-lang2.6compilejar
    dom4jdom4j1.6.1compilejar
    jaxenjaxen1.1.1compilejar
    junitjunit4.8.2testjar
    org.apache.httpcomponentshttpclient4.1.1compilejar
    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeNext VersionNext IncrementalNext MinorNext Major

    Dependency Updates

    commons-io:commons-io

    Status No newer versions available.
    Group Idcommons-io
    Artifact Idcommons-io
    Current Version2.0.1
    Scopecompile
    Classifier
    Typejar

    commons-lang:commons-lang

    Status No newer versions available.
    Group Idcommons-lang
    Artifact Idcommons-lang
    Current Version2.6
    Scopecompile
    Classifier
    Typejar

    dom4j:dom4j

    Status No newer versions available.
    Group Iddom4j
    Artifact Iddom4j
    Current Version1.6.1
    Scopecompile
    Classifier
    Typejar

    jaxen:jaxen

    Status No newer versions available.
    Group Idjaxen
    Artifact Idjaxen
    Current Version1.1.1
    Scopecompile
    Classifier
    Typejar

    junit:junit

    Status No newer versions available.
    Group Idjunit
    Artifact Idjunit
    Current Version4.8.2
    Scopetest
    Classifier
    Typejar

    org.apache.httpcomponents:httpclient

    Status No newer versions available.
    Group Idorg.apache.httpcomponents
    Artifact Idhttpclient
    Current Version4.1.1
    Scopecompile
    Classifier
    Typejar
    +

    Overview

    This report summarizes newer versions that may be available for your project's various dependencies.

    # of dependencies using the latest version available7
    # of dependencies where the next version available is smaller than an incremental version update0
    # of dependencies where the next version available is an incremental version update0
    # of dependencies where the next version available is a minor version update0
    # of dependencies where the next version available is a major version update0

    Dependency Management

    This project does not declare any dependencies in a dependencyManagement section.

    Dependencies

    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeNext VersionNext IncrementalNext MinorNext Major
    commons-iocommons-io2.0.1compilejar
    commons-langcommons-lang2.6compilejar
    dom4jdom4j1.6.1compilejar
    jaxenjaxen1.1.1compilejar
    junitjunit4.8.2testjar
    org.apache.httpcomponentshttpclient4.1.1compilejar
    org.apache.httpcomponentshttpmime4.1.1compilejar
    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeNext VersionNext IncrementalNext MinorNext Major

    Dependency Updates

    commons-io:commons-io

    Status No newer versions available.
    Group Idcommons-io
    Artifact Idcommons-io
    Current Version2.0.1
    Scopecompile
    Classifier
    Typejar

    commons-lang:commons-lang

    Status No newer versions available.
    Group Idcommons-lang
    Artifact Idcommons-lang
    Current Version2.6
    Scopecompile
    Classifier
    Typejar

    dom4j:dom4j

    Status No newer versions available.
    Group Iddom4j
    Artifact Iddom4j
    Current Version1.6.1
    Scopecompile
    Classifier
    Typejar

    jaxen:jaxen

    Status No newer versions available.
    Group Idjaxen
    Artifact Idjaxen
    Current Version1.1.1
    Scopecompile
    Classifier
    Typejar

    junit:junit

    Status No newer versions available.
    Group Idjunit
    Artifact Idjunit
    Current Version4.8.2
    Scopetest
    Classifier
    Typejar

    org.apache.httpcomponents:httpclient

    Status No newer versions available.
    Group Idorg.apache.httpcomponents
    Artifact Idhttpclient
    Current Version4.1.1
    Scopecompile
    Classifier
    Typejar

    org.apache.httpcomponents:httpmime

    Status No newer versions available.
    Group Idorg.apache.httpcomponents
    Artifact Idhttpmime
    Current Version4.1.1
    Scopecompile
    Classifier
    Typejar
    diff --git a/distribution-management.html b/distribution-management.html index d4325c4..40d9069 100644 --- a/distribution-management.html +++ b/distribution-management.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/download.html b/download.html index fdaaaa2..4026145 100644 --- a/download.html +++ b/download.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/faq.html b/faq.html index 354af3b..41c6c6e 100644 --- a/faq.html +++ b/faq.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -125,6 +125,10 @@ See the License for the specific language governing permissions and limitations under the License. -->

    General

    Which version should I use ?
    @@ -134,6 +138,14 @@
  • Versions 2.x are for RunDeck API version 2 (RunDeck 1.3+)
  • and so on...
  • +

    HTTP connections to RunDeck

    + What about SSL (HTTPS) ? +
    +

    The lib will trust any certificate when connecting to a RunDeck instance running on HTTPS (even self-signed certificates).

    +
    + How do I use a proxy ? +
    +

    See the Java doc on proxies. You will need a JAVA_OPTS env variable with a value like "-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888".

    diff --git a/findbugs.html b/findbugs.html index 094b954..f7bc49d 100644 --- a/findbugs.html +++ b/findbugs.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -149,7 +149,7 @@
    -

    FindBugs Bug Detector Report

    The following document contains the results of FindBugs Report

    FindBugs Version is 1.3.9

    Threshold is medium

    Effort is min

    Summary

    ClassesBugsErrorsMissing Classes
    28000

    Files

    ClassBugs
    +

    FindBugs Bug Detector Report

    The following document contains the results of FindBugs Report

    FindBugs Version is 1.3.9

    Threshold is medium

    Effort is min

    Summary

    ClassesBugsErrorsMissing Classes
    32000

    Files

    ClassBugs
    diff --git a/groovy.html b/groovy.html index f71ae6f..8e557ae 100644 --- a/groovy.html +++ b/groovy.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -112,7 +112,7 @@

    Using the RunDeck API from Groovy scripts

    Here are some examples of what you can do with this lib and a few lines of Groovy.

    We can use Grape to download the lib (and its dependencies) from the Maven Central Repository, so you don't have to install anything manually (except Groovy, of course).

    Basic usage

    Save the following script in a file named "rundeck.groovy", and execute it with "groovy rundeck.groovy". Feeling Groovy ? ;-)

    // we use Grape (Ivy) to download the lib (and its dependencies) from Maven Central Repository
    -@Grab(group='org.rundeck', module='rundeck-api-java-client', version='1.0')
    +@Grab(group='org.rundeck', module='rundeck-api-java-client', version='1.1')
     import org.rundeck.api.RundeckClient
     
     rundeck = new RundeckClient("http://localhost:4440", "admin", "admin")
    @@ -162,8 +162,13 @@ execution = rundeck.runAdhocCommand("my-project", "uptime",
     

    Exporting jobs

    import org.rundeck.api.RundeckClient
     rundeck = new RundeckClient("http://localhost:4440", "admin", "admin")
     
    -rundeck.exportJobsToFile("/tmp/jobs.xml", "my-project")
    -rundeck.exportJobToFile("/tmp/job.xml", "job-id")
    +rundeck.exportJobsToFile("/tmp/jobs.xml", "xml", "my-project")
    +rundeck.exportJobToFile("/tmp/job.yaml", "yaml", "job-id")
    +

    Importing jobs

    import org.rundeck.api.RundeckClient
    +rundeck = new RundeckClient("http://localhost:4440", "admin", "admin")
    +
    +result = rundeck.importJobs("/tmp/jobs.xml", "xml")
    +println "${result.succeededJobs.size} jobs successfully imported, ${result.skippedJobs.size} jobs skipped, and ${result.failedJobs.size} jobs failed"
     

    And more...

    See the API documentation of the RundeckClient class for more interactions with your RunDeck instance...

    diff --git a/index.html b/index.html index 3f4ff16..0b11660 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/integration.html b/integration.html index b488477..d7fa5f4 100644 --- a/integration.html +++ b/integration.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/issue-tracking.html b/issue-tracking.html index e0856c4..af20bc3 100644 --- a/issue-tracking.html +++ b/issue-tracking.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/jruby.html b/jruby.html index 86dc9da..0b3dd64 100644 --- a/jruby.html +++ b/jruby.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -167,8 +167,13 @@ execution = rundeck.runAdhocCommand("my-project", "uptime",

    Exporting jobs

    import org.rundeck.api.RundeckClient
     rundeck = RundeckClient.new("http://localhost:4440", "admin", "admin")
     
    -rundeck.exportJobsToFile("/tmp/jobs.xml", "my-project")
    -rundeck.exportJobToFile("/tmp/job.xml", "job-id")
    +rundeck.exportJobsToFile("/tmp/jobs.xml", "xml", "my-project")
    +rundeck.exportJobToFile("/tmp/job.yaml", "yaml", "job-id")
    +

    Importing jobs

    import org.rundeck.api.RundeckClient
    +rundeck = RundeckClient.new("http://localhost:4440", "admin", "admin")
    +
    +result = rundeck.importJobs("/tmp/jobs.xml", "xml")
    +puts "#{result.succeededJobs.size} jobs successfully imported, #{result.skippedJobs.size} jobs skipped, and #{result.failedJobs.size} jobs failed"
     

    And more...

    See the API documentation of the RundeckClient class for more interactions with your RunDeck instance...

    diff --git a/jython.html b/jython.html index 4115582..420a1f7 100644 --- a/jython.html +++ b/jython.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -156,8 +156,13 @@ execution = rundeck.runAdhocCommand("my-project", "uptime",

    Exporting jobs

    from org.rundeck.api import RundeckClient
     rundeck = RundeckClient("http://localhost:4440", "admin", "admin")
     
    -rundeck.exportJobsToFile("/tmp/jobs.xml", "my-project")
    -rundeck.exportJobToFile("/tmp/job.xml", "job-id")
    +rundeck.exportJobsToFile("/tmp/jobs.xml", "xml", "my-project")
    +rundeck.exportJobToFile("/tmp/job.yaml", "yaml", "job-id")
    +

    Importing jobs

    from org.rundeck.api import RundeckClient
    +rundeck = RundeckClient("http://localhost:4440", "admin", "admin")
    +
    +result = rundeck.importJobs("/tmp/jobs.xml", "xml")
    +print("%s jobs successfully imported, %s jobs skipped, and %s jobs failed" % (result.succeededJobs.size, result.skippedJobs.size, result.failedJobs.size))
     

    And more...

    See the API documentation of the RundeckClient class for more interactions with your RunDeck instance...

    diff --git a/license.html b/license.html index c25b712..2e46190 100644 --- a/license.html +++ b/license.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/mail-lists.html b/mail-lists.html index 4bde608..12cfda9 100644 --- a/mail-lists.html +++ b/mail-lists.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/plugin-updates-report.html b/plugin-updates-report.html index 45ef40f..22c7b32 100644 --- a/plugin-updates-report.html +++ b/plugin-updates-report.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -149,7 +149,7 @@
    -

    Overview

    This report summarizes newer versions that may be available for your project's various plugins.

    # of plugins using the latest version available25
    # of plugins where the next version available is smaller than an incremental version update1
    # of plugins where the next version available is an incremental version update1
    # of plugins where the next version available is a minor version update3
    # of plugins where the next version available is a major version update0
    # of plugins where a dependencies section containes a dependency with an updated version0

    Plugin Management

    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status
    org.apache.maven.pluginsmaven-antrun-plugin1.6
    org.apache.maven.pluginsmaven-assembly-plugin2.2.1
    org.apache.maven.pluginsmaven-checkstyle-plugin2.6
    org.apache.maven.pluginsmaven-clean-plugin2.4.1
    org.apache.maven.pluginsmaven-compiler-plugin2.3.2
    org.apache.maven.pluginsmaven-dependency-plugin2.3
    org.apache.maven.pluginsmaven-deploy-plugin2.6
    org.apache.maven.pluginsmaven-ear-plugin2.3.12.3.22.4
    org.apache.maven.pluginsmaven-eclipse-plugin2.8
    org.apache.maven.pluginsmaven-ejb-plugin2.12.2
    org.apache.maven.pluginsmaven-enforcer-plugin1.0.1
    org.apache.maven.pluginsmaven-help-plugin2.1.1
    org.apache.maven.pluginsmaven-install-plugin2.3.1
    org.apache.maven.pluginsmaven-jar-plugin2.3.1
    org.apache.maven.pluginsmaven-javadoc-plugin2.8
    org.apache.maven.pluginsmaven-plugin-plugin2.4.32.5
    org.apache.maven.pluginsmaven-pmd-plugin2.5
    org.apache.maven.pluginsmaven-rar-plugin2.2
    org.apache.maven.pluginsmaven-release-plugin2.2
    org.apache.maven.pluginsmaven-resources-plugin2.5
    org.apache.maven.pluginsmaven-site-plugin2.33.0-beta-1
    org.apache.maven.pluginsmaven-source-plugin2.1.2
    org.apache.maven.pluginsmaven-surefire-plugin2.9
    org.apache.maven.pluginsmaven-war-plugin2.1-alpha-22.1-beta-12.1.1
    org.codehaus.mojofindbugs-maven-plugin2.3.2
    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status

    Plugins

    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status
    org.apache.maven.pluginsmaven-changes-plugin2.6
    org.apache.maven.pluginsmaven-jxr-plugin2.2
    org.apache.maven.pluginsmaven-project-info-reports-plugin2.4
    org.codehaus.mojotaglist-maven-plugin2.4
    org.codehaus.mojoversions-maven-plugin1.2
    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status

    Plugin Updates

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-antrun-plugin
    Current Version1.6

    Plugin org.apache.maven.plugins:maven-assembly-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-assembly-plugin
    Current Version2.2.1

    Plugin org.apache.maven.plugins:maven-changes-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-changes-plugin
    Current Version2.6

    Plugin org.apache.maven.plugins:maven-checkstyle-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-checkstyle-plugin
    Current Version2.6

    Plugin org.apache.maven.plugins:maven-clean-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-clean-plugin
    Current Version2.4.1

    Plugin org.apache.maven.plugins:maven-compiler-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-compiler-plugin
    Current Version2.3.2

    Plugin org.apache.maven.plugins:maven-dependency-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-dependency-plugin
    Current Version2.3

    Plugin org.apache.maven.plugins:maven-deploy-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-deploy-plugin
    Current Version2.6

    Plugin org.apache.maven.plugins:maven-ear-plugin

    Status There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-ear-plugin
    Current Version2.3.1
    Newer versions2.3.2 Next Incremental
    2.4 Next Minor
    2.4.1
    2.4.2
    2.5
    2.6 Latest Minor

    Plugin org.apache.maven.plugins:maven-eclipse-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-eclipse-plugin
    Current Version2.8

    Plugin org.apache.maven.plugins:maven-ejb-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-ejb-plugin
    Current Version2.1
    Newer versions2.2 Next Minor
    2.2.1
    2.3 Latest Minor

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-enforcer-plugin
    Current Version1.0.1

    Plugin org.apache.maven.plugins:maven-help-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-help-plugin
    Current Version2.1.1

    Plugin org.apache.maven.plugins:maven-install-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-install-plugin
    Current Version2.3.1

    Plugin org.apache.maven.plugins:maven-jar-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-jar-plugin
    Current Version2.3.1

    Plugin org.apache.maven.plugins:maven-javadoc-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-javadoc-plugin
    Current Version2.8

    Plugin org.apache.maven.plugins:maven-jxr-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-jxr-plugin
    Current Version2.2

    Plugin org.apache.maven.plugins:maven-plugin-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-plugin-plugin
    Current Version2.4.3
    Newer versions2.5 Next Minor
    2.5.1
    2.6
    2.7
    2.8 Latest Minor

    Plugin org.apache.maven.plugins:maven-pmd-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-pmd-plugin
    Current Version2.5

    Plugin org.apache.maven.plugins:maven-project-info-reports-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-project-info-reports-plugin
    Current Version2.4

    Plugin org.apache.maven.plugins:maven-rar-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-rar-plugin
    Current Version2.2

    Plugin org.apache.maven.plugins:maven-release-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-release-plugin
    Current Version2.2

    Plugin org.apache.maven.plugins:maven-resources-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-resources-plugin
    Current Version2.5

    Plugin org.apache.maven.plugins:maven-site-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-site-plugin
    Current Version2.3
    Newer versions3.0-beta-1 Next Minor
    3.0-beta-2
    3.0-beta-3 Latest Minor

    Plugin org.apache.maven.plugins:maven-source-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-source-plugin
    Current Version2.1.2

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-surefire-plugin
    Current Version2.9

    Plugin org.apache.maven.plugins:maven-war-plugin

    Status There is at least one newer version available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-war-plugin
    Current Version2.1-alpha-2
    Newer versions2.1-beta-1 Next Version
    2.1
    2.1.1 Next Incremental

    Plugin org.codehaus.mojo:findbugs-maven-plugin

    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idfindbugs-maven-plugin
    Current Version2.3.2

    Plugin org.codehaus.mojo:taglist-maven-plugin

    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idtaglist-maven-plugin
    Current Version2.4

    Plugin org.codehaus.mojo:versions-maven-plugin

    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idversions-maven-plugin
    Current Version1.2
    +

    Overview

    This report summarizes newer versions that may be available for your project's various plugins.

    # of plugins using the latest version available25
    # of plugins where the next version available is smaller than an incremental version update1
    # of plugins where the next version available is an incremental version update1
    # of plugins where the next version available is a minor version update4
    # of plugins where the next version available is a major version update0
    # of plugins where a dependencies section containes a dependency with an updated version0

    Plugin Management

    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status
    org.apache.maven.pluginsmaven-antrun-plugin1.6
    org.apache.maven.pluginsmaven-assembly-plugin2.2.1
    org.apache.maven.pluginsmaven-checkstyle-plugin2.6
    org.apache.maven.pluginsmaven-clean-plugin2.4.1
    org.apache.maven.pluginsmaven-compiler-plugin2.3.2
    org.apache.maven.pluginsmaven-dependency-plugin2.3
    org.apache.maven.pluginsmaven-deploy-plugin2.6
    org.apache.maven.pluginsmaven-ear-plugin2.3.12.3.22.4
    org.apache.maven.pluginsmaven-eclipse-plugin2.8
    org.apache.maven.pluginsmaven-ejb-plugin2.12.2
    org.apache.maven.pluginsmaven-enforcer-plugin1.0.1
    org.apache.maven.pluginsmaven-help-plugin2.1.1
    org.apache.maven.pluginsmaven-install-plugin2.3.1
    org.apache.maven.pluginsmaven-jar-plugin2.3.1
    org.apache.maven.pluginsmaven-javadoc-plugin2.8
    org.apache.maven.pluginsmaven-plugin-plugin2.4.32.5
    org.apache.maven.pluginsmaven-pmd-plugin2.5
    org.apache.maven.pluginsmaven-rar-plugin2.2
    org.apache.maven.pluginsmaven-release-plugin2.2
    org.apache.maven.pluginsmaven-resources-plugin2.5
    org.apache.maven.pluginsmaven-site-plugin2.33.0-beta-1
    org.apache.maven.pluginsmaven-source-plugin2.1.2
    org.apache.maven.pluginsmaven-surefire-plugin2.9
    org.apache.maven.pluginsmaven-war-plugin2.1-alpha-22.1-beta-12.1.1
    org.codehaus.mojofindbugs-maven-plugin2.3.2
    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status

    Plugins

    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status
    org.apache.maven.pluginsmaven-changes-plugin2.6
    org.apache.maven.pluginsmaven-gpg-plugin1.11.2
    org.apache.maven.pluginsmaven-jxr-plugin2.3
    org.apache.maven.pluginsmaven-project-info-reports-plugin2.4
    org.codehaus.mojotaglist-maven-plugin2.4
    org.codehaus.mojoversions-maven-plugin1.2
    StatusGroup IdArtifact IdCurrent VersionNext VersionNext IncrementalNext MinorNext MajorDependency status

    Plugin Updates

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-antrun-plugin
    Current Version1.6

    Plugin org.apache.maven.plugins:maven-assembly-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-assembly-plugin
    Current Version2.2.1

    Plugin org.apache.maven.plugins:maven-changes-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-changes-plugin
    Current Version2.6

    Plugin org.apache.maven.plugins:maven-checkstyle-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-checkstyle-plugin
    Current Version2.6

    Plugin org.apache.maven.plugins:maven-clean-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-clean-plugin
    Current Version2.4.1

    Plugin org.apache.maven.plugins:maven-compiler-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-compiler-plugin
    Current Version2.3.2

    Plugin org.apache.maven.plugins:maven-dependency-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-dependency-plugin
    Current Version2.3

    Plugin org.apache.maven.plugins:maven-deploy-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-deploy-plugin
    Current Version2.6

    Plugin org.apache.maven.plugins:maven-ear-plugin

    Status There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-ear-plugin
    Current Version2.3.1
    Newer versions2.3.2 Next Incremental
    2.4 Next Minor
    2.4.1
    2.4.2
    2.5
    2.6 Latest Minor

    Plugin org.apache.maven.plugins:maven-eclipse-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-eclipse-plugin
    Current Version2.8

    Plugin org.apache.maven.plugins:maven-ejb-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-ejb-plugin
    Current Version2.1
    Newer versions2.2 Next Minor
    2.2.1
    2.3 Latest Minor

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-enforcer-plugin
    Current Version1.0.1

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-gpg-plugin
    Current Version1.1
    Newer versions1.2 Next Minor
    1.3 Latest Minor

    Plugin org.apache.maven.plugins:maven-help-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-help-plugin
    Current Version2.1.1

    Plugin org.apache.maven.plugins:maven-install-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-install-plugin
    Current Version2.3.1

    Plugin org.apache.maven.plugins:maven-jar-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-jar-plugin
    Current Version2.3.1

    Plugin org.apache.maven.plugins:maven-javadoc-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-javadoc-plugin
    Current Version2.8

    Plugin org.apache.maven.plugins:maven-jxr-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-jxr-plugin
    Current Version2.3

    Plugin org.apache.maven.plugins:maven-plugin-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-plugin-plugin
    Current Version2.4.3
    Newer versions2.5 Next Minor
    2.5.1
    2.6
    2.7
    2.8 Latest Minor

    Plugin org.apache.maven.plugins:maven-pmd-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-pmd-plugin
    Current Version2.5

    Plugin org.apache.maven.plugins:maven-project-info-reports-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-project-info-reports-plugin
    Current Version2.4

    Plugin org.apache.maven.plugins:maven-rar-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-rar-plugin
    Current Version2.2

    Plugin org.apache.maven.plugins:maven-release-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-release-plugin
    Current Version2.2

    Plugin org.apache.maven.plugins:maven-resources-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-resources-plugin
    Current Version2.5

    Plugin org.apache.maven.plugins:maven-site-plugin

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-site-plugin
    Current Version2.3
    Newer versions3.0-beta-1 Next Minor
    3.0-beta-2
    3.0-beta-3 Latest Minor

    Plugin org.apache.maven.plugins:maven-source-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-source-plugin
    Current Version2.1.2

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-surefire-plugin
    Current Version2.9

    Plugin org.apache.maven.plugins:maven-war-plugin

    Status There is at least one newer version available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-war-plugin
    Current Version2.1-alpha-2
    Newer versions2.1-beta-1 Next Version
    2.1
    2.1.1 Next Incremental

    Plugin org.codehaus.mojo:findbugs-maven-plugin

    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idfindbugs-maven-plugin
    Current Version2.3.2

    Plugin org.codehaus.mojo:taglist-maven-plugin

    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idtaglist-maven-plugin
    Current Version2.4

    Plugin org.codehaus.mojo:versions-maven-plugin

    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idversions-maven-plugin
    Current Version1.2
    diff --git a/pmd.html b/pmd.html index c1e57dd..f393b7e 100644 --- a/pmd.html +++ b/pmd.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/pmd.xml b/pmd.xml index 4f727c2..3c1bf7e 100644 --- a/pmd.xml +++ b/pmd.xml @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/project-info.html b/project-info.html index 6854186..61763bd 100644 --- a/project-info.html +++ b/project-info.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/project-reports.html b/project-reports.html index a97ead1..d3563e9 100644 --- a/project-reports.html +++ b/project-reports.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/project-summary.html b/project-summary.html index dfe4fef..e3f6189 100644 --- a/project-summary.html +++ b/project-summary.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -143,7 +143,7 @@
    -

    Project Summary

    Project Information

    FieldValue
    NameRunDeck API - Java Client
    DescriptionJava client for the RunDeck REST API
    Homepagehttp://vbehar.github.com/rundeck-api-java-client

    Project Organization

    This project does not belong to an organization.

    Build Information

    FieldValue
    GroupIdorg.rundeck
    ArtifactIdrundeck-api-java-client
    Version1.1-SNAPSHOT
    Typejar
    JDK Rev1.6
    +

    Project Summary

    Project Information

    FieldValue
    NameRunDeck API - Java Client
    DescriptionJava client for the RunDeck REST API
    Homepagehttp://vbehar.github.com/rundeck-api-java-client

    Project Organization

    This project does not belong to an organization.

    Build Information

    FieldValue
    GroupIdorg.rundeck
    ArtifactIdrundeck-api-java-client
    Version1.1
    Typejar
    JDK Rev1.6
    diff --git a/property-updates-report.html b/property-updates-report.html index 91c24e7..03079ff 100644 --- a/property-updates-report.html +++ b/property-updates-report.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -149,7 +149,7 @@
    -

    Overview

    This report summarizes newer versions that may be available for your project's various properties associated with artifacts.

    # of properties using the latest version available24
    # of properties where the next version available is smaller than an incremental version update0
    # of properties where the next version available is an incremental version update0
    # of properties where the next version available is a minor version update1
    # of properties where the next version available is a major version update0

    Summary of properties sssociated with artifact versions

    StatusPropertyCurrent VersionNext VersionNext IncrementalNext MinorNext Major
    ${plugin.findbugs.version}2.3.2
    ${plugin.clean.version}2.4.1
    ${plugin.enforcer.version}1.0.1
    ${plugin.install.version}2.3.1
    ${plugin.release.version}2.2
    ${plugin.resources.version}2.5
    ${plugin.assembly.version}2.2.1
    ${plugin.antrun.version}1.6
    ${plugin.site.version}2.33.0-beta-1
    ${plugin.versions.version}1.2
    ${plugin.project-info-reports.version}2.4
    ${plugin.javadoc.version}2.8
    ${plugin.taglist.version}2.4
    ${plugin.eclipse.version}2.8
    ${plugin.help.version}2.1.1
    ${plugin.source.version}2.1.2
    ${plugin.surefire.version}2.9
    ${plugin.compiler.version}2.3.2
    ${plugin.pmd.version}2.5
    ${plugin.jxr.version}2.2
    ${plugin.checkstyle.version}2.6
    ${plugin.changes.version}2.6
    ${plugin.deploy.version}2.6
    ${plugin.dependency.version}2.3
    ${plugin.jar.version}2.3.1
    StatusPropertyCurrent VersionNext VersionNext IncrementalNext MinorNext Major

    Properties sssociated with artifact versions

    ${plugin.antrun.version}

    Status No newer versions available.
    Property${plugin.antrun.version}
    Associated artifactsorg.apache.maven.plugins:maven-antrun-plugin
    Current Version1.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.assembly.version}

    Status No newer versions available.
    Property${plugin.assembly.version}
    Associated artifactsorg.apache.maven.plugins:maven-assembly-plugin
    Current Version2.2.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.changes.version}

    Status No newer versions available.
    Property${plugin.changes.version}
    Associated artifactsorg.apache.maven.plugins:maven-changes-plugin
    Current Version2.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.checkstyle.version}

    Status No newer versions available.
    Property${plugin.checkstyle.version}
    Associated artifactsorg.apache.maven.plugins:maven-checkstyle-plugin
    Current Version2.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.clean.version}

    Status No newer versions available.
    Property${plugin.clean.version}
    Associated artifactsorg.apache.maven.plugins:maven-clean-plugin
    Current Version2.4.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.compiler.version}

    Status No newer versions available.
    Property${plugin.compiler.version}
    Associated artifactsorg.apache.maven.plugins:maven-compiler-plugin
    Current Version2.3.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.dependency.version}

    Status No newer versions available.
    Property${plugin.dependency.version}
    Associated artifactsorg.apache.maven.plugins:maven-dependency-plugin
    Current Version2.3
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.deploy.version}

    Status No newer versions available.
    Property${plugin.deploy.version}
    Associated artifactsorg.apache.maven.plugins:maven-deploy-plugin
    Current Version2.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.eclipse.version}

    Status No newer versions available.
    Property${plugin.eclipse.version}
    Associated artifactsorg.apache.maven.plugins:maven-eclipse-plugin
    Current Version2.8
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.enforcer.version}

    Status No newer versions available.
    Property${plugin.enforcer.version}
    Associated artifactsorg.apache.maven.plugins:maven-enforcer-plugin
    Current Version1.0.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.findbugs.version}

    Status No newer versions available.
    Property${plugin.findbugs.version}
    Associated artifactsorg.codehaus.mojo:findbugs-maven-plugin
    Current Version2.3.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.help.version}

    Status No newer versions available.
    Property${plugin.help.version}
    Associated artifactsorg.apache.maven.plugins:maven-help-plugin
    Current Version2.1.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.install.version}

    Status No newer versions available.
    Property${plugin.install.version}
    Associated artifactsorg.apache.maven.plugins:maven-install-plugin
    Current Version2.3.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.jar.version}

    Status No newer versions available.
    Property${plugin.jar.version}
    Associated artifactsorg.apache.maven.plugins:maven-jar-plugin
    Current Version2.3.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.javadoc.version}

    Status No newer versions available.
    Property${plugin.javadoc.version}
    Associated artifactsorg.apache.maven.plugins:maven-javadoc-plugin
    Current Version2.8
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.jxr.version}

    Status No newer versions available.
    Property${plugin.jxr.version}
    Associated artifactsorg.apache.maven.plugins:maven-jxr-plugin
    Current Version2.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.pmd.version}

    Status No newer versions available.
    Property${plugin.pmd.version}
    Associated artifactsorg.apache.maven.plugins:maven-pmd-plugin
    Current Version2.5
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.project-info-reports.version}

    Status No newer versions available.
    Property${plugin.project-info-reports.version}
    Associated artifactsorg.apache.maven.plugins:maven-project-info-reports-plugin
    Current Version2.4
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.release.version}

    Status No newer versions available.
    Property${plugin.release.version}
    Associated artifactsorg.apache.maven.plugins:maven-release-plugin
    Current Version2.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.resources.version}

    Status No newer versions available.
    Property${plugin.resources.version}
    Associated artifactsorg.apache.maven.plugins:maven-resources-plugin
    Current Version2.5
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.site.version}

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Property${plugin.site.version}
    Associated artifactsorg.apache.maven.plugins:maven-site-plugin
    Current Version2.3
    Newer versions3.0-beta-1 Next Minor
    3.0-beta-2
    3.0-beta-3 Latest Minor
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.source.version}

    Status No newer versions available.
    Property${plugin.source.version}
    Associated artifactsorg.apache.maven.plugins:maven-source-plugin
    Current Version2.1.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.surefire.version}

    Status No newer versions available.
    Property${plugin.surefire.version}
    Associated artifactsorg.apache.maven.plugins:maven-surefire-plugin
    Current Version2.9
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.taglist.version}

    Status No newer versions available.
    Property${plugin.taglist.version}
    Associated artifactsorg.codehaus.mojo:taglist-maven-plugin
    Current Version2.4
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.versions.version}

    Status No newer versions available.
    Property${plugin.versions.version}
    Associated artifactsorg.codehaus.mojo:versions-maven-plugin
    Current Version1.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    Overview

    This report summarizes newer versions that may be available for your project's various properties associated with artifacts.

    # of properties using the latest version available24
    # of properties where the next version available is smaller than an incremental version update0
    # of properties where the next version available is an incremental version update0
    # of properties where the next version available is a minor version update1
    # of properties where the next version available is a major version update0

    Summary of properties sssociated with artifact versions

    StatusPropertyCurrent VersionNext VersionNext IncrementalNext MinorNext Major
    ${plugin.findbugs.version}2.3.2
    ${plugin.clean.version}2.4.1
    ${plugin.enforcer.version}1.0.1
    ${plugin.install.version}2.3.1
    ${plugin.release.version}2.2
    ${plugin.resources.version}2.5
    ${plugin.assembly.version}2.2.1
    ${plugin.antrun.version}1.6
    ${plugin.site.version}2.33.0-beta-1
    ${plugin.versions.version}1.2
    ${plugin.project-info-reports.version}2.4
    ${plugin.javadoc.version}2.8
    ${plugin.taglist.version}2.4
    ${plugin.eclipse.version}2.8
    ${plugin.help.version}2.1.1
    ${plugin.source.version}2.1.2
    ${plugin.surefire.version}2.9
    ${plugin.compiler.version}2.3.2
    ${plugin.pmd.version}2.5
    ${plugin.jxr.version}2.3
    ${plugin.checkstyle.version}2.6
    ${plugin.changes.version}2.6
    ${plugin.deploy.version}2.6
    ${plugin.dependency.version}2.3
    ${plugin.jar.version}2.3.1
    StatusPropertyCurrent VersionNext VersionNext IncrementalNext MinorNext Major

    Properties sssociated with artifact versions

    ${plugin.antrun.version}

    Status No newer versions available.
    Property${plugin.antrun.version}
    Associated artifactsorg.apache.maven.plugins:maven-antrun-plugin
    Current Version1.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.assembly.version}

    Status No newer versions available.
    Property${plugin.assembly.version}
    Associated artifactsorg.apache.maven.plugins:maven-assembly-plugin
    Current Version2.2.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.changes.version}

    Status No newer versions available.
    Property${plugin.changes.version}
    Associated artifactsorg.apache.maven.plugins:maven-changes-plugin
    Current Version2.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.checkstyle.version}

    Status No newer versions available.
    Property${plugin.checkstyle.version}
    Associated artifactsorg.apache.maven.plugins:maven-checkstyle-plugin
    Current Version2.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.clean.version}

    Status No newer versions available.
    Property${plugin.clean.version}
    Associated artifactsorg.apache.maven.plugins:maven-clean-plugin
    Current Version2.4.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.compiler.version}

    Status No newer versions available.
    Property${plugin.compiler.version}
    Associated artifactsorg.apache.maven.plugins:maven-compiler-plugin
    Current Version2.3.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.dependency.version}

    Status No newer versions available.
    Property${plugin.dependency.version}
    Associated artifactsorg.apache.maven.plugins:maven-dependency-plugin
    Current Version2.3
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.deploy.version}

    Status No newer versions available.
    Property${plugin.deploy.version}
    Associated artifactsorg.apache.maven.plugins:maven-deploy-plugin
    Current Version2.6
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.eclipse.version}

    Status No newer versions available.
    Property${plugin.eclipse.version}
    Associated artifactsorg.apache.maven.plugins:maven-eclipse-plugin
    Current Version2.8
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.enforcer.version}

    Status No newer versions available.
    Property${plugin.enforcer.version}
    Associated artifactsorg.apache.maven.plugins:maven-enforcer-plugin
    Current Version1.0.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.findbugs.version}

    Status No newer versions available.
    Property${plugin.findbugs.version}
    Associated artifactsorg.codehaus.mojo:findbugs-maven-plugin
    Current Version2.3.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.help.version}

    Status No newer versions available.
    Property${plugin.help.version}
    Associated artifactsorg.apache.maven.plugins:maven-help-plugin
    Current Version2.1.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.install.version}

    Status No newer versions available.
    Property${plugin.install.version}
    Associated artifactsorg.apache.maven.plugins:maven-install-plugin
    Current Version2.3.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.jar.version}

    Status No newer versions available.
    Property${plugin.jar.version}
    Associated artifactsorg.apache.maven.plugins:maven-jar-plugin
    Current Version2.3.1
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.javadoc.version}

    Status No newer versions available.
    Property${plugin.javadoc.version}
    Associated artifactsorg.apache.maven.plugins:maven-javadoc-plugin
    Current Version2.8
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.jxr.version}

    Status No newer versions available.
    Property${plugin.jxr.version}
    Associated artifactsorg.apache.maven.plugins:maven-jxr-plugin
    Current Version2.3
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.pmd.version}

    Status No newer versions available.
    Property${plugin.pmd.version}
    Associated artifactsorg.apache.maven.plugins:maven-pmd-plugin
    Current Version2.5
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.project-info-reports.version}

    Status No newer versions available.
    Property${plugin.project-info-reports.version}
    Associated artifactsorg.apache.maven.plugins:maven-project-info-reports-plugin
    Current Version2.4
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.release.version}

    Status No newer versions available.
    Property${plugin.release.version}
    Associated artifactsorg.apache.maven.plugins:maven-release-plugin
    Current Version2.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.resources.version}

    Status No newer versions available.
    Property${plugin.resources.version}
    Associated artifactsorg.apache.maven.plugins:maven-resources-plugin
    Current Version2.5
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.site.version}

    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Property${plugin.site.version}
    Associated artifactsorg.apache.maven.plugins:maven-site-plugin
    Current Version2.3
    Newer versions3.0-beta-1 Next Minor
    3.0-beta-2
    3.0-beta-3 Latest Minor
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.source.version}

    Status No newer versions available.
    Property${plugin.source.version}
    Associated artifactsorg.apache.maven.plugins:maven-source-plugin
    Current Version2.1.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.surefire.version}

    Status No newer versions available.
    Property${plugin.surefire.version}
    Associated artifactsorg.apache.maven.plugins:maven-surefire-plugin
    Current Version2.9
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.taglist.version}

    Status No newer versions available.
    Property${plugin.taglist.version}
    Associated artifactsorg.codehaus.mojo:taglist-maven-plugin
    Current Version2.4
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes

    ${plugin.versions.version}

    Status No newer versions available.
    Property${plugin.versions.version}
    Associated artifactsorg.codehaus.mojo:versions-maven-plugin
    Current Version1.2
    Allowed version range[,)
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    diff --git a/scripting.html b/scripting.html index 89be55f..50eaae0 100644 --- a/scripting.html +++ b/scripting.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/source-repository.html b/source-repository.html index 5b1d739..b35e6b1 100644 --- a/source-repository.html +++ b/source-repository.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/status.html b/status.html index 57a3040..289720b 100644 --- a/status.html +++ b/status.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    @@ -111,7 +111,7 @@
    -

    Status of the implementation of the RunDeck API

    RunDeck API version 1

    Documentation of the RunDeck API version 1

    • Login-based authentication - OK
    • System Info - OK
    • Listing Jobs - OK
    • Running a Job - OK
    • Exporting Jobs - OK (XML only, YAML not supported yet)
    • Importing Jobs - TODO
    • Getting a Job Definition - OK (XML only, YAML not supported yet)
    • Deleting a Job Definition - OK
    • Getting Executions for a Job - OK
    • Listing Running Executions - OK
    • Getting Execution Info - OK
    • Aborting Executions - OK
    • Running Adhoc Commands - OK
    • Running Adhoc Scripts - TODO
    • Listing Projects - OK
    • Getting Project Info - OK
    • Listing History - TODO
    • Creating History Event Reports - TODO
    • Listing Resources - OK (XML only, YAML not supported yet)
    • Getting Resource Info - OK (XML only, YAML not supported yet)
    +

    Status of the implementation of the RunDeck API

    RunDeck API version 1

    Documentation of the RunDeck API version 1

    • Login-based authentication - OK
    • System Info - OK
    • Listing Jobs - OK
    • Running a Job - OK
    • Exporting Jobs - OK
    • Importing Jobs - OK
    • Getting a Job Definition - OK
    • Deleting a Job Definition - OK
    • Getting Executions for a Job - OK
    • Listing Running Executions - OK
    • Getting Execution Info - OK
    • Aborting Executions - OK
    • Running Adhoc Commands - OK
    • Running Adhoc Scripts - TODO
    • Listing Projects - OK
    • Getting Project Info - OK
    • Listing History - TODO
    • Creating History Event Reports - TODO
    • Listing Resources - OK
    • Getting Resource Info - OK
    diff --git a/taglist.html b/taglist.html index e41a3a4..b20a008 100644 --- a/taglist.html +++ b/taglist.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/team-list.html b/team-list.html index c6846e5..8fdfa6b 100644 --- a/team-list.html +++ b/team-list.html @@ -1,5 +1,5 @@ - + @@ -10,7 +10,7 @@ @import url("./css/site.css"); - + @@ -49,8 +49,8 @@
    - Last Published: 2011-07-12 -  | Version: 1.1-SNAPSHOT + Last Published: 2011-07-28 +  | Version: 1.1

    diff --git a/testapidocs/allclasses-frame.html b/testapidocs/allclasses-frame.html index c8a5521..0e3a088 100644 --- a/testapidocs/allclasses-frame.html +++ b/testapidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +All Classes (RunDeck API - Java Client 1.1 Test API) - + @@ -28,6 +28,8 @@ All Classes (RunDeck API - Java Client 1.1-SNAPSHOT Test API)
    JobParserTest
    +JobsImportResultParserTest +
    ListParserTest
    NodeParserTest diff --git a/testapidocs/allclasses-noframe.html b/testapidocs/allclasses-noframe.html index 00ad9e1..0a67890 100644 --- a/testapidocs/allclasses-noframe.html +++ b/testapidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +All Classes (RunDeck API - Java Client 1.1 Test API) - + @@ -28,6 +28,8 @@ All Classes (RunDeck API - Java Client 1.1-SNAPSHOT Test API)
    JobParserTest
    +JobsImportResultParserTest +
    ListParserTest
    NodeParserTest diff --git a/testapidocs/constant-values.html b/testapidocs/constant-values.html index 151aed6..0aefe36 100644 --- a/testapidocs/constant-values.html +++ b/testapidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Constant Field Values (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Constant Field Values (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Constant Field Values (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/deprecated-list.html b/testapidocs/deprecated-list.html index ae43dff..ddd29aa 100644 --- a/testapidocs/deprecated-list.html +++ b/testapidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Deprecated List (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Deprecated List (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Deprecated List (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/help-doc.html b/testapidocs/help-doc.html index 17e1510..fcc0c7c 100644 --- a/testapidocs/help-doc.html +++ b/testapidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +API Help (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ API Help (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="API Help (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/index-all.html b/testapidocs/index-all.html index 2711848..551da31 100644 --- a/testapidocs/index-all.html +++ b/testapidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +Index (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ Index (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="Index (RunDeck API - Java Client 1.1 Test API)"; } } @@ -113,6 +113,9 @@ Method in class org.rundeck.api.util.JobParserTest - Class in org.rundeck.api.parser
    Test the JobParser
    JobParserTest() - Constructor for class org.rundeck.api.parser.JobParserTest
      +
    JobsImportResultParserTest - Class in org.rundeck.api.parser
    Test the JobsImportResultParser
    JobsImportResultParserTest() - +Constructor for class org.rundeck.api.parser.JobsImportResultParserTest +
     

    @@ -190,6 +193,9 @@ Method in class org.rundeck.api.parser.parseProjects() - Method in class org.rundeck.api.parser.ListParserTest
      +
    parseResult() - +Method in class org.rundeck.api.parser.JobsImportResultParserTest +
     
    ParserHelperTest - Class in org.rundeck.api.parser
    Test the ParserHelper
    ParserHelperTest() - Constructor for class org.rundeck.api.parser.ParserHelperTest
      diff --git a/testapidocs/index.html b/testapidocs/index.html index 95a9a08..2c8267d 100644 --- a/testapidocs/index.html +++ b/testapidocs/index.html @@ -2,10 +2,10 @@ - + -RunDeck API - Java Client 1.1-SNAPSHOT Test API +RunDeck API - Java Client 1.1 Test API diff --git a/testapidocs/org/rundeck/api/parser/ExecutionParserTest.html b/testapidocs/org/rundeck/api/parser/ExecutionParserTest.html index d5d10c4..19879ae 100644 --- a/testapidocs/org/rundeck/api/parser/ExecutionParserTest.html +++ b/testapidocs/org/rundeck/api/parser/ExecutionParserTest.html @@ -2,13 +2,13 @@ - + -ExecutionParserTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +ExecutionParserTest (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ ExecutionParserTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ExecutionParserTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="ExecutionParserTest (RunDeck API - Java Client 1.1 Test API)"; } } diff --git a/testapidocs/org/rundeck/api/parser/JobParserTest.html b/testapidocs/org/rundeck/api/parser/JobParserTest.html index eeaaf81..39cfc5b 100644 --- a/testapidocs/org/rundeck/api/parser/JobParserTest.html +++ b/testapidocs/org/rundeck/api/parser/JobParserTest.html @@ -2,13 +2,13 @@ - + -JobParserTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) +JobParserTest (RunDeck API - Java Client 1.1 Test API) - + @@ -16,7 +16,7 @@ JobParserTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="JobParserTest (RunDeck API - Java Client 1.1-SNAPSHOT Test API)"; + parent.document.title="JobParserTest (RunDeck API - Java Client 1.1 Test API)"; } } @@ -57,7 +57,7 @@ function windowTitle()

    Test the JobParser
    JobsImportResultParserTestTest the JobsImportResultParser
    ListParserTest Test the ListParser
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary
    - AbortParserTest -
    - ExecutionParserTest -
    - JobParserTest -
    - ListParserTest -
    - NodeParserTest -
    - ParserHelperTest -
    - ProjectParserTest -
    - StringParserTest -
    - SystemInfoParserTest -
    - -

    - -
    -
    - -
    -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.parser + + + +
    + +
    +
    + +
    + +

    Package org.rundeck.api.parser

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Class Summary
    + AbortParserTest +
    + ExecutionParserTest +
    + JobParserTest +
    + JobsImportResultParserTest +
    + ListParserTest +
    + NodeParserTest +
    + ParserHelperTest +
    + ProjectParserTest +
    + StringParserTest +
    + SystemInfoParserTest +
    + +
    + +
    +
    + +
    +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref-test/org/rundeck/api/util/package-frame.html b/xref-test/org/rundeck/api/util/package-frame.html index 7422ba8..3e1f43b 100644 --- a/xref-test/org/rundeck/api/util/package-frame.html +++ b/xref-test/org/rundeck/api/util/package-frame.html @@ -1,24 +1,24 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.util - - - - -

    - org.rundeck.api.util -

    - -

    Classes

    - - - - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.util + + + + +

    + org.rundeck.api.util +

    + +

    Classes

    + + + + \ No newline at end of file diff --git a/xref-test/org/rundeck/api/util/package-summary.html b/xref-test/org/rundeck/api/util/package-summary.html index bb3a412..b0d5404 100644 --- a/xref-test/org/rundeck/api/util/package-summary.html +++ b/xref-test/org/rundeck/api/util/package-summary.html @@ -1,67 +1,67 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.util - - - -
    - -
    -
    - -
    - -

    Package org.rundeck.api.util

    - - - - - - - - - - - - -
    Class Summary
    - ParametersUtilTest -
    - -
    - -
    -
    - -
    -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.util + + + +
    + +
    +
    + +
    + +

    Package org.rundeck.api.util

    + + + + + + + + + + + + +
    Class Summary
    + ParametersUtilTest +
    + +
    + +
    +
    + +
    +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref-test/overview-frame.html b/xref-test/overview-frame.html index a725a72..2eb28d9 100644 --- a/xref-test/overview-frame.html +++ b/xref-test/overview-frame.html @@ -1,28 +1,28 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference - - - - -

    - All Classes -

    - -

    Packages

    - - - - - - + + + + + + RunDeck API - Java Client 1.1 Reference + + + + +

    + All Classes +

    + +

    Packages

    + + + + + + diff --git a/xref-test/overview-summary.html b/xref-test/overview-summary.html index b608b5a..dd0f7e2 100644 --- a/xref-test/overview-summary.html +++ b/xref-test/overview-summary.html @@ -1,69 +1,69 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference - - - -
    -
      -
    • Overview
    • -
    • Package
    • -
    -
    -
    - -
    - -

    RunDeck API - Java Client 1.1-SNAPSHOT Reference

    - - - - - - - - - - - - - - - -
    Packages
    - org.rundeck.api.parser -
    - org.rundeck.api.util -
    - -
    -
      -
    • Overview
    • -
    • Package
    • -
    -
    -
    - -
    - -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference + + + +
    +
      +
    • Overview
    • +
    • Package
    • +
    +
    +
    + +
    + +

    RunDeck API - Java Client 1.1 Reference

    + + + + + + + + + + + + + + + +
    Packages
    + org.rundeck.api.parser +
    + org.rundeck.api.util +
    + +
    +
      +
    • Overview
    • +
    • Package
    • +
    +
    +
    + +
    + +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref-test/stylesheet.css b/xref-test/stylesheet.css index bebb662..00e6114 100644 --- a/xref-test/stylesheet.css +++ b/xref-test/stylesheet.css @@ -1,116 +1,116 @@ -/* Javadoc style sheet */ -/* Define colors, fonts and other style attributes here to override the defaults */ -body { - background-color: #fff; - font-family: Arial, Helvetica, sans-serif; -} - -a:link { - color: #00f; -} -a:visited { - color: #00a; -} - -a:active, a:hover { - color: #f30 !important; -} - -ul, li { - list-style-type:none; - margin:0; - padding:0; -} - -table td { - padding: 3px; - border: 1px solid #000; -} -table { - width:100%; - border: 1px solid #000; - border-collapse: collapse; -} - -div.overview { - background-color:#ddd; - padding: 4px 4px 4px 0; -} -div.overview li, div.framenoframe li { - display: inline; -} -div.framenoframe { - text-align: center; - font-size: x-small; -} -div.framenoframe li { - margin: 0 3px 0 3px; -} -div.overview li { - margin:3px 3px 0 3px; - padding: 4px; -} -li.selected { - background-color:#888; - color: #fff; - font-weight: bold; -} - -table.summary { - margin-bottom: 20px; -} -table.summary td, table.summary th { - font-weight: bold; - text-align: left; - padding: 3px; -} -table.summary th { - background-color:#036; - color: #fff; -} -table.summary td { - background-color:#eee; - border: 1px solid black; -} - -em { - color: #A00; -} -em.comment { - color: #390; -} -.string { - color: #009; -} -div#footer { - text-align:center; -} -#overview { - padding:2px; -} - -hr { - height: 1px; - color: #000; -} - -/* JXR style sheet */ -.jxr_comment -{ - color: #390; -} - -.jxr_javadoccomment -{ - color: #A00; -} - -.jxr_string -{ - color: #009; -} - -.jxr_keyword -{ - color: #000; -} +/* Javadoc style sheet */ +/* Define colors, fonts and other style attributes here to override the defaults */ +body { + background-color: #fff; + font-family: Arial, Helvetica, sans-serif; +} + +a:link { + color: #00f; +} +a:visited { + color: #00a; +} + +a:active, a:hover { + color: #f30 !important; +} + +ul, li { + list-style-type:none; + margin:0; + padding:0; +} + +table td { + padding: 3px; + border: 1px solid #000; +} +table { + width:100%; + border: 1px solid #000; + border-collapse: collapse; +} + +div.overview { + background-color:#ddd; + padding: 4px 4px 4px 0; +} +div.overview li, div.framenoframe li { + display: inline; +} +div.framenoframe { + text-align: center; + font-size: x-small; +} +div.framenoframe li { + margin: 0 3px 0 3px; +} +div.overview li { + margin:3px 3px 0 3px; + padding: 4px; +} +li.selected { + background-color:#888; + color: #fff; + font-weight: bold; +} + +table.summary { + margin-bottom: 20px; +} +table.summary td, table.summary th { + font-weight: bold; + text-align: left; + padding: 3px; +} +table.summary th { + background-color:#036; + color: #fff; +} +table.summary td { + background-color:#eee; + border: 1px solid black; +} + +em { + color: #A00; +} +em.comment { + color: #390; +} +.string { + color: #009; +} +div#footer { + text-align:center; +} +#overview { + padding:2px; +} + +hr { + height: 1px; + color: #000; +} + +/* JXR style sheet */ +.jxr_comment +{ + color: #390; +} + +.jxr_javadoccomment +{ + color: #A00; +} + +.jxr_string +{ + color: #009; +} + +.jxr_keyword +{ + color: #000; +} diff --git a/xref/allclasses-frame.html b/xref/allclasses-frame.html index 8ad4c74..e890bac 100644 --- a/xref/allclasses-frame.html +++ b/xref/allclasses-frame.html @@ -1,98 +1,110 @@ - - - - - - All Classes - - - - -

    All Classes

    - - - - - + + + + + + All Classes + + + + +

    All Classes

    + + + + + diff --git a/xref/index.html b/xref/index.html index 8ddcf23..a8de5d6 100644 --- a/xref/index.html +++ b/xref/index.html @@ -1,24 +1,24 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference - - - - - - - - - <body> - <h1>Frame Alert</h1> - <p> - You don't have frames. Go <a href="overview-summary.html">here</a> - </p> - </body> - - - - + + + + + + RunDeck API - Java Client 1.1 Reference + + + + + + + + + <body> + <h1>Frame Alert</h1> + <p> + You don't have frames. Go <a href="overview-summary.html">here</a> + </p> + </body> + + + + diff --git a/xref/org/rundeck/api/ApiCall.html b/xref/org/rundeck/api/ApiCall.html index e8196b2..b5572e0 100644 --- a/xref/org/rundeck/api/ApiCall.html +++ b/xref/org/rundeck/api/ApiCall.html @@ -28,311 +28,365 @@ 18 import java.io.ByteArrayInputStream; 19 import java.io.IOException; 20 import java.io.InputStream; -21 import java.security.KeyManagementException; -22 import java.security.KeyStoreException; -23 import java.security.NoSuchAlgorithmException; -24 import java.security.UnrecoverableKeyException; -25 import java.security.cert.CertificateException; -26 import java.security.cert.X509Certificate; -27 import java.util.ArrayList; -28 import java.util.List; -29 import org.apache.commons.lang.StringUtils; -30 import org.apache.http.HttpResponse; -31 import org.apache.http.NameValuePair; -32 import org.apache.http.ParseException; -33 import org.apache.http.client.HttpClient; -34 import org.apache.http.client.entity.UrlEncodedFormEntity; -35 import org.apache.http.client.methods.HttpDelete; -36 import org.apache.http.client.methods.HttpGet; -37 import org.apache.http.client.methods.HttpPost; -38 import org.apache.http.client.methods.HttpRequestBase; -39 import org.apache.http.conn.scheme.Scheme; -40 import org.apache.http.conn.ssl.SSLSocketFactory; -41 import org.apache.http.conn.ssl.TrustStrategy; -42 import org.apache.http.impl.client.DefaultHttpClient; -43 import org.apache.http.message.BasicNameValuePair; -44 import org.apache.http.protocol.HTTP; -45 import org.apache.http.util.EntityUtils; -46 import org.dom4j.Document; -47 import org.rundeck.api.RundeckApiException.RundeckApiLoginException; -48 import org.rundeck.api.parser.ParserHelper; -49 import org.rundeck.api.parser.XmlNodeParser; -50 import org.rundeck.api.util.AssertUtil; -51 -52 /** -53 * Class responsible for making the HTTP API calls -54 * -55 * @author Vincent Behar -56 */ -57 class ApiCall { -58 -59 private final RundeckClient client; -60 -61 /** -62 * Build a new instance, linked to the given RunDeck client -63 * -64 * @param client holding the RunDeck url and the credentials -65 * @throws IllegalArgumentException if client is null -66 */ -67 public ApiCall(RundeckClient client) throws IllegalArgumentException { -68 super(); -69 this.client = client; -70 AssertUtil.notNull(client, "The RunDeck Client must not be null !"); -71 } -72 -73 /** -74 * Try to "ping" the RunDeck instance to see if it is alive -75 * -76 * @throws RundeckApiException if the ping fails -77 */ -78 public void ping() throws RundeckApiException { -79 HttpClient httpClient = instantiateHttpClient(); -80 try { -81 HttpResponse response = httpClient.execute(new HttpGet(client.getUrl())); -82 if (response.getStatusLine().getStatusCode() / 100 != 2) { -83 throw new RundeckApiException("Invalid HTTP response '" + response.getStatusLine() + "' when pinging " -84 + client.getUrl()); -85 } -86 } catch (IOException e) { -87 throw new RundeckApiException("Failed to ping RunDeck instance at " + client.getUrl(), e); -88 } finally { -89 httpClient.getConnectionManager().shutdown(); -90 } -91 } -92 -93 /** -94 * Test the credentials (login/password) on the RunDeck instance -95 * -96 * @throws RundeckApiLoginException if the login fails -97 */ -98 public void testCredentials() throws RundeckApiLoginException { -99 HttpClient httpClient = instantiateHttpClient(); -100 try { -101 login(httpClient); -102 } finally { -103 httpClient.getConnectionManager().shutdown(); -104 } -105 } -106 -107 /** -108 * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the -109 * API call. At the end, the given parser will be used to convert the response to a more useful result object. -110 * -111 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} -112 * @param parser used to parse the response -113 * @return the result of the call, as formatted by the parser -114 * @throws RundeckApiException in case of error when calling the API -115 * @throws RundeckApiLoginException if the login fails -116 */ -117 public <T> T get(ApiPathBuilder apiPath, XmlNodeParser<T> parser) throws RundeckApiException, -118 RundeckApiLoginException { -119 return execute(new HttpGet(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath), parser); -120 } -121 -122 /** -123 * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the -124 * API call. -125 * -126 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} -127 * @return a new {@link InputStream} instance, not linked with network resources -128 * @throws RundeckApiException in case of error when calling the API -129 * @throws RundeckApiLoginException if the login fails -130 */ -131 public InputStream get(ApiPathBuilder apiPath) throws RundeckApiException, RundeckApiLoginException { -132 ByteArrayInputStream response = execute(new HttpGet(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath)); -133 -134 // try to load the document, to throw an exception in case of error -135 ParserHelper.loadDocument(response); -136 response.reset(); -137 -138 return response; -139 } -140 -141 /** -142 * Execute an HTTP DELETE request to the RunDeck instance, on the given path. We will login first, and then execute -143 * the API call. At the end, the given parser will be used to convert the response to a more useful result object. -144 * -145 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} -146 * @param parser used to parse the response -147 * @return the result of the call, as formatted by the parser -148 * @throws RundeckApiException in case of error when calling the API -149 * @throws RundeckApiLoginException if the login fails -150 */ -151 public <T> T delete(ApiPathBuilder apiPath, XmlNodeParser<T> parser) throws RundeckApiException, -152 RundeckApiLoginException { -153 return execute(new HttpDelete(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath), parser); -154 } -155 -156 /** -157 * Execute an HTTP request to the RunDeck instance. We will login first, and then execute the API call. At the end, -158 * the given parser will be used to convert the response to a more useful result object. -159 * -160 * @param request to execute. see {@link HttpGet}, {@link HttpDelete}, and so on... -161 * @param parser used to parse the response -162 * @return the result of the call, as formatted by the parser -163 * @throws RundeckApiException in case of error when calling the API -164 * @throws RundeckApiLoginException if the login fails -165 */ -166 private <T> T execute(HttpRequestBase request, XmlNodeParser<T> parser) throws RundeckApiException, -167 RundeckApiLoginException { -168 // execute the request -169 InputStream response = execute(request); +21 import java.net.ProxySelector; +22 import java.security.KeyManagementException; +23 import java.security.KeyStoreException; +24 import java.security.NoSuchAlgorithmException; +25 import java.security.UnrecoverableKeyException; +26 import java.security.cert.CertificateException; +27 import java.security.cert.X509Certificate; +28 import java.util.ArrayList; +29 import java.util.List; +30 import java.util.Map.Entry; +31 import org.apache.commons.lang.StringUtils; +32 import org.apache.http.HttpResponse; +33 import org.apache.http.NameValuePair; +34 import org.apache.http.ParseException; +35 import org.apache.http.client.HttpClient; +36 import org.apache.http.client.entity.UrlEncodedFormEntity; +37 import org.apache.http.client.methods.HttpDelete; +38 import org.apache.http.client.methods.HttpGet; +39 import org.apache.http.client.methods.HttpPost; +40 import org.apache.http.client.methods.HttpRequestBase; +41 import org.apache.http.conn.scheme.Scheme; +42 import org.apache.http.conn.ssl.SSLSocketFactory; +43 import org.apache.http.conn.ssl.TrustStrategy; +44 import org.apache.http.entity.mime.HttpMultipartMode; +45 import org.apache.http.entity.mime.MultipartEntity; +46 import org.apache.http.entity.mime.content.InputStreamBody; +47 import org.apache.http.impl.client.DefaultHttpClient; +48 import org.apache.http.impl.conn.ProxySelectorRoutePlanner; +49 import org.apache.http.message.BasicNameValuePair; +50 import org.apache.http.protocol.HTTP; +51 import org.apache.http.util.EntityUtils; +52 import org.dom4j.Document; +53 import org.rundeck.api.RundeckApiException.RundeckApiLoginException; +54 import org.rundeck.api.parser.ParserHelper; +55 import org.rundeck.api.parser.XmlNodeParser; +56 import org.rundeck.api.util.AssertUtil; +57 +58 /** +59 * Class responsible for making the HTTP API calls +60 * +61 * @author Vincent Behar +62 */ +63 class ApiCall { +64 +65 private final RundeckClient client; +66 +67 /** +68 * Build a new instance, linked to the given RunDeck client +69 * +70 * @param client holding the RunDeck url and the credentials +71 * @throws IllegalArgumentException if client is null +72 */ +73 public ApiCall(RundeckClient client) throws IllegalArgumentException { +74 super(); +75 this.client = client; +76 AssertUtil.notNull(client, "The RunDeck Client must not be null !"); +77 } +78 +79 /** +80 * Try to "ping" the RunDeck instance to see if it is alive +81 * +82 * @throws RundeckApiException if the ping fails +83 */ +84 public void ping() throws RundeckApiException { +85 HttpClient httpClient = instantiateHttpClient(); +86 try { +87 HttpResponse response = httpClient.execute(new HttpGet(client.getUrl())); +88 if (response.getStatusLine().getStatusCode() / 100 != 2) { +89 throw new RundeckApiException("Invalid HTTP response '" + response.getStatusLine() + "' when pinging " +90 + client.getUrl()); +91 } +92 } catch (IOException e) { +93 throw new RundeckApiException("Failed to ping RunDeck instance at " + client.getUrl(), e); +94 } finally { +95 httpClient.getConnectionManager().shutdown(); +96 } +97 } +98 +99 /** +100 * Test the credentials (login/password) on the RunDeck instance +101 * +102 * @throws RundeckApiLoginException if the login fails +103 */ +104 public void testCredentials() throws RundeckApiLoginException { +105 HttpClient httpClient = instantiateHttpClient(); +106 try { +107 login(httpClient); +108 } finally { +109 httpClient.getConnectionManager().shutdown(); +110 } +111 } +112 +113 /** +114 * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the +115 * API call. At the end, the given parser will be used to convert the response to a more useful result object. +116 * +117 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} +118 * @param parser used to parse the response +119 * @return the result of the call, as formatted by the parser +120 * @throws RundeckApiException in case of error when calling the API +121 * @throws RundeckApiLoginException if the login fails +122 */ +123 public <T> T get(ApiPathBuilder apiPath, XmlNodeParser<T> parser) throws RundeckApiException, +124 RundeckApiLoginException { +125 return execute(new HttpGet(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath), parser); +126 } +127 +128 /** +129 * Execute an HTTP GET request to the RunDeck instance, on the given path. We will login first, and then execute the +130 * API call. +131 * +132 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} +133 * @return a new {@link InputStream} instance, not linked with network resources +134 * @throws RundeckApiException in case of error when calling the API +135 * @throws RundeckApiLoginException if the login fails +136 */ +137 public InputStream get(ApiPathBuilder apiPath) throws RundeckApiException, RundeckApiLoginException { +138 ByteArrayInputStream response = execute(new HttpGet(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath)); +139 +140 // try to load the document, to throw an exception in case of error +141 ParserHelper.loadDocument(response); +142 response.reset(); +143 +144 return response; +145 } +146 +147 /** +148 * Execute an HTTP POST request to the RunDeck instance, on the given path. We will login first, and then execute +149 * the API call. At the end, the given parser will be used to convert the response to a more useful result object. +150 * +151 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} +152 * @param parser used to parse the response +153 * @return the result of the call, as formatted by the parser +154 * @throws RundeckApiException in case of error when calling the API +155 * @throws RundeckApiLoginException if the login fails +156 */ +157 public <T> T post(ApiPathBuilder apiPath, XmlNodeParser<T> parser) throws RundeckApiException, +158 RundeckApiLoginException { +159 HttpPost httpPost = new HttpPost(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath); +160 +161 // POST a multi-part request, with all attachments +162 MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); +163 for (Entry<String, InputStream> attachment : apiPath.getAttachments().entrySet()) { +164 entity.addPart(attachment.getKey(), new InputStreamBody(attachment.getValue(), attachment.getKey())); +165 } +166 httpPost.setEntity(entity); +167 +168 return execute(httpPost, parser); +169 } 170 -171 // read and parse the response -172 Document xmlDocument = ParserHelper.loadDocument(response); -173 return parser.parseXmlNode(xmlDocument); -174 } -175 -176 /** -177 * Execute an HTTP request to the RunDeck instance. We will login first, and then execute the API call. -178 * -179 * @param request to execute. see {@link HttpGet}, {@link HttpDelete}, and so on... -180 * @return a new {@link InputStream} instance, not linked with network resources -181 * @throws RundeckApiException in case of error when calling the API -182 * @throws RundeckApiLoginException if the login fails -183 */ -184 private ByteArrayInputStream execute(HttpRequestBase request) throws RundeckApiException, RundeckApiLoginException { -185 HttpClient httpClient = instantiateHttpClient(); -186 try { -187 login(httpClient); -188 -189 // execute the HTTP request -190 HttpResponse response = null; -191 try { -192 response = httpClient.execute(request); -193 } catch (IOException e) { -194 throw new RundeckApiException("Failed to execute an HTTP " + request.getMethod() + " on url : " -195 + request.getURI(), e); -196 } -197 -198 // HTTP client refuses to handle redirects (code 3xx) for DELETE, so we have to do it manually... -199 // See http://rundeck.lighthouseapp.com/projects/59277/tickets/248 -200 if (response.getStatusLine().getStatusCode() / 100 == 3 -201 && HttpDelete.METHOD_NAME.equals(request.getMethod())) { -202 String newLocation = response.getFirstHeader("Location").getValue(); -203 try { -204 EntityUtils.consume(response.getEntity()); -205 } catch (IOException e) { -206 throw new RundeckApiException("Failed to consume entity (release connection)", e); -207 } -208 request = new HttpDelete(newLocation); -209 try { -210 response = httpClient.execute(request); -211 } catch (IOException e) { -212 throw new RundeckApiException("Failed to execute an HTTP " + request.getMethod() + " on url : " -213 + request.getURI(), e); -214 } -215 } -216 -217 // check the response code (should be 2xx, even in case of error : error message is in the XML result) -218 if (response.getStatusLine().getStatusCode() / 100 != 2) { -219 throw new RundeckApiException("Invalid HTTP response '" + response.getStatusLine() + "' for " -220 + request.getURI()); -221 } -222 if (response.getEntity() == null) { -223 throw new RundeckApiException("Empty RunDeck response ! HTTP status line is : " -224 + response.getStatusLine()); -225 } -226 -227 // return a new inputStream, so that we can close all network resources -228 try { -229 return new ByteArrayInputStream(EntityUtils.toByteArray(response.getEntity())); -230 } catch (IOException e) { -231 throw new RundeckApiException("Failed to consume entity and convert the inputStream", e); -232 } -233 } finally { -234 httpClient.getConnectionManager().shutdown(); -235 } -236 } -237 -238 /** -239 * Do the actual work of login, using the given {@link HttpClient} instance. You'll need to re-use this instance -240 * when making API calls (such as running a job). -241 * -242 * @param httpClient pre-instantiated -243 * @throws RundeckApiLoginException if the login failed -244 */ -245 private void login(HttpClient httpClient) throws RundeckApiLoginException { -246 String location = client.getUrl() + "/j_security_check"; -247 -248 while (true) { -249 HttpPost postLogin = new HttpPost(location); -250 List<NameValuePair> params = new ArrayList<NameValuePair>(); -251 params.add(new BasicNameValuePair("j_username", client.getLogin())); -252 params.add(new BasicNameValuePair("j_password", client.getPassword())); -253 params.add(new BasicNameValuePair("action", "login")); -254 -255 HttpResponse response = null; -256 try { -257 postLogin.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); -258 response = httpClient.execute(postLogin); -259 } catch (IOException e) { -260 throw new RundeckApiLoginException("Failed to post login form on " + location, e); -261 } -262 -263 if (response.getStatusLine().getStatusCode() / 100 == 3) { -264 // HTTP client refuses to handle redirects (code 3xx) for POST, so we have to do it manually... -265 location = response.getFirstHeader("Location").getValue(); -266 try { -267 EntityUtils.consume(response.getEntity()); -268 } catch (IOException e) { -269 throw new RundeckApiLoginException("Failed to consume entity (release connection)", e); -270 } -271 continue; +171 /** +172 * Execute an HTTP DELETE request to the RunDeck instance, on the given path. We will login first, and then execute +173 * the API call. At the end, the given parser will be used to convert the response to a more useful result object. +174 * +175 * @param apiPath on which we will make the HTTP request - see {@link ApiPathBuilder} +176 * @param parser used to parse the response +177 * @return the result of the call, as formatted by the parser +178 * @throws RundeckApiException in case of error when calling the API +179 * @throws RundeckApiLoginException if the login fails +180 */ +181 public <T> T delete(ApiPathBuilder apiPath, XmlNodeParser<T> parser) throws RundeckApiException, +182 RundeckApiLoginException { +183 return execute(new HttpDelete(client.getUrl() + RundeckClient.API_ENDPOINT + apiPath), parser); +184 } +185 +186 /** +187 * Execute an HTTP request to the RunDeck instance. We will login first, and then execute the API call. At the end, +188 * the given parser will be used to convert the response to a more useful result object. +189 * +190 * @param request to execute. see {@link HttpGet}, {@link HttpDelete}, and so on... +191 * @param parser used to parse the response +192 * @return the result of the call, as formatted by the parser +193 * @throws RundeckApiException in case of error when calling the API +194 * @throws RundeckApiLoginException if the login fails +195 */ +196 private <T> T execute(HttpRequestBase request, XmlNodeParser<T> parser) throws RundeckApiException, +197 RundeckApiLoginException { +198 // execute the request +199 InputStream response = execute(request); +200 +201 // read and parse the response +202 Document xmlDocument = ParserHelper.loadDocument(response); +203 return parser.parseXmlNode(xmlDocument); +204 } +205 +206 /** +207 * Execute an HTTP request to the RunDeck instance. We will login first, and then execute the API call. +208 * +209 * @param request to execute. see {@link HttpGet}, {@link HttpDelete}, and so on... +210 * @return a new {@link InputStream} instance, not linked with network resources +211 * @throws RundeckApiException in case of error when calling the API +212 * @throws RundeckApiLoginException if the login fails +213 */ +214 private ByteArrayInputStream execute(HttpRequestBase request) throws RundeckApiException, RundeckApiLoginException { +215 HttpClient httpClient = instantiateHttpClient(); +216 try { +217 login(httpClient); +218 +219 // execute the HTTP request +220 HttpResponse response = null; +221 try { +222 response = httpClient.execute(request); +223 } catch (IOException e) { +224 throw new RundeckApiException("Failed to execute an HTTP " + request.getMethod() + " on url : " +225 + request.getURI(), e); +226 } +227 +228 // HTTP client refuses to handle redirects (code 3xx) for DELETE, so we have to do it manually... +229 // See http://rundeck.lighthouseapp.com/projects/59277/tickets/248 +230 if (response.getStatusLine().getStatusCode() / 100 == 3 +231 && HttpDelete.METHOD_NAME.equals(request.getMethod())) { +232 String newLocation = response.getFirstHeader("Location").getValue(); +233 try { +234 EntityUtils.consume(response.getEntity()); +235 } catch (IOException e) { +236 throw new RundeckApiException("Failed to consume entity (release connection)", e); +237 } +238 request = new HttpDelete(newLocation); +239 try { +240 response = httpClient.execute(request); +241 } catch (IOException e) { +242 throw new RundeckApiException("Failed to execute an HTTP " + request.getMethod() + " on url : " +243 + request.getURI(), e); +244 } +245 } +246 +247 // in case of error, we get a redirect to /api/error +248 // that we need to follow manually for POST and DELETE requests (as GET) +249 if (response.getStatusLine().getStatusCode() / 100 == 3) { +250 String newLocation = response.getFirstHeader("Location").getValue(); +251 try { +252 EntityUtils.consume(response.getEntity()); +253 } catch (IOException e) { +254 throw new RundeckApiException("Failed to consume entity (release connection)", e); +255 } +256 request = new HttpGet(newLocation); +257 try { +258 response = httpClient.execute(request); +259 } catch (IOException e) { +260 throw new RundeckApiException("Failed to execute an HTTP GET on url : " + request.getURI(), e); +261 } +262 } +263 +264 // check the response code (should be 2xx, even in case of error : error message is in the XML result) +265 if (response.getStatusLine().getStatusCode() / 100 != 2) { +266 throw new RundeckApiException("Invalid HTTP response '" + response.getStatusLine() + "' for " +267 + request.getURI()); +268 } +269 if (response.getEntity() == null) { +270 throw new RundeckApiException("Empty RunDeck response ! HTTP status line is : " +271 + response.getStatusLine()); 272 } -273 if (response.getStatusLine().getStatusCode() / 100 != 2) { -274 throw new RundeckApiLoginException("Invalid HTTP response '" + response.getStatusLine() + "' for " -275 + location); -276 } -277 try { -278 String content = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); -279 if (StringUtils.contains(content, "j_security_check")) { -280 throw new RundeckApiLoginException("Login failed for user " + client.getLogin()); -281 } -282 try { -283 EntityUtils.consume(response.getEntity()); -284 } catch (IOException e) { -285 throw new RundeckApiLoginException("Failed to consume entity (release connection)", e); -286 } -287 } catch (IOException io) { -288 throw new RundeckApiLoginException("Failed to read RunDeck result", io); -289 } catch (ParseException p) { -290 throw new RundeckApiLoginException("Failed to parse RunDeck response", p); -291 } -292 break; -293 } -294 } -295 -296 /** -297 * Instantiate a new {@link HttpClient} instance, configured to accept all SSL certificates -298 * -299 * @return an {@link HttpClient} instance - won't be null -300 */ -301 private HttpClient instantiateHttpClient() { -302 SSLSocketFactory socketFactory = null; -303 try { -304 socketFactory = new SSLSocketFactory(new TrustStrategy() { -305 -306 @Override -307 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { -308 return true; -309 } -310 }, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); -311 } catch (KeyManagementException e) { -312 throw new RuntimeException(e); -313 } catch (UnrecoverableKeyException e) { -314 throw new RuntimeException(e); -315 } catch (NoSuchAlgorithmException e) { -316 throw new RuntimeException(e); -317 } catch (KeyStoreException e) { -318 throw new RuntimeException(e); -319 } -320 -321 HttpClient httpClient = new DefaultHttpClient(); -322 httpClient.getConnectionManager().getSchemeRegistry().register(new Scheme("https", 443, socketFactory)); -323 return httpClient; -324 } -325 } +273 +274 // return a new inputStream, so that we can close all network resources +275 try { +276 return new ByteArrayInputStream(EntityUtils.toByteArray(response.getEntity())); +277 } catch (IOException e) { +278 throw new RundeckApiException("Failed to consume entity and convert the inputStream", e); +279 } +280 } finally { +281 httpClient.getConnectionManager().shutdown(); +282 } +283 } +284 +285 /** +286 * Do the actual work of login, using the given {@link HttpClient} instance. You'll need to re-use this instance +287 * when making API calls (such as running a job). +288 * +289 * @param httpClient pre-instantiated +290 * @throws RundeckApiLoginException if the login failed +291 */ +292 private void login(HttpClient httpClient) throws RundeckApiLoginException { +293 String location = client.getUrl() + "/j_security_check"; +294 +295 while (true) { +296 HttpPost postLogin = new HttpPost(location); +297 List<NameValuePair> params = new ArrayList<NameValuePair>(); +298 params.add(new BasicNameValuePair("j_username", client.getLogin())); +299 params.add(new BasicNameValuePair("j_password", client.getPassword())); +300 params.add(new BasicNameValuePair("action", "login")); +301 +302 HttpResponse response = null; +303 try { +304 postLogin.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); +305 response = httpClient.execute(postLogin); +306 } catch (IOException e) { +307 throw new RundeckApiLoginException("Failed to post login form on " + location, e); +308 } +309 +310 if (response.getStatusLine().getStatusCode() / 100 == 3) { +311 // HTTP client refuses to handle redirects (code 3xx) for POST, so we have to do it manually... +312 location = response.getFirstHeader("Location").getValue(); +313 try { +314 EntityUtils.consume(response.getEntity()); +315 } catch (IOException e) { +316 throw new RundeckApiLoginException("Failed to consume entity (release connection)", e); +317 } +318 continue; +319 } +320 if (response.getStatusLine().getStatusCode() / 100 != 2) { +321 throw new RundeckApiLoginException("Invalid HTTP response '" + response.getStatusLine() + "' for " +322 + location); +323 } +324 try { +325 String content = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); +326 if (StringUtils.contains(content, "j_security_check")) { +327 throw new RundeckApiLoginException("Login failed for user " + client.getLogin()); +328 } +329 try { +330 EntityUtils.consume(response.getEntity()); +331 } catch (IOException e) { +332 throw new RundeckApiLoginException("Failed to consume entity (release connection)", e); +333 } +334 } catch (IOException io) { +335 throw new RundeckApiLoginException("Failed to read RunDeck result", io); +336 } catch (ParseException p) { +337 throw new RundeckApiLoginException("Failed to parse RunDeck response", p); +338 } +339 break; +340 } +341 } +342 +343 /** +344 * Instantiate a new {@link HttpClient} instance, configured to accept all SSL certificates +345 * +346 * @return an {@link HttpClient} instance - won't be null +347 */ +348 private HttpClient instantiateHttpClient() { +349 DefaultHttpClient httpClient = new DefaultHttpClient(); +350 +351 // configure SSL +352 SSLSocketFactory socketFactory = null; +353 try { +354 socketFactory = new SSLSocketFactory(new TrustStrategy() { +355 +356 @Override +357 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { +358 return true; +359 } +360 }, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); +361 } catch (KeyManagementException e) { +362 throw new RuntimeException(e); +363 } catch (UnrecoverableKeyException e) { +364 throw new RuntimeException(e); +365 } catch (NoSuchAlgorithmException e) { +366 throw new RuntimeException(e); +367 } catch (KeyStoreException e) { +368 throw new RuntimeException(e); +369 } +370 httpClient.getConnectionManager().getSchemeRegistry().register(new Scheme("https", 443, socketFactory)); +371 +372 // configure proxy (use system env : http.proxyHost / http.proxyPort) +373 System.setProperty("java.net.useSystemProxies", "true"); +374 httpClient.setRoutePlanner(new ProxySelectorRoutePlanner(httpClient.getConnectionManager().getSchemeRegistry(), +375 ProxySelector.getDefault())); +376 +377 return httpClient; +378 } +379 }
    diff --git a/xref/org/rundeck/api/ApiPathBuilder.html b/xref/org/rundeck/api/ApiPathBuilder.html index 3244960..5fcdb12 100644 --- a/xref/org/rundeck/api/ApiPathBuilder.html +++ b/xref/org/rundeck/api/ApiPathBuilder.html @@ -25,147 +25,192 @@ 15 */ 16 package org.rundeck.api; 17 -18 import java.util.Properties; -19 import org.apache.commons.lang.StringUtils; -20 import org.rundeck.api.util.ParametersUtil; -21 -22 /** -23 * Builder for API paths -24 * -25 * @author Vincent Behar -26 */ -27 class ApiPathBuilder { -28 -29 /** Internally, we store everything in a {@link StringBuilder} */ -30 private final StringBuilder apiPath; +18 import java.io.InputStream; +19 import java.util.HashMap; +20 import java.util.Map; +21 import java.util.Properties; +22 import org.apache.commons.lang.StringUtils; +23 import org.rundeck.api.util.ParametersUtil; +24 +25 /** +26 * Builder for API paths +27 * +28 * @author Vincent Behar +29 */ +30 class ApiPathBuilder { 31 -32 /** Maker for using the right separator between parameters ("?" or "&") */ -33 private boolean firstParamDone = false; +32 /** Internally, we store everything in a {@link StringBuilder} */ +33 private final StringBuilder apiPath; 34 -35 /** -36 * Build a new instance, for the given "path" (the "path" is the part before the parameters. The path and the -37 * parameters are separated by a "?") -38 * -39 * @param paths elements of the path -40 */ -41 public ApiPathBuilder(String... paths) { -42 apiPath = new StringBuilder(); -43 if (paths != null) { -44 for (String path : paths) { -45 if (StringUtils.isNotBlank(path)) { -46 append(path); -47 } -48 } -49 } -50 } -51 -52 /** -53 * Append the given parameter (key and value). This will only append the parameter if it is not blank (null, empty -54 * or whitespace), and make sure to add the right separator ("?" or "&") before. The key and value will be separated -55 * by the "=" character. Also, the value will be url-encoded. -56 * -57 * @param key of the parameter. Must not be null or empty -58 * @param value of the parameter. May be null/empty/blank. Will be url-encoded. -59 * @return this, for method chaining -60 */ -61 public ApiPathBuilder param(String key, String value) { -62 if (StringUtils.isNotBlank(value)) { -63 appendSeparator(); -64 append(key); -65 append("="); -66 append(ParametersUtil.urlEncode(value)); -67 } -68 return this; -69 } -70 -71 /** -72 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure -73 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. -74 * -75 * @param key of the parameter. Must not be null or empty -76 * @param value of the parameter. May be null -77 * @return this, for method chaining -78 */ -79 public ApiPathBuilder param(String key, Long value) { -80 if (value != null) { -81 param(key, value.toString()); -82 } -83 return this; -84 } -85 -86 /** -87 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure -88 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. -89 * -90 * @param key of the parameter. Must not be null or empty -91 * @param value of the parameter. May be null -92 * @return this, for method chaining -93 */ -94 public ApiPathBuilder param(String key, Integer value) { -95 if (value != null) { -96 param(key, value.toString()); -97 } -98 return this; -99 } -100 -101 /** -102 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure -103 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. -104 * -105 * @param key of the parameter. Must not be null or empty -106 * @param value of the parameter. May be null -107 * @return this, for method chaining -108 */ -109 public ApiPathBuilder param(String key, Boolean value) { -110 if (value != null) { -111 param(key, value.toString()); -112 } -113 return this; -114 } -115 -116 /** -117 * Append the given node filters, only if it is not null/empty -118 * -119 * @param nodeFilters may be null/empty -120 * @return this, for method chaining -121 * @see ParametersUtil#generateNodeFiltersString(Properties) -122 */ -123 public ApiPathBuilder nodeFilters(Properties nodeFilters) { -124 String filters = ParametersUtil.generateNodeFiltersString(nodeFilters); -125 if (StringUtils.isNotBlank(filters)) { -126 appendSeparator(); -127 append(filters); -128 } -129 return this; -130 } -131 -132 @Override -133 public String toString() { -134 return apiPath.toString(); -135 } -136 -137 /** -138 * Append the given string -139 * -140 * @param str to append -141 */ -142 private void append(String str) { -143 apiPath.append(str); -144 } -145 -146 /** -147 * Append the right separator "?" or "&" between 2 parameters -148 */ -149 private void appendSeparator() { -150 if (firstParamDone) { -151 append("&"); -152 } else { -153 append("?"); -154 firstParamDone = true; -155 } -156 } -157 -158 } +35 /** When POSTing, we can add attachments */ +36 private final Map<String, InputStream> attachments; +37 +38 /** Marker for using the right separator between parameters ("?" or "&") */ +39 private boolean firstParamDone = false; +40 +41 /** +42 * Build a new instance, for the given "path" (the "path" is the part before the parameters. The path and the +43 * parameters are separated by a "?") +44 * +45 * @param paths elements of the path +46 */ +47 public ApiPathBuilder(String... paths) { +48 apiPath = new StringBuilder(); +49 attachments = new HashMap<String, InputStream>(); +50 if (paths != null) { +51 for (String path : paths) { +52 if (StringUtils.isNotBlank(path)) { +53 append(path); +54 } +55 } +56 } +57 } +58 +59 /** +60 * Append the given parameter (key and value). This will only append the parameter if it is not blank (null, empty +61 * or whitespace), and make sure to add the right separator ("?" or "&") before. The key and value will be separated +62 * by the "=" character. Also, the value will be url-encoded. +63 * +64 * @param key of the parameter. Must not be null or empty +65 * @param value of the parameter. May be null/empty/blank. Will be url-encoded. +66 * @return this, for method chaining +67 */ +68 public ApiPathBuilder param(String key, String value) { +69 if (StringUtils.isNotBlank(value)) { +70 appendSeparator(); +71 append(key); +72 append("="); +73 append(ParametersUtil.urlEncode(value)); +74 } +75 return this; +76 } +77 +78 /** +79 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure +80 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. Also, +81 * the value will be converted to lower-case. +82 * +83 * @param key of the parameter. Must not be null or empty +84 * @param value of the parameter. May be null +85 * @return this, for method chaining +86 */ +87 public ApiPathBuilder param(String key, Enum<?> value) { +88 if (value != null) { +89 param(key, StringUtils.lowerCase(value.toString())); +90 } +91 return this; +92 } +93 +94 /** +95 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure +96 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. +97 * +98 * @param key of the parameter. Must not be null or empty +99 * @param value of the parameter. May be null +100 * @return this, for method chaining +101 */ +102 public ApiPathBuilder param(String key, Long value) { +103 if (value != null) { +104 param(key, value.toString()); +105 } +106 return this; +107 } +108 +109 /** +110 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure +111 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. +112 * +113 * @param key of the parameter. Must not be null or empty +114 * @param value of the parameter. May be null +115 * @return this, for method chaining +116 */ +117 public ApiPathBuilder param(String key, Integer value) { +118 if (value != null) { +119 param(key, value.toString()); +120 } +121 return this; +122 } +123 +124 /** +125 * Append the given parameter (key and value). This will only append the parameter if it is not null, and make sure +126 * to add the right separator ("?" or "&") before. The key and value will be separated by the "=" character. +127 * +128 * @param key of the parameter. Must not be null or empty +129 * @param value of the parameter. May be null +130 * @return this, for method chaining +131 */ +132 public ApiPathBuilder param(String key, Boolean value) { +133 if (value != null) { +134 param(key, value.toString()); +135 } +136 return this; +137 } +138 +139 /** +140 * Append the given node filters, only if it is not null/empty +141 * +142 * @param nodeFilters may be null/empty +143 * @return this, for method chaining +144 * @see ParametersUtil#generateNodeFiltersString(Properties) +145 */ +146 public ApiPathBuilder nodeFilters(Properties nodeFilters) { +147 String filters = ParametersUtil.generateNodeFiltersString(nodeFilters); +148 if (StringUtils.isNotBlank(filters)) { +149 appendSeparator(); +150 append(filters); +151 } +152 return this; +153 } +154 +155 /** +156 * When POSTing a request, add the given {@link InputStream} as an attachment to the content of the request. This +157 * will only add the stream if it is not null. +158 * +159 * @param name of the attachment. Must not be null or empty +160 * @param stream. May be null +161 * @return this, for method chaining +162 */ +163 public ApiPathBuilder attach(String name, InputStream stream) { +164 if (stream != null) { +165 attachments.put(name, stream); +166 } +167 return this; +168 } +169 +170 /** +171 * @return all attachments to be POSTed, with their names +172 */ +173 public Map<String, InputStream> getAttachments() { +174 return attachments; +175 } +176 +177 @Override +178 public String toString() { +179 return apiPath.toString(); +180 } +181 +182 /** +183 * Append the given string +184 * +185 * @param str to append +186 */ +187 private void append(String str) { +188 apiPath.append(str); +189 } +190 +191 /** +192 * Append the right separator "?" or "&" between 2 parameters +193 */ +194 private void appendSeparator() { +195 if (firstParamDone) { +196 append("&"); +197 } else { +198 append("?"); +199 firstParamDone = true; +200 } +201 } +202 +203 }
    diff --git a/xref/org/rundeck/api/FileType.html b/xref/org/rundeck/api/FileType.html new file mode 100644 index 0000000..e98760c --- /dev/null +++ b/xref/org/rundeck/api/FileType.html @@ -0,0 +1,39 @@ + + + + +FileType xref + + + +
    +
    +1   /*
    +2    * Copyright 2011 Vincent Behar
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.rundeck.api;
    +17  
    +18  /**
    +19   * All supported types of files.
    +20   * 
    +21   * @author Vincent Behar
    +22   */
    +23  public enum FileType {
    +24      XML, YAML;
    +25  }
    +
    +
    + + diff --git a/xref/org/rundeck/api/RundeckClient.html b/xref/org/rundeck/api/RundeckClient.html index a0cddb4..a0369a3 100644 --- a/xref/org/rundeck/api/RundeckClient.html +++ b/xref/org/rundeck/api/RundeckClient.html @@ -26,1021 +26,1383 @@ 16 package org.rundeck.api; 17 18 import java.io.File; -19 import java.io.IOException; -20 import java.io.InputStream; -21 import java.io.Serializable; -22 import java.util.ArrayList; -23 import java.util.List; -24 import java.util.Properties; -25 import java.util.concurrent.TimeUnit; -26 import org.apache.commons.io.FileUtils; -27 import org.apache.commons.io.IOUtils; -28 import org.apache.commons.lang.StringUtils; -29 import org.rundeck.api.RundeckApiException.RundeckApiLoginException; -30 import org.rundeck.api.domain.RundeckAbort; -31 import org.rundeck.api.domain.RundeckExecution; -32 import org.rundeck.api.domain.RundeckJob; -33 import org.rundeck.api.domain.RundeckNode; -34 import org.rundeck.api.domain.RundeckProject; -35 import org.rundeck.api.domain.RundeckSystemInfo; -36 import org.rundeck.api.domain.RundeckExecution.ExecutionStatus; -37 import org.rundeck.api.parser.AbortParser; -38 import org.rundeck.api.parser.ExecutionParser; -39 import org.rundeck.api.parser.JobParser; -40 import org.rundeck.api.parser.ListParser; -41 import org.rundeck.api.parser.NodeParser; -42 import org.rundeck.api.parser.ProjectParser; -43 import org.rundeck.api.parser.StringParser; -44 import org.rundeck.api.parser.SystemInfoParser; -45 import org.rundeck.api.util.AssertUtil; -46 import org.rundeck.api.util.ParametersUtil; -47 -48 /** -49 * Main entry point to talk to a RunDeck instance.<br> -50 * Usage : <br> -51 * <code> -52 * <pre> -53 * RundeckClient rundeck = new RundeckClient("http://localhost:4440", "admin", "admin"); -54 * List&lt;RundeckJob&gt; jobs = rundeck.getJobs(); -55 * -56 * RundeckJob job = rundeck.findJob("my-project", "main-group/sub-group", "job-name"); -57 * RundeckExecution execution = rundeck.triggerJob(job.getId(), -58 * new OptionsBuilder().addOption("version", "1.2.0").toProperties()); -59 * -60 * List&lt;RundeckExecution&gt; runningExecutions = rundeck.getRunningExecutions("my-project"); -61 * </pre> -62 * </code> -63 * -64 * @author Vincent Behar -65 */ -66 public class RundeckClient implements Serializable { -67 -68 private static final long serialVersionUID = 1L; -69 -70 public static final transient int API_VERSION = 1; -71 -72 public static final transient String API_ENDPOINT = "/api/" + API_VERSION; -73 -74 private final String url; +19 import java.io.FileInputStream; +20 import java.io.IOException; +21 import java.io.InputStream; +22 import java.io.Serializable; +23 import java.util.ArrayList; +24 import java.util.List; +25 import java.util.Properties; +26 import java.util.concurrent.TimeUnit; +27 import org.apache.commons.io.FileUtils; +28 import org.apache.commons.io.IOUtils; +29 import org.apache.commons.lang.StringUtils; +30 import org.rundeck.api.RundeckApiException.RundeckApiLoginException; +31 import org.rundeck.api.domain.RundeckAbort; +32 import org.rundeck.api.domain.RundeckExecution; +33 import org.rundeck.api.domain.RundeckJob; +34 import org.rundeck.api.domain.RundeckJobsImportMethod; +35 import org.rundeck.api.domain.RundeckJobsImportResult; +36 import org.rundeck.api.domain.RundeckNode; +37 import org.rundeck.api.domain.RundeckProject; +38 import org.rundeck.api.domain.RundeckSystemInfo; +39 import org.rundeck.api.domain.RundeckExecution.ExecutionStatus; +40 import org.rundeck.api.parser.AbortParser; +41 import org.rundeck.api.parser.ExecutionParser; +42 import org.rundeck.api.parser.JobParser; +43 import org.rundeck.api.parser.JobsImportResultParser; +44 import org.rundeck.api.parser.ListParser; +45 import org.rundeck.api.parser.NodeParser; +46 import org.rundeck.api.parser.ProjectParser; +47 import org.rundeck.api.parser.StringParser; +48 import org.rundeck.api.parser.SystemInfoParser; +49 import org.rundeck.api.util.AssertUtil; +50 import org.rundeck.api.util.ParametersUtil; +51 +52 /** +53 * Main entry point to talk to a RunDeck instance.<br> +54 * Usage : <br> +55 * <code> +56 * <pre> +57 * RundeckClient rundeck = new RundeckClient("http://localhost:4440", "admin", "admin"); +58 * +59 * List&lt;RundeckProject&gt; projects = rundeck.getProjects(); +60 * +61 * RundeckJob job = rundeck.findJob("my-project", "main-group/sub-group", "job-name"); +62 * RundeckExecution execution = rundeck.triggerJob(job.getId(), +63 * new OptionsBuilder().addOption("version", "1.2.0").toProperties()); +64 * +65 * List&lt;RundeckExecution&gt; runningExecutions = rundeck.getRunningExecutions("my-project"); +66 * +67 * rundeck.exportJobsToFile("/tmp/jobs.xml", FileType.XML, "my-project"); +68 * rundeck.importJobs("/tmp/jobs.xml", FileType.XML); +69 * </pre> +70 * </code> +71 * +72 * @author Vincent Behar +73 */ +74 public class RundeckClient implements Serializable { 75 -76 private final String login; +76 private static final long serialVersionUID = 1L; 77 -78 private final String password; +78 public static final transient int API_VERSION = 1; 79 -80 /** -81 * Instantiate a new {@link RundeckClient} for the RunDeck instance at the given url -82 * -83 * @param url of the RunDeck instance ("http://localhost:4440", "http://rundeck.your-compagny.com/", etc) -84 * @param login -85 * @param password -86 * @throws IllegalArgumentException if the url, login or password is blank (null, empty or whitespace) -87 */ -88 public RundeckClient(String url, String login, String password) throws IllegalArgumentException { -89 super(); -90 this.url = url; -91 this.login = login; -92 this.password = password; -93 AssertUtil.notBlank(url, "The RunDeck URL is mandatory !"); -94 AssertUtil.notBlank(login, "The RunDeck login is mandatory !"); -95 AssertUtil.notBlank(password, "The RunDeck password is mandatory !"); -96 } -97 -98 /** -99 * Try to "ping" the RunDeck instance to see if it is alive -100 * -101 * @throws RundeckApiException if the ping fails -102 */ -103 public void ping() throws RundeckApiException { -104 new ApiCall(this).ping(); -105 } -106 -107 /** -108 * Test your credentials (login/password) on the RunDeck instance -109 * -110 * @throws RundeckApiLoginException if the login fails -111 */ -112 public void testCredentials() throws RundeckApiLoginException { -113 new ApiCall(this).testCredentials(); -114 } -115 -116 /* -117 * Projects -118 */ -119 -120 /** -121 * List all projects -122 * -123 * @return a {@link List} of {@link RundeckProject} : might be empty, but won't be null -124 * @throws RundeckApiException in case of error when calling the API -125 * @throws RundeckApiLoginException if the login failed -126 */ -127 public List<RundeckProject> getProjects() throws RundeckApiException, RundeckApiLoginException { -128 return new ApiCall(this).get(new ApiPathBuilder("/projects"), -129 new ListParser<RundeckProject>(new ProjectParser(), "result/projects/project")); -130 } -131 -132 /** -133 * Get the definition of a single project, identified by the given name -134 * -135 * @param projectName name of the project - mandatory -136 * @return a {@link RundeckProject} instance - won't be null -137 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -138 * @throws RundeckApiLoginException if the login failed -139 * @throws IllegalArgumentException if the projectName is blank (null, empty or whitespace) -140 */ -141 public RundeckProject getProject(String projectName) throws RundeckApiException, RundeckApiLoginException, -142 IllegalArgumentException { -143 AssertUtil.notBlank(projectName, "projectName is mandatory to get the details of a project !"); -144 return new ApiCall(this).get(new ApiPathBuilder("/project/", projectName), -145 new ProjectParser("result/projects/project")); -146 } -147 -148 /* -149 * Jobs -150 */ -151 -152 /** -153 * List all jobs (for all projects) -154 * -155 * @return a {@link List} of {@link RundeckJob} : might be empty, but won't be null -156 * @throws RundeckApiException in case of error when calling the API -157 * @throws RundeckApiLoginException if the login failed -158 */ -159 public List<RundeckJob> getJobs() throws RundeckApiException, RundeckApiLoginException { -160 List<RundeckJob> jobs = new ArrayList<RundeckJob>(); -161 for (RundeckProject project : getProjects()) { -162 jobs.addAll(getJobs(project.getName())); -163 } -164 return jobs; -165 } -166 -167 /** -168 * List all jobs that belongs to the given project -169 * -170 * @param project name of the project - mandatory -171 * @return a {@link List} of {@link RundeckJob} : might be empty, but won't be null -172 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -173 * @throws RundeckApiLoginException if the login failed -174 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -175 * @see #getJobs(String, String, String, String...) -176 */ -177 public List<RundeckJob> getJobs(String project) throws RundeckApiException, RundeckApiLoginException, -178 IllegalArgumentException { -179 return getJobs(project, null, null, new String[0]); -180 } -181 -182 /** -183 * List the jobs that belongs to the given project, and matches the given criteria (jobFilter, groupPath and jobIds) -184 * -185 * @param project name of the project - mandatory -186 * @param jobFilter a filter for the job Name - optional -187 * @param groupPath a group or partial group path to include all jobs within that group path - optional -188 * @param jobIds a list of Job IDs to include - optional -189 * @return a {@link List} of {@link RundeckJob} : might be empty, but won't be null -190 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -191 * @throws RundeckApiLoginException if the login failed -192 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -193 * @see #getJobs(String) -194 */ -195 public List<RundeckJob> getJobs(String project, String jobFilter, String groupPath, String... jobIds) -196 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -197 AssertUtil.notBlank(project, "project is mandatory to get all jobs !"); -198 return new ApiCall(this).get(new ApiPathBuilder("/jobs").param("project", project) -199 .param("jobFilter", jobFilter) -200 .param("groupPath", groupPath) -201 .param("idlist", StringUtils.join(jobIds, ",")), -202 new ListParser<RundeckJob>(new JobParser(), "result/jobs/job")); -203 } -204 -205 /** -206 * Export the definitions of all jobs that belongs to the given project, as an XML file -207 * -208 * @param filename path of the file where the content should be saved -209 * @param project name of the project - mandatory -210 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -211 * @throws RundeckApiLoginException if the login failed -212 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -213 * @throws IOException if we failed to write to the file -214 * @see #exportJobsToFile(String, String, String, String, String...) -215 * @see #exportJobs(String) -216 */ -217 public void exportJobsToFile(String filename, String project) throws RundeckApiException, RundeckApiLoginException, -218 IllegalArgumentException, IOException { -219 exportJobsToFile(filename, project, null, null, new String[0]); -220 } -221 -222 /** -223 * Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, -224 * groupPath and jobIds), as an XML file -225 * -226 * @param filename path of the file where the content should be saved -227 * @param project name of the project - mandatory -228 * @param jobFilter a filter for the job Name - optional -229 * @param groupPath a group or partial group path to include all jobs within that group path - optional -230 * @param jobIds a list of Job IDs to include - optional -231 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -232 * @throws RundeckApiLoginException if the login failed -233 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -234 * @throws IOException if we failed to write to the file -235 * @see #exportJobsToFile(String, String) -236 * @see #exportJobs(String, String, String, String...) -237 */ -238 public void exportJobsToFile(String filename, String project, String jobFilter, String groupPath, String... jobIds) -239 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException, IOException { -240 InputStream inputStream = exportJobs(project, jobFilter, groupPath, jobIds); -241 FileUtils.writeByteArrayToFile(new File(filename), IOUtils.toByteArray(inputStream)); -242 } -243 -244 /** -245 * Export the definitions of all jobs that belongs to the given project -246 * -247 * @param project name of the project - mandatory -248 * @return an {@link InputStream} instance, not linked to any network resources - won't be null -249 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -250 * @throws RundeckApiLoginException if the login failed -251 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -252 * @see #exportJobs(String, String, String, String...) -253 * @see #exportJobsToFile(String, String) -254 */ -255 public InputStream exportJobs(String project) throws RundeckApiException, RundeckApiLoginException, -256 IllegalArgumentException { -257 return exportJobs(project, null, null, new String[0]); -258 } -259 -260 /** -261 * Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, -262 * groupPath and jobIds) -263 * -264 * @param project name of the project - mandatory -265 * @param jobFilter a filter for the job Name - optional -266 * @param groupPath a group or partial group path to include all jobs within that group path - optional -267 * @param jobIds a list of Job IDs to include - optional -268 * @return an {@link InputStream} instance, not linked to any network resources - won't be null -269 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -270 * @throws RundeckApiLoginException if the login failed -271 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -272 * @see #exportJobs(String) -273 * @see #exportJobsToFile(String, String, String, String, String...) -274 */ -275 public InputStream exportJobs(String project, String jobFilter, String groupPath, String... jobIds) -276 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -277 AssertUtil.notBlank(project, "project is mandatory to export all jobs !"); -278 return new ApiCall(this).get(new ApiPathBuilder("/jobs/export").param("project", project) -279 .param("jobFilter", jobFilter) -280 .param("groupPath", groupPath) -281 .param("idlist", StringUtils.join(jobIds, ","))); -282 } -283 -284 /** -285 * Export the definition of a single job (identified by the given ID), as an XML file -286 * -287 * @param filename path of the file where the content should be saved -288 * @param jobId identifier of the job - mandatory -289 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -290 * @throws RundeckApiLoginException if the login failed -291 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -292 * @throws IOException if we failed to write to the file -293 * @see #exportJob(String) -294 * @see #getJob(String) -295 */ -296 public void exportJobToFile(String filename, String jobId) throws RundeckApiException, RundeckApiLoginException, -297 IllegalArgumentException, IOException { -298 InputStream inputStream = exportJob(jobId); -299 FileUtils.writeByteArrayToFile(new File(filename), IOUtils.toByteArray(inputStream)); -300 } -301 -302 /** -303 * Export the definition of a single job, identified by the given ID -304 * -305 * @param jobId identifier of the job - mandatory -306 * @return an {@link InputStream} instance, not linked to any network resources - won't be null -307 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -308 * @throws RundeckApiLoginException if the login failed -309 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -310 * @see #exportJobToFile(String, String) -311 * @see #getJob(String) -312 */ -313 public InputStream exportJob(String jobId) throws RundeckApiException, RundeckApiLoginException, -314 IllegalArgumentException { -315 AssertUtil.notBlank(jobId, "jobId is mandatory to get the details of a job !"); -316 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId)); -317 } -318 -319 /** -320 * Find a job, identified by its project, group and name. Note that the groupPath is optional, as a job does not -321 * need to belong to a group (either pass null, or an empty string). -322 * -323 * @param project name of the project - mandatory -324 * @param groupPath group to which the job belongs (if it belongs to a group) - optional -325 * @param name of the job to find - mandatory -326 * @return a {@link RundeckJob} instance - null if not found -327 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -328 * @throws RundeckApiLoginException if the login failed -329 * @throws IllegalArgumentException if the project or the name is blank (null, empty or whitespace) -330 * @see #getJob(String) -331 */ -332 public RundeckJob findJob(String project, String groupPath, String name) throws RundeckApiException, -333 RundeckApiLoginException, IllegalArgumentException { -334 AssertUtil.notBlank(project, "project is mandatory to find a job !"); -335 AssertUtil.notBlank(name, "job name is mandatory to find a job !"); -336 List<RundeckJob> jobs = getJobs(project, name, groupPath, new String[0]); -337 return jobs.isEmpty() ? null : jobs.get(0); -338 } -339 -340 /** -341 * Get the definition of a single job, identified by the given ID -342 * -343 * @param jobId identifier of the job - mandatory -344 * @return a {@link RundeckJob} instance - won't be null -345 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -346 * @throws RundeckApiLoginException if the login failed -347 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -348 * @see #findJob(String, String, String) -349 * @see #exportJob(String) -350 */ -351 public RundeckJob getJob(String jobId) throws RundeckApiException, RundeckApiLoginException, -352 IllegalArgumentException { -353 AssertUtil.notBlank(jobId, "jobId is mandatory to get the details of a job !"); -354 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId), new JobParser("joblist/job")); -355 } -356 -357 /** -358 * Delete a single job, identified by the given ID -359 * -360 * @param jobId identifier of the job - mandatory -361 * @return the success message (note that in case of error, you'll get an exception) -362 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -363 * @throws RundeckApiLoginException if the login failed -364 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -365 */ -366 public String deleteJob(String jobId) throws RundeckApiException, RundeckApiLoginException, -367 IllegalArgumentException { -368 AssertUtil.notBlank(jobId, "jobId is mandatory to delete a job !"); -369 return new ApiCall(this).delete(new ApiPathBuilder("/job/", jobId), new StringParser("result/success/message")); -370 } -371 -372 /** -373 * Trigger the execution of a RunDeck job (identified by the given ID), and return immediately (without waiting the -374 * end of the job execution) -375 * -376 * @param jobId identifier of the job - mandatory -377 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null -378 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -379 * @throws RundeckApiLoginException if the login failed -380 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -381 * @see #triggerJob(String, Properties, Properties) -382 * @see #runJob(String) -383 */ -384 public RundeckExecution triggerJob(String jobId) throws RundeckApiException, RundeckApiLoginException, -385 IllegalArgumentException { -386 return triggerJob(jobId, null); -387 } -388 -389 /** -390 * Trigger the execution of a RunDeck job (identified by the given ID), and return immediately (without waiting the -391 * end of the job execution) -392 * -393 * @param jobId identifier of the job - mandatory -394 * @param options of the job - optional. See {@link OptionsBuilder}. -395 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null -396 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -397 * @throws RundeckApiLoginException if the login failed -398 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -399 * @see #triggerJob(String, Properties, Properties) -400 * @see #runJob(String, Properties) -401 */ -402 public RundeckExecution triggerJob(String jobId, Properties options) throws RundeckApiException, -403 RundeckApiLoginException, IllegalArgumentException { -404 return triggerJob(jobId, options, null); -405 } -406 -407 /** -408 * Trigger the execution of a RunDeck job (identified by the given ID), and return immediately (without waiting the -409 * end of the job execution) -410 * -411 * @param jobId identifier of the job - mandatory -412 * @param options of the job - optional. See {@link OptionsBuilder}. -413 * @param nodeFilters for overriding the nodes on which the job will be executed - optional. See -414 * {@link NodeFiltersBuilder} -415 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null -416 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -417 * @throws RundeckApiLoginException if the login failed -418 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -419 * @see #triggerJob(String) -420 * @see #runJob(String, Properties, Properties) -421 */ -422 public RundeckExecution triggerJob(String jobId, Properties options, Properties nodeFilters) -423 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -424 AssertUtil.notBlank(jobId, "jobId is mandatory to trigger a job !"); -425 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId, "/run").param("argString", -426 ParametersUtil.generateArgString(options)) -427 .nodeFilters(nodeFilters), -428 new ExecutionParser("result/executions/execution")); -429 } -430 -431 /** -432 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. -433 * We will poll the RunDeck server at regular interval (every 5 seconds) to know if the execution is finished (or -434 * aborted) or is still running. +80 public static final transient String API_ENDPOINT = "/api/" + API_VERSION; +81 +82 private final String url; +83 +84 private final String login; +85 +86 private final String password; +87 +88 /** +89 * Instantiate a new {@link RundeckClient} for the RunDeck instance at the given url +90 * +91 * @param url of the RunDeck instance ("http://localhost:4440", "http://rundeck.your-compagny.com/", etc) +92 * @param login +93 * @param password +94 * @throws IllegalArgumentException if the url, login or password is blank (null, empty or whitespace) +95 */ +96 public RundeckClient(String url, String login, String password) throws IllegalArgumentException { +97 super(); +98 this.url = url; +99 this.login = login; +100 this.password = password; +101 AssertUtil.notBlank(url, "The RunDeck URL is mandatory !"); +102 AssertUtil.notBlank(login, "The RunDeck login is mandatory !"); +103 AssertUtil.notBlank(password, "The RunDeck password is mandatory !"); +104 } +105 +106 /** +107 * Try to "ping" the RunDeck instance to see if it is alive +108 * +109 * @throws RundeckApiException if the ping fails +110 */ +111 public void ping() throws RundeckApiException { +112 new ApiCall(this).ping(); +113 } +114 +115 /** +116 * Test your credentials (login/password) on the RunDeck instance +117 * +118 * @throws RundeckApiLoginException if the login fails +119 */ +120 public void testCredentials() throws RundeckApiLoginException { +121 new ApiCall(this).testCredentials(); +122 } +123 +124 /* +125 * Projects +126 */ +127 +128 /** +129 * List all projects +130 * +131 * @return a {@link List} of {@link RundeckProject} : might be empty, but won't be null +132 * @throws RundeckApiException in case of error when calling the API +133 * @throws RundeckApiLoginException if the login failed +134 */ +135 public List<RundeckProject> getProjects() throws RundeckApiException, RundeckApiLoginException { +136 return new ApiCall(this).get(new ApiPathBuilder("/projects"), +137 new ListParser<RundeckProject>(new ProjectParser(), "result/projects/project")); +138 } +139 +140 /** +141 * Get the definition of a single project, identified by the given name +142 * +143 * @param projectName name of the project - mandatory +144 * @return a {@link RundeckProject} instance - won't be null +145 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +146 * @throws RundeckApiLoginException if the login failed +147 * @throws IllegalArgumentException if the projectName is blank (null, empty or whitespace) +148 */ +149 public RundeckProject getProject(String projectName) throws RundeckApiException, RundeckApiLoginException, +150 IllegalArgumentException { +151 AssertUtil.notBlank(projectName, "projectName is mandatory to get the details of a project !"); +152 return new ApiCall(this).get(new ApiPathBuilder("/project/", projectName), +153 new ProjectParser("result/projects/project")); +154 } +155 +156 /* +157 * Jobs +158 */ +159 +160 /** +161 * List all jobs (for all projects) +162 * +163 * @return a {@link List} of {@link RundeckJob} : might be empty, but won't be null +164 * @throws RundeckApiException in case of error when calling the API +165 * @throws RundeckApiLoginException if the login failed +166 */ +167 public List<RundeckJob> getJobs() throws RundeckApiException, RundeckApiLoginException { +168 List<RundeckJob> jobs = new ArrayList<RundeckJob>(); +169 for (RundeckProject project : getProjects()) { +170 jobs.addAll(getJobs(project.getName())); +171 } +172 return jobs; +173 } +174 +175 /** +176 * List all jobs that belongs to the given project +177 * +178 * @param project name of the project - mandatory +179 * @return a {@link List} of {@link RundeckJob} : might be empty, but won't be null +180 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +181 * @throws RundeckApiLoginException if the login failed +182 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) +183 * @see #getJobs(String, String, String, String...) +184 */ +185 public List<RundeckJob> getJobs(String project) throws RundeckApiException, RundeckApiLoginException, +186 IllegalArgumentException { +187 return getJobs(project, null, null, new String[0]); +188 } +189 +190 /** +191 * List the jobs that belongs to the given project, and matches the given criteria (jobFilter, groupPath and jobIds) +192 * +193 * @param project name of the project - mandatory +194 * @param jobFilter a filter for the job Name - optional +195 * @param groupPath a group or partial group path to include all jobs within that group path - optional +196 * @param jobIds a list of Job IDs to include - optional +197 * @return a {@link List} of {@link RundeckJob} : might be empty, but won't be null +198 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +199 * @throws RundeckApiLoginException if the login failed +200 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) +201 * @see #getJobs(String) +202 */ +203 public List<RundeckJob> getJobs(String project, String jobFilter, String groupPath, String... jobIds) +204 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +205 AssertUtil.notBlank(project, "project is mandatory to get all jobs !"); +206 return new ApiCall(this).get(new ApiPathBuilder("/jobs").param("project", project) +207 .param("jobFilter", jobFilter) +208 .param("groupPath", groupPath) +209 .param("idlist", StringUtils.join(jobIds, ",")), +210 new ListParser<RundeckJob>(new JobParser(), "result/jobs/job")); +211 } +212 +213 /** +214 * Export the definitions of all jobs that belongs to the given project +215 * +216 * @param filename path of the file where the content should be saved - mandatory +217 * @param format of the export. See {@link FileType} - mandatory +218 * @param project name of the project - mandatory +219 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +220 * @throws RundeckApiLoginException if the login failed +221 * @throws IllegalArgumentException if the format or project is blank (null, empty or whitespace), or the format is +222 * invalid +223 * @throws IOException if we failed to write to the file +224 * @see #exportJobsToFile(String, FileType, String, String, String, String...) +225 * @see #exportJobs(String, String) +226 */ +227 public void exportJobsToFile(String filename, String format, String project) throws RundeckApiException, +228 RundeckApiLoginException, IllegalArgumentException, IOException { +229 AssertUtil.notBlank(format, "format is mandatory to export jobs !"); +230 exportJobsToFile(filename, FileType.valueOf(StringUtils.upperCase(format)), project); +231 } +232 +233 /** +234 * Export the definitions of all jobs that belongs to the given project +235 * +236 * @param filename path of the file where the content should be saved - mandatory +237 * @param format of the export. See {@link FileType} - mandatory +238 * @param project name of the project - mandatory +239 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +240 * @throws RundeckApiLoginException if the login failed +241 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) or the format is null +242 * @throws IOException if we failed to write to the file +243 * @see #exportJobsToFile(String, FileType, String, String, String, String...) +244 * @see #exportJobs(FileType, String) +245 */ +246 public void exportJobsToFile(String filename, FileType format, String project) throws RundeckApiException, +247 RundeckApiLoginException, IllegalArgumentException, IOException { +248 exportJobsToFile(filename, format, project, null, null, new String[0]); +249 } +250 +251 /** +252 * Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, +253 * groupPath and jobIds) +254 * +255 * @param filename path of the file where the content should be saved - mandatory +256 * @param format of the export. See {@link FileType} - mandatory +257 * @param project name of the project - mandatory +258 * @param jobFilter a filter for the job Name - optional +259 * @param groupPath a group or partial group path to include all jobs within that group path - optional +260 * @param jobIds a list of Job IDs to include - optional +261 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +262 * @throws RundeckApiLoginException if the login failed +263 * @throws IllegalArgumentException if the filename, format or project is blank (null, empty or whitespace), or the +264 * format is invalid +265 * @throws IOException if we failed to write to the file +266 * @see #exportJobsToFile(String, FileType, String, String, String, String...) +267 * @see #exportJobs(FileType, String, String, String, String...) +268 */ +269 public void exportJobsToFile(String filename, String format, String project, String jobFilter, String groupPath, +270 String... jobIds) throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException, +271 IOException { +272 AssertUtil.notBlank(format, "format is mandatory to export jobs !"); +273 exportJobsToFile(filename, +274 FileType.valueOf(StringUtils.upperCase(format)), +275 project, +276 jobFilter, +277 groupPath, +278 jobIds); +279 } +280 +281 /** +282 * Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, +283 * groupPath and jobIds) +284 * +285 * @param filename path of the file where the content should be saved - mandatory +286 * @param format of the export. See {@link FileType} - mandatory +287 * @param project name of the project - mandatory +288 * @param jobFilter a filter for the job Name - optional +289 * @param groupPath a group or partial group path to include all jobs within that group path - optional +290 * @param jobIds a list of Job IDs to include - optional +291 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +292 * @throws RundeckApiLoginException if the login failed +293 * @throws IllegalArgumentException if the filename or project is blank (null, empty or whitespace), or the format +294 * is null +295 * @throws IOException if we failed to write to the file +296 * @see #exportJobs(FileType, String, String, String, String...) +297 */ +298 public void exportJobsToFile(String filename, FileType format, String project, String jobFilter, String groupPath, +299 String... jobIds) throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException, +300 IOException { +301 AssertUtil.notBlank(filename, "filename is mandatory to export a job !"); +302 InputStream inputStream = exportJobs(format, project, jobFilter, groupPath, jobIds); +303 FileUtils.writeByteArrayToFile(new File(filename), IOUtils.toByteArray(inputStream)); +304 } +305 +306 /** +307 * Export the definitions of all jobs that belongs to the given project +308 * +309 * @param format of the export. See {@link FileType} - mandatory +310 * @param project name of the project - mandatory +311 * @return an {@link InputStream} instance, not linked to any network resources - won't be null +312 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +313 * @throws RundeckApiLoginException if the login failed +314 * @throws IllegalArgumentException if the format or project is blank (null, empty or whitespace), or the format is +315 * invalid +316 * @see #exportJobs(FileType, String, String, String, String...) +317 * @see #exportJobsToFile(String, String, String) +318 */ +319 public InputStream exportJobs(String format, String project) throws RundeckApiException, RundeckApiLoginException, +320 IllegalArgumentException { +321 AssertUtil.notBlank(format, "format is mandatory to export jobs !"); +322 return exportJobs(FileType.valueOf(StringUtils.upperCase(format)), project); +323 } +324 +325 /** +326 * Export the definitions of all jobs that belongs to the given project +327 * +328 * @param format of the export. See {@link FileType} - mandatory +329 * @param project name of the project - mandatory +330 * @return an {@link InputStream} instance, not linked to any network resources - won't be null +331 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +332 * @throws RundeckApiLoginException if the login failed +333 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) or the format is null +334 * @see #exportJobs(FileType, String, String, String, String...) +335 * @see #exportJobsToFile(String, FileType, String) +336 */ +337 public InputStream exportJobs(FileType format, String project) throws RundeckApiException, +338 RundeckApiLoginException, IllegalArgumentException { +339 return exportJobs(format, project, null, null, new String[0]); +340 } +341 +342 /** +343 * Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, +344 * groupPath and jobIds) +345 * +346 * @param format of the export. See {@link FileType} - mandatory +347 * @param project name of the project - mandatory +348 * @param jobFilter a filter for the job Name - optional +349 * @param groupPath a group or partial group path to include all jobs within that group path - optional +350 * @param jobIds a list of Job IDs to include - optional +351 * @return an {@link InputStream} instance, not linked to any network resources - won't be null +352 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +353 * @throws RundeckApiLoginException if the login failed +354 * @throws IllegalArgumentException if the format or project is blank (null, empty or whitespace), or the format is +355 * invalid +356 * @see #exportJobs(FileType, String, String, String, String...) +357 * @see #exportJobsToFile(String, String, String, String, String, String...) +358 */ +359 public InputStream exportJobs(String format, String project, String jobFilter, String groupPath, String... jobIds) +360 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +361 AssertUtil.notBlank(format, "format is mandatory to export jobs !"); +362 return exportJobs(FileType.valueOf(StringUtils.upperCase(format)), project, jobFilter, groupPath, jobIds); +363 } +364 +365 /** +366 * Export the definitions of the jobs that belongs to the given project, and matches the given criteria (jobFilter, +367 * groupPath and jobIds) +368 * +369 * @param format of the export. See {@link FileType} - mandatory +370 * @param project name of the project - mandatory +371 * @param jobFilter a filter for the job Name - optional +372 * @param groupPath a group or partial group path to include all jobs within that group path - optional +373 * @param jobIds a list of Job IDs to include - optional +374 * @return an {@link InputStream} instance, not linked to any network resources - won't be null +375 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +376 * @throws RundeckApiLoginException if the login failed +377 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) or the format is null +378 * @see #exportJobsToFile(String, FileType, String, String, String, String...) +379 */ +380 public InputStream exportJobs(FileType format, String project, String jobFilter, String groupPath, String... jobIds) +381 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +382 AssertUtil.notNull(format, "format is mandatory to export jobs !"); +383 AssertUtil.notBlank(project, "project is mandatory to export jobs !"); +384 return new ApiCall(this).get(new ApiPathBuilder("/jobs/export").param("format", format) +385 .param("project", project) +386 .param("jobFilter", jobFilter) +387 .param("groupPath", groupPath) +388 .param("idlist", StringUtils.join(jobIds, ","))); +389 } +390 +391 /** +392 * Export the definition of a single job (identified by the given ID) +393 * +394 * @param filename path of the file where the content should be saved - mandatory +395 * @param format of the export. See {@link FileType} - mandatory +396 * @param jobId identifier of the job - mandatory +397 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +398 * @throws RundeckApiLoginException if the login failed +399 * @throws IllegalArgumentException if the filename, format or jobId is blank (null, empty or whitespace), or the +400 * format is invalid +401 * @throws IOException if we failed to write to the file +402 * @see #exportJobToFile(String, FileType, String) +403 * @see #exportJob(String, String) +404 * @see #getJob(String) +405 */ +406 public void exportJobToFile(String filename, String format, String jobId) throws RundeckApiException, +407 RundeckApiLoginException, IllegalArgumentException, IOException { +408 AssertUtil.notBlank(format, "format is mandatory to export a job !"); +409 exportJobToFile(filename, FileType.valueOf(StringUtils.upperCase(format)), jobId); +410 } +411 +412 /** +413 * Export the definition of a single job (identified by the given ID) +414 * +415 * @param filename path of the file where the content should be saved - mandatory +416 * @param format of the export. See {@link FileType} - mandatory +417 * @param jobId identifier of the job - mandatory +418 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +419 * @throws RundeckApiLoginException if the login failed +420 * @throws IllegalArgumentException if the filename or jobId is blank (null, empty or whitespace), or the format is +421 * null +422 * @throws IOException if we failed to write to the file +423 * @see #exportJob(FileType, String) +424 * @see #getJob(String) +425 */ +426 public void exportJobToFile(String filename, FileType format, String jobId) throws RundeckApiException, +427 RundeckApiLoginException, IllegalArgumentException, IOException { +428 AssertUtil.notBlank(filename, "filename is mandatory to export a job !"); +429 InputStream inputStream = exportJob(format, jobId); +430 FileUtils.writeByteArrayToFile(new File(filename), IOUtils.toByteArray(inputStream)); +431 } +432 +433 /** +434 * Export the definition of a single job, identified by the given ID 435 * -436 * @param jobId identifier of the job - mandatory -437 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -438 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -439 * @throws RundeckApiLoginException if the login failed -440 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -441 * @see #triggerJob(String) -442 * @see #runJob(String, Properties, Properties, long, TimeUnit) -443 */ -444 public RundeckExecution runJob(String jobId) throws RundeckApiException, RundeckApiLoginException, -445 IllegalArgumentException { -446 return runJob(jobId, null); -447 } -448 -449 /** -450 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. -451 * We will poll the RunDeck server at regular interval (every 5 seconds) to know if the execution is finished (or -452 * aborted) or is still running. -453 * -454 * @param jobId identifier of the job - mandatory -455 * @param options of the job - optional. See {@link OptionsBuilder}. -456 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -457 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -458 * @throws RundeckApiLoginException if the login failed -459 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -460 * @see #triggerJob(String, Properties) -461 * @see #runJob(String, Properties, Properties, long, TimeUnit) -462 */ -463 public RundeckExecution runJob(String jobId, Properties options) throws RundeckApiException, -464 RundeckApiLoginException, IllegalArgumentException { -465 return runJob(jobId, options, null); -466 } -467 -468 /** -469 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. -470 * We will poll the RunDeck server at regular interval (every 5 seconds) to know if the execution is finished (or -471 * aborted) or is still running. -472 * -473 * @param jobId identifier of the job - mandatory -474 * @param options of the job - optional. See {@link OptionsBuilder}. -475 * @param nodeFilters for overriding the nodes on which the job will be executed - optional. See -476 * {@link NodeFiltersBuilder} -477 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -478 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -479 * @throws RundeckApiLoginException if the login failed -480 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -481 * @see #triggerJob(String, Properties, Properties) -482 * @see #runJob(String, Properties, Properties, long, TimeUnit) -483 */ -484 public RundeckExecution runJob(String jobId, Properties options, Properties nodeFilters) -485 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -486 return runJob(jobId, options, nodeFilters, 5, TimeUnit.SECONDS); -487 } -488 -489 /** -490 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. -491 * We will poll the RunDeck server at regular interval (configured by the poolingInterval/poolingUnit couple) to -492 * know if the execution is finished (or aborted) or is still running. +436 * @param format of the export. See {@link FileType} - mandatory +437 * @param jobId identifier of the job - mandatory +438 * @return an {@link InputStream} instance, not linked to any network resources - won't be null +439 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +440 * @throws RundeckApiLoginException if the login failed +441 * @throws IllegalArgumentException if the format or jobId is blank (null, empty or whitespace), or the format is +442 * invalid +443 * @see #exportJobToFile(String, String, String) +444 * @see #getJob(String) +445 */ +446 public InputStream exportJob(String format, String jobId) throws RundeckApiException, RundeckApiLoginException, +447 IllegalArgumentException { +448 AssertUtil.notBlank(format, "format is mandatory to export a job !"); +449 return exportJob(FileType.valueOf(StringUtils.upperCase(format)), jobId); +450 } +451 +452 /** +453 * Export the definition of a single job, identified by the given ID +454 * +455 * @param format of the export. See {@link FileType} - mandatory +456 * @param jobId identifier of the job - mandatory +457 * @return an {@link InputStream} instance, not linked to any network resources - won't be null +458 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +459 * @throws RundeckApiLoginException if the login failed +460 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace), or the format is null +461 * @see #exportJobToFile(String, FileType, String) +462 * @see #getJob(String) +463 */ +464 public InputStream exportJob(FileType format, String jobId) throws RundeckApiException, RundeckApiLoginException, +465 IllegalArgumentException { +466 AssertUtil.notNull(format, "format is mandatory to export a job !"); +467 AssertUtil.notBlank(jobId, "jobId is mandatory to export a job !"); +468 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId).param("format", format)); +469 } +470 +471 /** +472 * Import the definitions of jobs, from the given file +473 * +474 * @param filename of the file containing the jobs definitions - mandatory +475 * @param fileType type of the file. See {@link FileType} - mandatory +476 * @return a {@link RundeckJobsImportResult} instance - won't be null +477 * @throws RundeckApiException in case of error when calling the API +478 * @throws RundeckApiLoginException if the login failed +479 * @throws IllegalArgumentException if the filename or fileType is blank (null, empty or whitespace), or the +480 * fileType is invalid +481 * @throws IOException if we failed to read the file +482 * @see #importJobs(InputStream, String) +483 * @see #importJobs(String, FileType, RundeckJobsImportMethod) +484 */ +485 public RundeckJobsImportResult importJobs(String filename, String fileType) throws RundeckApiException, +486 RundeckApiLoginException, IllegalArgumentException, IOException { +487 AssertUtil.notBlank(fileType, "fileType is mandatory to import jobs !"); +488 return importJobs(filename, FileType.valueOf(StringUtils.upperCase(fileType))); +489 } +490 +491 /** +492 * Import the definitions of jobs, from the given file 493 * -494 * @param jobId identifier of the job - mandatory -495 * @param options of the job - optional. See {@link OptionsBuilder}. -496 * @param poolingInterval for checking the status of the execution. Must be > 0. -497 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. -498 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -499 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -500 * @throws RundeckApiLoginException if the login failed -501 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -502 * @see #triggerJob(String, Properties) -503 * @see #runJob(String, Properties, Properties, long, TimeUnit) -504 */ -505 public RundeckExecution runJob(String jobId, Properties options, long poolingInterval, TimeUnit poolingUnit) -506 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -507 return runJob(jobId, options, null, poolingInterval, poolingUnit); -508 } -509 -510 /** -511 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. -512 * We will poll the RunDeck server at regular interval (configured by the poolingInterval/poolingUnit couple) to -513 * know if the execution is finished (or aborted) or is still running. -514 * -515 * @param jobId identifier of the job - mandatory -516 * @param options of the job - optional. See {@link OptionsBuilder}. -517 * @param nodeFilters for overriding the nodes on which the job will be executed - optional. See -518 * {@link NodeFiltersBuilder} -519 * @param poolingInterval for checking the status of the execution. Must be > 0. -520 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. -521 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -522 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -523 * @throws RundeckApiLoginException if the login failed -524 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -525 * @see #triggerJob(String, Properties) -526 * @see #runJob(String, Properties, Properties, long, TimeUnit) -527 */ -528 public RundeckExecution runJob(String jobId, Properties options, Properties nodeFilters, long poolingInterval, -529 TimeUnit poolingUnit) throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -530 if (poolingInterval <= 0) { -531 poolingInterval = 5; -532 poolingUnit = TimeUnit.SECONDS; -533 } -534 if (poolingUnit == null) { -535 poolingUnit = TimeUnit.SECONDS; -536 } -537 -538 RundeckExecution execution = triggerJob(jobId, options, nodeFilters); -539 while (ExecutionStatus.RUNNING.equals(execution.getStatus())) { -540 try { -541 Thread.sleep(poolingUnit.toMillis(poolingInterval)); -542 } catch (InterruptedException e) { -543 break; -544 } -545 execution = getExecution(execution.getId()); -546 } -547 return execution; -548 } -549 -550 /* -551 * Ad-hoc commands -552 */ -553 -554 /** -555 * Trigger the execution of an ad-hoc command, and return immediately (without waiting the end of the execution). -556 * The command will not be dispatched to nodes, but be executed on the RunDeck server. -557 * -558 * @param project name of the project - mandatory -559 * @param command to be executed - mandatory -560 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null -561 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -562 * @throws RundeckApiLoginException if the login failed -563 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -564 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) -565 * @see #runAdhocCommand(String, String) -566 */ -567 public RundeckExecution triggerAdhocCommand(String project, String command) throws RundeckApiException, -568 RundeckApiLoginException, IllegalArgumentException { -569 return triggerAdhocCommand(project, command, null); -570 } -571 -572 /** -573 * Trigger the execution of an ad-hoc command, and return immediately (without waiting the end of the execution). -574 * The command will be dispatched to nodes, accordingly to the nodeFilters parameter. -575 * -576 * @param project name of the project - mandatory -577 * @param command to be executed - mandatory -578 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} -579 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null -580 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -581 * @throws RundeckApiLoginException if the login failed -582 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -583 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) -584 * @see #runAdhocCommand(String, String, Properties) -585 */ -586 public RundeckExecution triggerAdhocCommand(String project, String command, Properties nodeFilters) -587 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -588 return triggerAdhocCommand(project, command, nodeFilters, null, null); -589 } -590 -591 /** -592 * Trigger the execution of an ad-hoc command, and return immediately (without waiting the end of the execution). -593 * The command will be dispatched to nodes, accordingly to the nodeFilters parameter. -594 * -595 * @param project name of the project - mandatory -596 * @param command to be executed - mandatory -597 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} -598 * @param nodeThreadcount thread count to use (for parallelizing when running on multiple nodes) - optional -599 * @param nodeKeepgoing if true, continue executing on other nodes even if some fail - optional -600 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null -601 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -602 * @throws RundeckApiLoginException if the login failed -603 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -604 * @see #triggerAdhocCommand(String, String) -605 * @see #runAdhocCommand(String, String, Properties) +494 * @param filename of the file containing the jobs definitions - mandatory +495 * @param fileType type of the file. See {@link FileType} - mandatory +496 * @return a {@link RundeckJobsImportResult} instance - won't be null +497 * @throws RundeckApiException in case of error when calling the API +498 * @throws RundeckApiLoginException if the login failed +499 * @throws IllegalArgumentException if the filename is blank (null, empty or whitespace), or the fileType is null +500 * @throws IOException if we failed to read the file +501 * @see #importJobs(InputStream, FileType) +502 * @see #importJobs(String, FileType, RundeckJobsImportMethod) +503 */ +504 public RundeckJobsImportResult importJobs(String filename, FileType fileType) throws RundeckApiException, +505 RundeckApiLoginException, IllegalArgumentException, IOException { +506 return importJobs(filename, fileType, (RundeckJobsImportMethod) null); +507 } +508 +509 /** +510 * Import the definitions of jobs, from the given file, using the given behavior +511 * +512 * @param filename of the file containing the jobs definitions - mandatory +513 * @param fileType type of the file. See {@link FileType} - mandatory +514 * @param importBehavior see {@link RundeckJobsImportMethod} +515 * @return a {@link RundeckJobsImportResult} instance - won't be null +516 * @throws RundeckApiException in case of error when calling the API +517 * @throws RundeckApiLoginException if the login failed +518 * @throws IllegalArgumentException if the filename or fileType is blank (null, empty or whitespace), or the +519 * fileType or behavior is not valid +520 * @throws IOException if we failed to read the file +521 * @see #importJobs(InputStream, String, String) +522 * @see #importJobs(String, FileType, RundeckJobsImportMethod) +523 */ +524 public RundeckJobsImportResult importJobs(String filename, String fileType, String importBehavior) +525 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException, IOException { +526 AssertUtil.notBlank(fileType, "fileType is mandatory to import jobs !"); +527 return importJobs(filename, +528 FileType.valueOf(StringUtils.upperCase(fileType)), +529 RundeckJobsImportMethod.valueOf(StringUtils.upperCase(importBehavior))); +530 } +531 +532 /** +533 * Import the definitions of jobs, from the given file, using the given behavior +534 * +535 * @param filename of the file containing the jobs definitions - mandatory +536 * @param fileType type of the file. See {@link FileType} - mandatory +537 * @param importBehavior see {@link RundeckJobsImportMethod} +538 * @return a {@link RundeckJobsImportResult} instance - won't be null +539 * @throws RundeckApiException in case of error when calling the API +540 * @throws RundeckApiLoginException if the login failed +541 * @throws IllegalArgumentException if the filename is blank (null, empty or whitespace), or the fileType is null +542 * @throws IOException if we failed to read the file +543 * @see #importJobs(InputStream, FileType, RundeckJobsImportMethod) +544 */ +545 public RundeckJobsImportResult importJobs(String filename, FileType fileType, RundeckJobsImportMethod importBehavior) +546 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException, IOException { +547 AssertUtil.notBlank(filename, "filename (of jobs file) is mandatory to import jobs !"); +548 FileInputStream stream = null; +549 try { +550 stream = FileUtils.openInputStream(new File(filename)); +551 return importJobs(stream, fileType, importBehavior); +552 } finally { +553 IOUtils.closeQuietly(stream); +554 } +555 } +556 +557 /** +558 * Import the definitions of jobs, from the given input stream +559 * +560 * @param stream inputStream for reading the definitions - mandatory +561 * @param fileType type of the file. See {@link FileType} - mandatory +562 * @return a {@link RundeckJobsImportResult} instance - won't be null +563 * @throws RundeckApiException in case of error when calling the API +564 * @throws RundeckApiLoginException if the login failed +565 * @throws IllegalArgumentException if the stream is null, or the fileType is blank (null, empty or whitespace) or +566 * invalid +567 * @see #importJobs(String, String) +568 * @see #importJobs(InputStream, FileType, RundeckJobsImportMethod) +569 */ +570 public RundeckJobsImportResult importJobs(InputStream stream, String fileType) throws RundeckApiException, +571 RundeckApiLoginException, IllegalArgumentException { +572 AssertUtil.notBlank(fileType, "fileType is mandatory to import jobs !"); +573 return importJobs(stream, FileType.valueOf(StringUtils.upperCase(fileType))); +574 } +575 +576 /** +577 * Import the definitions of jobs, from the given input stream +578 * +579 * @param stream inputStream for reading the definitions - mandatory +580 * @param fileType type of the file. See {@link FileType} - mandatory +581 * @return a {@link RundeckJobsImportResult} instance - won't be null +582 * @throws RundeckApiException in case of error when calling the API +583 * @throws RundeckApiLoginException if the login failed +584 * @throws IllegalArgumentException if the stream or fileType is null +585 * @see #importJobs(String, FileType) +586 * @see #importJobs(InputStream, FileType, RundeckJobsImportMethod) +587 */ +588 public RundeckJobsImportResult importJobs(InputStream stream, FileType fileType) throws RundeckApiException, +589 RundeckApiLoginException, IllegalArgumentException { +590 return importJobs(stream, fileType, (RundeckJobsImportMethod) null); +591 } +592 +593 /** +594 * Import the definitions of jobs, from the given input stream, using the given behavior +595 * +596 * @param stream inputStream for reading the definitions - mandatory +597 * @param fileType type of the file. See {@link FileType} - mandatory +598 * @param importBehavior see {@link RundeckJobsImportMethod} +599 * @return a {@link RundeckJobsImportResult} instance - won't be null +600 * @throws RundeckApiException in case of error when calling the API +601 * @throws RundeckApiLoginException if the login failed +602 * @throws IllegalArgumentException if the stream is null, or the fileType is blank (null, empty or whitespace), or +603 * the fileType or behavior is not valid +604 * @see #importJobs(String, String, String) +605 * @see #importJobs(InputStream, FileType, RundeckJobsImportMethod) 606 */ -607 public RundeckExecution triggerAdhocCommand(String project, String command, Properties nodeFilters, -608 Integer nodeThreadcount, Boolean nodeKeepgoing) throws RundeckApiException, RundeckApiLoginException, -609 IllegalArgumentException { -610 AssertUtil.notBlank(project, "project is mandatory to trigger an ad-hoc command !"); -611 AssertUtil.notBlank(command, "command is mandatory to trigger an ad-hoc command !"); -612 RundeckExecution execution = new ApiCall(this).get(new ApiPathBuilder("/run/command").param("project", project) -613 .param("exec", command) -614 .param("nodeThreadcount", -615 nodeThreadcount) -616 .param("nodeKeepgoing", -617 nodeKeepgoing) -618 .nodeFilters(nodeFilters), -619 new ExecutionParser("result/execution")); -620 // the first call just returns the ID of the execution, so we need another call to get a "real" execution -621 return getExecution(execution.getId()); -622 } -623 -624 /** -625 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck -626 * server at regular interval (every 5 seconds) to know if the execution is finished (or aborted) or is still -627 * running. The command will not be dispatched to nodes, but be executed on the RunDeck server. -628 * -629 * @param project name of the project - mandatory -630 * @param command to be executed - mandatory -631 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -632 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -633 * @throws RundeckApiLoginException if the login failed -634 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -635 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) -636 * @see #triggerAdhocCommand(String, String) -637 */ -638 public RundeckExecution runAdhocCommand(String project, String command) throws RundeckApiException, -639 RundeckApiLoginException, IllegalArgumentException { -640 return runAdhocCommand(project, command, null); -641 } -642 -643 /** -644 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck -645 * server at regular interval (configured by the poolingInterval/poolingUnit couple) to know if the execution is -646 * finished (or aborted) or is still running. The command will not be dispatched to nodes, but be executed on the -647 * RunDeck server. -648 * -649 * @param project name of the project - mandatory -650 * @param command to be executed - mandatory -651 * @param poolingInterval for checking the status of the execution. Must be > 0. -652 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. -653 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -654 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -655 * @throws RundeckApiLoginException if the login failed -656 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -657 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) -658 * @see #triggerAdhocCommand(String, String) -659 */ -660 public RundeckExecution runAdhocCommand(String project, String command, long poolingInterval, TimeUnit poolingUnit) -661 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -662 return runAdhocCommand(project, command, null, poolingInterval, poolingUnit); -663 } -664 -665 /** -666 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck -667 * server at regular interval (every 5 seconds) to know if the execution is finished (or aborted) or is still -668 * running. The command will be dispatched to nodes, accordingly to the nodeFilters parameter. -669 * -670 * @param project name of the project - mandatory -671 * @param command to be executed - mandatory -672 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} -673 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -674 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -675 * @throws RundeckApiLoginException if the login failed -676 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -677 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) -678 * @see #triggerAdhocCommand(String, String, Properties) -679 */ -680 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters) -681 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -682 return runAdhocCommand(project, command, nodeFilters, null, null); -683 } -684 -685 /** -686 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck -687 * server at regular interval (configured by the poolingInterval/poolingUnit couple) to know if the execution is -688 * finished (or aborted) or is still running. The command will be dispatched to nodes, accordingly to the -689 * nodeFilters parameter. -690 * -691 * @param project name of the project - mandatory -692 * @param command to be executed - mandatory -693 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} -694 * @param poolingInterval for checking the status of the execution. Must be > 0. -695 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. -696 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -697 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +607 public RundeckJobsImportResult importJobs(InputStream stream, String fileType, String importBehavior) +608 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +609 AssertUtil.notBlank(fileType, "fileType is mandatory to import jobs !"); +610 return importJobs(stream, +611 FileType.valueOf(StringUtils.upperCase(fileType)), +612 RundeckJobsImportMethod.valueOf(StringUtils.upperCase(importBehavior))); +613 } +614 +615 /** +616 * Import the definitions of jobs, from the given input stream, using the given behavior +617 * +618 * @param stream inputStream for reading the definitions - mandatory +619 * @param fileType type of the file. See {@link FileType} - mandatory +620 * @param importBehavior see {@link RundeckJobsImportMethod} +621 * @return a {@link RundeckJobsImportResult} instance - won't be null +622 * @throws RundeckApiException in case of error when calling the API +623 * @throws RundeckApiLoginException if the login failed +624 * @throws IllegalArgumentException if the stream or fileType is null +625 * @see #importJobs(String, FileType, RundeckJobsImportMethod) +626 */ +627 public RundeckJobsImportResult importJobs(InputStream stream, FileType fileType, +628 RundeckJobsImportMethod importBehavior) throws RundeckApiException, RundeckApiLoginException, +629 IllegalArgumentException { +630 AssertUtil.notNull(stream, "inputStream of jobs is mandatory to import jobs !"); +631 AssertUtil.notNull(fileType, "fileType is mandatory to import jobs !"); +632 return new ApiCall(this).post(new ApiPathBuilder("/jobs/import").param("format", fileType) +633 .param("dupeOption", importBehavior) +634 .attach("xmlBatch", stream), +635 new JobsImportResultParser("result")); +636 } +637 +638 /** +639 * Find a job, identified by its project, group and name. Note that the groupPath is optional, as a job does not +640 * need to belong to a group (either pass null, or an empty string). +641 * +642 * @param project name of the project - mandatory +643 * @param groupPath group to which the job belongs (if it belongs to a group) - optional +644 * @param name of the job to find - mandatory +645 * @return a {@link RundeckJob} instance - null if not found +646 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +647 * @throws RundeckApiLoginException if the login failed +648 * @throws IllegalArgumentException if the project or the name is blank (null, empty or whitespace) +649 * @see #getJob(String) +650 */ +651 public RundeckJob findJob(String project, String groupPath, String name) throws RundeckApiException, +652 RundeckApiLoginException, IllegalArgumentException { +653 AssertUtil.notBlank(project, "project is mandatory to find a job !"); +654 AssertUtil.notBlank(name, "job name is mandatory to find a job !"); +655 List<RundeckJob> jobs = getJobs(project, name, groupPath, new String[0]); +656 return jobs.isEmpty() ? null : jobs.get(0); +657 } +658 +659 /** +660 * Get the definition of a single job, identified by the given ID +661 * +662 * @param jobId identifier of the job - mandatory +663 * @return a {@link RundeckJob} instance - won't be null +664 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +665 * @throws RundeckApiLoginException if the login failed +666 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +667 * @see #findJob(String, String, String) +668 * @see #exportJob(String) +669 */ +670 public RundeckJob getJob(String jobId) throws RundeckApiException, RundeckApiLoginException, +671 IllegalArgumentException { +672 AssertUtil.notBlank(jobId, "jobId is mandatory to get the details of a job !"); +673 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId), new JobParser("joblist/job")); +674 } +675 +676 /** +677 * Delete a single job, identified by the given ID +678 * +679 * @param jobId identifier of the job - mandatory +680 * @return the success message (note that in case of error, you'll get an exception) +681 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +682 * @throws RundeckApiLoginException if the login failed +683 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +684 */ +685 public String deleteJob(String jobId) throws RundeckApiException, RundeckApiLoginException, +686 IllegalArgumentException { +687 AssertUtil.notBlank(jobId, "jobId is mandatory to delete a job !"); +688 return new ApiCall(this).delete(new ApiPathBuilder("/job/", jobId), new StringParser("result/success/message")); +689 } +690 +691 /** +692 * Trigger the execution of a RunDeck job (identified by the given ID), and return immediately (without waiting the +693 * end of the job execution) +694 * +695 * @param jobId identifier of the job - mandatory +696 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null +697 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) 698 * @throws RundeckApiLoginException if the login failed -699 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -700 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) -701 * @see #triggerAdhocCommand(String, String, Properties) +699 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +700 * @see #triggerJob(String, Properties, Properties) +701 * @see #runJob(String) 702 */ -703 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters, -704 long poolingInterval, TimeUnit poolingUnit) throws RundeckApiException, RundeckApiLoginException, -705 IllegalArgumentException { -706 return runAdhocCommand(project, command, nodeFilters, null, null, poolingInterval, poolingUnit); -707 } -708 -709 /** -710 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck -711 * server at regular interval (every 5 seconds) to know if the execution is finished (or aborted) or is still -712 * running. The command will be dispatched to nodes, accordingly to the nodeFilters parameter. -713 * -714 * @param project name of the project - mandatory -715 * @param command to be executed - mandatory -716 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} -717 * @param nodeThreadcount thread count to use (for parallelizing when running on multiple nodes) - optional -718 * @param nodeKeepgoing if true, continue executing on other nodes even if some fail - optional -719 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -720 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -721 * @throws RundeckApiLoginException if the login failed -722 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -723 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) -724 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) -725 */ -726 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters, -727 Integer nodeThreadcount, Boolean nodeKeepgoing) throws RundeckApiException, RundeckApiLoginException, -728 IllegalArgumentException { -729 return runAdhocCommand(project, command, nodeFilters, nodeThreadcount, nodeKeepgoing, 5, TimeUnit.SECONDS); -730 } -731 -732 /** -733 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck -734 * server at regular interval (configured by the poolingInterval/poolingUnit couple) to know if the execution is -735 * finished (or aborted) or is still running. The command will be dispatched to nodes, accordingly to the -736 * nodeFilters parameter. -737 * -738 * @param project name of the project - mandatory -739 * @param command to be executed - mandatory -740 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} -741 * @param nodeThreadcount thread count to use (for parallelizing when running on multiple nodes) - optional -742 * @param nodeKeepgoing if true, continue executing on other nodes even if some fail - optional -743 * @param poolingInterval for checking the status of the execution. Must be > 0. -744 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. -745 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null -746 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -747 * @throws RundeckApiLoginException if the login failed -748 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) -749 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) -750 */ -751 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters, -752 Integer nodeThreadcount, Boolean nodeKeepgoing, long poolingInterval, TimeUnit poolingUnit) -753 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -754 if (poolingInterval <= 0) { -755 poolingInterval = 5; -756 poolingUnit = TimeUnit.SECONDS; -757 } -758 if (poolingUnit == null) { -759 poolingUnit = TimeUnit.SECONDS; -760 } -761 -762 RundeckExecution execution = triggerAdhocCommand(project, command, nodeFilters, nodeThreadcount, nodeKeepgoing); -763 while (ExecutionStatus.RUNNING.equals(execution.getStatus())) { -764 try { -765 Thread.sleep(poolingUnit.toMillis(poolingInterval)); -766 } catch (InterruptedException e) { -767 break; -768 } -769 execution = getExecution(execution.getId()); -770 } -771 return execution; -772 } -773 -774 /* -775 * Executions -776 */ -777 -778 /** -779 * Get all running executions (for all projects) -780 * -781 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null -782 * @throws RundeckApiException in case of error when calling the API -783 * @throws RundeckApiLoginException if the login failed -784 */ -785 public List<RundeckExecution> getRunningExecutions() throws RundeckApiException, RundeckApiLoginException { -786 List<RundeckExecution> executions = new ArrayList<RundeckExecution>(); -787 for (RundeckProject project : getProjects()) { -788 executions.addAll(getRunningExecutions(project.getName())); -789 } -790 return executions; -791 } -792 -793 /** -794 * Get the running executions for the given project -795 * -796 * @param project name of the project - mandatory -797 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null -798 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -799 * @throws RundeckApiLoginException if the login failed -800 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -801 */ -802 public List<RundeckExecution> getRunningExecutions(String project) throws RundeckApiException, -803 RundeckApiLoginException, IllegalArgumentException { -804 AssertUtil.notBlank(project, "project is mandatory get all running executions !"); -805 return new ApiCall(this).get(new ApiPathBuilder("/executions/running").param("project", project), -806 new ListParser<RundeckExecution>(new ExecutionParser(), -807 "result/executions/execution")); -808 } -809 -810 /** -811 * Get the executions of the given job +703 public RundeckExecution triggerJob(String jobId) throws RundeckApiException, RundeckApiLoginException, +704 IllegalArgumentException { +705 return triggerJob(jobId, null); +706 } +707 +708 /** +709 * Trigger the execution of a RunDeck job (identified by the given ID), and return immediately (without waiting the +710 * end of the job execution) +711 * +712 * @param jobId identifier of the job - mandatory +713 * @param options of the job - optional. See {@link OptionsBuilder}. +714 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null +715 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +716 * @throws RundeckApiLoginException if the login failed +717 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +718 * @see #triggerJob(String, Properties, Properties) +719 * @see #runJob(String, Properties) +720 */ +721 public RundeckExecution triggerJob(String jobId, Properties options) throws RundeckApiException, +722 RundeckApiLoginException, IllegalArgumentException { +723 return triggerJob(jobId, options, null); +724 } +725 +726 /** +727 * Trigger the execution of a RunDeck job (identified by the given ID), and return immediately (without waiting the +728 * end of the job execution) +729 * +730 * @param jobId identifier of the job - mandatory +731 * @param options of the job - optional. See {@link OptionsBuilder}. +732 * @param nodeFilters for overriding the nodes on which the job will be executed - optional. See +733 * {@link NodeFiltersBuilder} +734 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null +735 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +736 * @throws RundeckApiLoginException if the login failed +737 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +738 * @see #triggerJob(String) +739 * @see #runJob(String, Properties, Properties) +740 */ +741 public RundeckExecution triggerJob(String jobId, Properties options, Properties nodeFilters) +742 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +743 AssertUtil.notBlank(jobId, "jobId is mandatory to trigger a job !"); +744 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId, "/run").param("argString", +745 ParametersUtil.generateArgString(options)) +746 .nodeFilters(nodeFilters), +747 new ExecutionParser("result/executions/execution")); +748 } +749 +750 /** +751 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. +752 * We will poll the RunDeck server at regular interval (every 5 seconds) to know if the execution is finished (or +753 * aborted) or is still running. +754 * +755 * @param jobId identifier of the job - mandatory +756 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +757 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +758 * @throws RundeckApiLoginException if the login failed +759 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +760 * @see #triggerJob(String) +761 * @see #runJob(String, Properties, Properties, long, TimeUnit) +762 */ +763 public RundeckExecution runJob(String jobId) throws RundeckApiException, RundeckApiLoginException, +764 IllegalArgumentException { +765 return runJob(jobId, null); +766 } +767 +768 /** +769 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. +770 * We will poll the RunDeck server at regular interval (every 5 seconds) to know if the execution is finished (or +771 * aborted) or is still running. +772 * +773 * @param jobId identifier of the job - mandatory +774 * @param options of the job - optional. See {@link OptionsBuilder}. +775 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +776 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +777 * @throws RundeckApiLoginException if the login failed +778 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +779 * @see #triggerJob(String, Properties) +780 * @see #runJob(String, Properties, Properties, long, TimeUnit) +781 */ +782 public RundeckExecution runJob(String jobId, Properties options) throws RundeckApiException, +783 RundeckApiLoginException, IllegalArgumentException { +784 return runJob(jobId, options, null); +785 } +786 +787 /** +788 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. +789 * We will poll the RunDeck server at regular interval (every 5 seconds) to know if the execution is finished (or +790 * aborted) or is still running. +791 * +792 * @param jobId identifier of the job - mandatory +793 * @param options of the job - optional. See {@link OptionsBuilder}. +794 * @param nodeFilters for overriding the nodes on which the job will be executed - optional. See +795 * {@link NodeFiltersBuilder} +796 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +797 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +798 * @throws RundeckApiLoginException if the login failed +799 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +800 * @see #triggerJob(String, Properties, Properties) +801 * @see #runJob(String, Properties, Properties, long, TimeUnit) +802 */ +803 public RundeckExecution runJob(String jobId, Properties options, Properties nodeFilters) +804 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +805 return runJob(jobId, options, nodeFilters, 5, TimeUnit.SECONDS); +806 } +807 +808 /** +809 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. +810 * We will poll the RunDeck server at regular interval (configured by the poolingInterval/poolingUnit couple) to +811 * know if the execution is finished (or aborted) or is still running. 812 * 813 * @param jobId identifier of the job - mandatory -814 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null -815 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -816 * @throws RundeckApiLoginException if the login failed -817 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -818 */ -819 public List<RundeckExecution> getJobExecutions(String jobId) throws RundeckApiException, RundeckApiLoginException, -820 IllegalArgumentException { -821 return getJobExecutions(jobId, null); -822 } -823 -824 /** -825 * Get the executions of the given job -826 * -827 * @param jobId identifier of the job - mandatory -828 * @param status of the executions - optional (null for all) -829 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null -830 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -831 * @throws RundeckApiLoginException if the login failed -832 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -833 */ -834 public List<RundeckExecution> getJobExecutions(String jobId, ExecutionStatus status) throws RundeckApiException, -835 RundeckApiLoginException, IllegalArgumentException { -836 return getJobExecutions(jobId, status, null, null); -837 } -838 -839 /** -840 * Get the executions of the given job -841 * -842 * @param jobId identifier of the job - mandatory -843 * @param status of the executions - optional (null for all) -844 * @param max number of results to return - optional (null for all) -845 * @param offset the 0-indexed offset for the first result to return - optional -846 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null -847 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) -848 * @throws RundeckApiLoginException if the login failed -849 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) -850 */ -851 public List<RundeckExecution> getJobExecutions(String jobId, ExecutionStatus status, Long max, Long offset) -852 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { -853 AssertUtil.notBlank(jobId, "jobId is mandatory to get the executions of a job !"); -854 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId, "/executions").param("status", -855 status != null ? StringUtils.lowerCase(status.toString()) : null) -856 .param("max", max) -857 .param("offset", offset), -858 new ListParser<RundeckExecution>(new ExecutionParser(), -859 "result/executions/execution")); -860 } -861 -862 /** -863 * Get a single execution, identified by the given ID -864 * -865 * @param executionId identifier of the execution - mandatory -866 * @return a {@link RundeckExecution} instance - won't be null -867 * @throws RundeckApiException in case of error when calling the API (non-existent execution with this ID) -868 * @throws RundeckApiLoginException if the login failed -869 * @throws IllegalArgumentException if the executionId is null -870 */ -871 public RundeckExecution getExecution(Long executionId) throws RundeckApiException, RundeckApiLoginException, -872 IllegalArgumentException { -873 AssertUtil.notNull(executionId, "executionId is mandatory to get the details of an execution !"); -874 return new ApiCall(this).get(new ApiPathBuilder("/execution/", executionId.toString()), -875 new ExecutionParser("result/executions/execution")); -876 } -877 -878 /** -879 * Abort an execution (identified by the given ID). The execution should be running... -880 * -881 * @param executionId identifier of the execution - mandatory -882 * @return a {@link RundeckAbort} instance - won't be null -883 * @throws RundeckApiException in case of error when calling the API (non-existent execution with this ID) -884 * @throws RundeckApiLoginException if the login failed -885 * @throws IllegalArgumentException if the executionId is null -886 */ -887 public RundeckAbort abortExecution(Long executionId) throws RundeckApiException, RundeckApiLoginException, -888 IllegalArgumentException { -889 AssertUtil.notNull(executionId, "executionId is mandatory to abort an execution !"); -890 return new ApiCall(this).get(new ApiPathBuilder("/execution/", executionId.toString(), "/abort"), -891 new AbortParser("result/abort")); -892 } -893 -894 /* -895 * Nodes -896 */ -897 -898 /** -899 * List all nodes (for all projects) -900 * -901 * @return a {@link List} of {@link RundeckNode} : might be empty, but won't be null -902 * @throws RundeckApiException in case of error when calling the API -903 * @throws RundeckApiLoginException if the login failed +814 * @param options of the job - optional. See {@link OptionsBuilder}. +815 * @param poolingInterval for checking the status of the execution. Must be > 0. +816 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. +817 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +818 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +819 * @throws RundeckApiLoginException if the login failed +820 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +821 * @see #triggerJob(String, Properties) +822 * @see #runJob(String, Properties, Properties, long, TimeUnit) +823 */ +824 public RundeckExecution runJob(String jobId, Properties options, long poolingInterval, TimeUnit poolingUnit) +825 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +826 return runJob(jobId, options, null, poolingInterval, poolingUnit); +827 } +828 +829 /** +830 * Run a RunDeck job (identified by the given ID), and wait until its execution is finished (or aborted) to return. +831 * We will poll the RunDeck server at regular interval (configured by the poolingInterval/poolingUnit couple) to +832 * know if the execution is finished (or aborted) or is still running. +833 * +834 * @param jobId identifier of the job - mandatory +835 * @param options of the job - optional. See {@link OptionsBuilder}. +836 * @param nodeFilters for overriding the nodes on which the job will be executed - optional. See +837 * {@link NodeFiltersBuilder} +838 * @param poolingInterval for checking the status of the execution. Must be > 0. +839 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. +840 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +841 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +842 * @throws RundeckApiLoginException if the login failed +843 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +844 * @see #triggerJob(String, Properties) +845 * @see #runJob(String, Properties, Properties, long, TimeUnit) +846 */ +847 public RundeckExecution runJob(String jobId, Properties options, Properties nodeFilters, long poolingInterval, +848 TimeUnit poolingUnit) throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +849 if (poolingInterval <= 0) { +850 poolingInterval = 5; +851 poolingUnit = TimeUnit.SECONDS; +852 } +853 if (poolingUnit == null) { +854 poolingUnit = TimeUnit.SECONDS; +855 } +856 +857 RundeckExecution execution = triggerJob(jobId, options, nodeFilters); +858 while (ExecutionStatus.RUNNING.equals(execution.getStatus())) { +859 try { +860 Thread.sleep(poolingUnit.toMillis(poolingInterval)); +861 } catch (InterruptedException e) { +862 break; +863 } +864 execution = getExecution(execution.getId()); +865 } +866 return execution; +867 } +868 +869 /* +870 * Ad-hoc commands +871 */ +872 +873 /** +874 * Trigger the execution of an ad-hoc command, and return immediately (without waiting the end of the execution). +875 * The command will not be dispatched to nodes, but be executed on the RunDeck server. +876 * +877 * @param project name of the project - mandatory +878 * @param command to be executed - mandatory +879 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null +880 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +881 * @throws RundeckApiLoginException if the login failed +882 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +883 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) +884 * @see #runAdhocCommand(String, String) +885 */ +886 public RundeckExecution triggerAdhocCommand(String project, String command) throws RundeckApiException, +887 RundeckApiLoginException, IllegalArgumentException { +888 return triggerAdhocCommand(project, command, null); +889 } +890 +891 /** +892 * Trigger the execution of an ad-hoc command, and return immediately (without waiting the end of the execution). +893 * The command will be dispatched to nodes, accordingly to the nodeFilters parameter. +894 * +895 * @param project name of the project - mandatory +896 * @param command to be executed - mandatory +897 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} +898 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null +899 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +900 * @throws RundeckApiLoginException if the login failed +901 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +902 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) +903 * @see #runAdhocCommand(String, String, Properties) 904 */ -905 public List<RundeckNode> getNodes() throws RundeckApiException, RundeckApiLoginException { -906 List<RundeckNode> nodes = new ArrayList<RundeckNode>(); -907 for (RundeckProject project : getProjects()) { -908 nodes.addAll(getNodes(project.getName())); -909 } -910 return nodes; -911 } -912 -913 /** -914 * List all nodes that belongs to the given project -915 * -916 * @param project name of the project - mandatory -917 * @return a {@link List} of {@link RundeckNode} : might be empty, but won't be null -918 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -919 * @throws RundeckApiLoginException if the login failed -920 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -921 * @see #getNodes(String, Properties) -922 */ -923 public List<RundeckNode> getNodes(String project) throws RundeckApiException, RundeckApiLoginException, -924 IllegalArgumentException { -925 return getNodes(project, null); -926 } -927 -928 /** -929 * List nodes that belongs to the given project -930 * -931 * @param project name of the project - mandatory -932 * @param nodeFilters for filtering the nodes - optional. See {@link NodeFiltersBuilder} -933 * @return a {@link List} of {@link RundeckNode} : might be empty, but won't be null -934 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) -935 * @throws RundeckApiLoginException if the login failed -936 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) -937 */ -938 public List<RundeckNode> getNodes(String project, Properties nodeFilters) throws RundeckApiException, -939 RundeckApiLoginException, IllegalArgumentException { -940 AssertUtil.notBlank(project, "project is mandatory to get all nodes !"); -941 return new ApiCall(this).get(new ApiPathBuilder("/resources").param("project", project) -942 .nodeFilters(nodeFilters), -943 new ListParser<RundeckNode>(new NodeParser(), "project/node")); -944 } -945 -946 /** -947 * Get the definition of a single node -948 * -949 * @param name of the node - mandatory -950 * @param project name of the project - mandatory -951 * @return a {@link RundeckNode} instance - won't be null -952 * @throws RundeckApiException in case of error when calling the API (non-existent name or project with this name) -953 * @throws RundeckApiLoginException if the login failed -954 * @throws IllegalArgumentException if the name or project is blank (null, empty or whitespace) -955 */ -956 public RundeckNode getNode(String name, String project) throws RundeckApiException, RundeckApiLoginException, -957 IllegalArgumentException { -958 AssertUtil.notBlank(name, "the name of the node is mandatory to get a node !"); -959 AssertUtil.notBlank(project, "project is mandatory to get a node !"); -960 return new ApiCall(this).get(new ApiPathBuilder("/resource/", name).param("project", project), -961 new NodeParser("project/node")); -962 } -963 -964 /* -965 * System Info -966 */ -967 -968 /** -969 * Get system informations about the RunDeck server -970 * -971 * @return a {@link RundeckSystemInfo} instance - won't be null -972 * @throws RundeckApiException in case of error when calling the API -973 * @throws RundeckApiException if the login failed -974 */ -975 public RundeckSystemInfo getSystemInfo() throws RundeckApiException, RundeckApiLoginException { -976 return new ApiCall(this).get(new ApiPathBuilder("/system/info"), new SystemInfoParser("result/system")); -977 } -978 -979 public String getUrl() { -980 return url; -981 } -982 -983 public String getLogin() { -984 return login; -985 } -986 -987 public String getPassword() { -988 return password; -989 } -990 -991 @Override -992 public String toString() { -993 return "RundeckClient [url=" + url + ", login=" + login + ", password=" + password + "]"; -994 } -995 -996 @Override -997 public int hashCode() { -998 final int prime = 31; -999 int result = 1; -1000 result = prime * result + ((login == null) ? 0 : login.hashCode()); -1001 result = prime * result + ((password == null) ? 0 : password.hashCode()); -1002 result = prime * result + ((url == null) ? 0 : url.hashCode()); -1003 return result; -1004 } -1005 -1006 @Override -1007 public boolean equals(Object obj) { -1008 if (this == obj) -1009 return true; -1010 if (obj == null) -1011 return false; -1012 if (getClass() != obj.getClass()) -1013 return false; -1014 RundeckClient other = (RundeckClient) obj; -1015 if (login == null) { -1016 if (other.login != null) -1017 return false; -1018 } else if (!login.equals(other.login)) -1019 return false; -1020 if (password == null) { -1021 if (other.password != null) -1022 return false; -1023 } else if (!password.equals(other.password)) -1024 return false; -1025 if (url == null) { -1026 if (other.url != null) -1027 return false; -1028 } else if (!url.equals(other.url)) -1029 return false; -1030 return true; -1031 } -1032 -1033 } +905 public RundeckExecution triggerAdhocCommand(String project, String command, Properties nodeFilters) +906 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +907 return triggerAdhocCommand(project, command, nodeFilters, null, null); +908 } +909 +910 /** +911 * Trigger the execution of an ad-hoc command, and return immediately (without waiting the end of the execution). +912 * The command will be dispatched to nodes, accordingly to the nodeFilters parameter. +913 * +914 * @param project name of the project - mandatory +915 * @param command to be executed - mandatory +916 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} +917 * @param nodeThreadcount thread count to use (for parallelizing when running on multiple nodes) - optional +918 * @param nodeKeepgoing if true, continue executing on other nodes even if some fail - optional +919 * @return a {@link RundeckExecution} instance for the newly created (and running) execution - won't be null +920 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +921 * @throws RundeckApiLoginException if the login failed +922 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +923 * @see #triggerAdhocCommand(String, String) +924 * @see #runAdhocCommand(String, String, Properties) +925 */ +926 public RundeckExecution triggerAdhocCommand(String project, String command, Properties nodeFilters, +927 Integer nodeThreadcount, Boolean nodeKeepgoing) throws RundeckApiException, RundeckApiLoginException, +928 IllegalArgumentException { +929 AssertUtil.notBlank(project, "project is mandatory to trigger an ad-hoc command !"); +930 AssertUtil.notBlank(command, "command is mandatory to trigger an ad-hoc command !"); +931 RundeckExecution execution = new ApiCall(this).get(new ApiPathBuilder("/run/command").param("project", project) +932 .param("exec", command) +933 .param("nodeThreadcount", +934 nodeThreadcount) +935 .param("nodeKeepgoing", +936 nodeKeepgoing) +937 .nodeFilters(nodeFilters), +938 new ExecutionParser("result/execution")); +939 // the first call just returns the ID of the execution, so we need another call to get a "real" execution +940 return getExecution(execution.getId()); +941 } +942 +943 /** +944 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck +945 * server at regular interval (every 5 seconds) to know if the execution is finished (or aborted) or is still +946 * running. The command will not be dispatched to nodes, but be executed on the RunDeck server. +947 * +948 * @param project name of the project - mandatory +949 * @param command to be executed - mandatory +950 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +951 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +952 * @throws RundeckApiLoginException if the login failed +953 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +954 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) +955 * @see #triggerAdhocCommand(String, String) +956 */ +957 public RundeckExecution runAdhocCommand(String project, String command) throws RundeckApiException, +958 RundeckApiLoginException, IllegalArgumentException { +959 return runAdhocCommand(project, command, null); +960 } +961 +962 /** +963 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck +964 * server at regular interval (configured by the poolingInterval/poolingUnit couple) to know if the execution is +965 * finished (or aborted) or is still running. The command will not be dispatched to nodes, but be executed on the +966 * RunDeck server. +967 * +968 * @param project name of the project - mandatory +969 * @param command to be executed - mandatory +970 * @param poolingInterval for checking the status of the execution. Must be > 0. +971 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. +972 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +973 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +974 * @throws RundeckApiLoginException if the login failed +975 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +976 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) +977 * @see #triggerAdhocCommand(String, String) +978 */ +979 public RundeckExecution runAdhocCommand(String project, String command, long poolingInterval, TimeUnit poolingUnit) +980 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +981 return runAdhocCommand(project, command, null, poolingInterval, poolingUnit); +982 } +983 +984 /** +985 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck +986 * server at regular interval (every 5 seconds) to know if the execution is finished (or aborted) or is still +987 * running. The command will be dispatched to nodes, accordingly to the nodeFilters parameter. +988 * +989 * @param project name of the project - mandatory +990 * @param command to be executed - mandatory +991 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} +992 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +993 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +994 * @throws RundeckApiLoginException if the login failed +995 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +996 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) +997 * @see #triggerAdhocCommand(String, String, Properties) +998 */ +999 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters) +1000 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +1001 return runAdhocCommand(project, command, nodeFilters, null, null); +1002 } +1003 +1004 /** +1005 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck +1006 * server at regular interval (configured by the poolingInterval/poolingUnit couple) to know if the execution is +1007 * finished (or aborted) or is still running. The command will be dispatched to nodes, accordingly to the +1008 * nodeFilters parameter. +1009 * +1010 * @param project name of the project - mandatory +1011 * @param command to be executed - mandatory +1012 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} +1013 * @param poolingInterval for checking the status of the execution. Must be > 0. +1014 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. +1015 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +1016 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +1017 * @throws RundeckApiLoginException if the login failed +1018 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +1019 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) +1020 * @see #triggerAdhocCommand(String, String, Properties) +1021 */ +1022 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters, +1023 long poolingInterval, TimeUnit poolingUnit) throws RundeckApiException, RundeckApiLoginException, +1024 IllegalArgumentException { +1025 return runAdhocCommand(project, command, nodeFilters, null, null, poolingInterval, poolingUnit); +1026 } +1027 +1028 /** +1029 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck +1030 * server at regular interval (every 5 seconds) to know if the execution is finished (or aborted) or is still +1031 * running. The command will be dispatched to nodes, accordingly to the nodeFilters parameter. +1032 * +1033 * @param project name of the project - mandatory +1034 * @param command to be executed - mandatory +1035 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} +1036 * @param nodeThreadcount thread count to use (for parallelizing when running on multiple nodes) - optional +1037 * @param nodeKeepgoing if true, continue executing on other nodes even if some fail - optional +1038 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +1039 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +1040 * @throws RundeckApiLoginException if the login failed +1041 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +1042 * @see #runAdhocCommand(String, String, Properties, Integer, Boolean, long, TimeUnit) +1043 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) +1044 */ +1045 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters, +1046 Integer nodeThreadcount, Boolean nodeKeepgoing) throws RundeckApiException, RundeckApiLoginException, +1047 IllegalArgumentException { +1048 return runAdhocCommand(project, command, nodeFilters, nodeThreadcount, nodeKeepgoing, 5, TimeUnit.SECONDS); +1049 } +1050 +1051 /** +1052 * Run an ad-hoc command, and wait until its execution is finished (or aborted) to return. We will poll the RunDeck +1053 * server at regular interval (configured by the poolingInterval/poolingUnit couple) to know if the execution is +1054 * finished (or aborted) or is still running. The command will be dispatched to nodes, accordingly to the +1055 * nodeFilters parameter. +1056 * +1057 * @param project name of the project - mandatory +1058 * @param command to be executed - mandatory +1059 * @param nodeFilters for selecting nodes on which the command will be executed. See {@link NodeFiltersBuilder} +1060 * @param nodeThreadcount thread count to use (for parallelizing when running on multiple nodes) - optional +1061 * @param nodeKeepgoing if true, continue executing on other nodes even if some fail - optional +1062 * @param poolingInterval for checking the status of the execution. Must be > 0. +1063 * @param poolingUnit unit (seconds, milli-seconds, ...) of the interval. Default to seconds. +1064 * @return a {@link RundeckExecution} instance for the (finished/aborted) execution - won't be null +1065 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +1066 * @throws RundeckApiLoginException if the login failed +1067 * @throws IllegalArgumentException if the project or command is blank (null, empty or whitespace) +1068 * @see #triggerAdhocCommand(String, String, Properties, Integer, Boolean) +1069 */ +1070 public RundeckExecution runAdhocCommand(String project, String command, Properties nodeFilters, +1071 Integer nodeThreadcount, Boolean nodeKeepgoing, long poolingInterval, TimeUnit poolingUnit) +1072 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +1073 if (poolingInterval <= 0) { +1074 poolingInterval = 5; +1075 poolingUnit = TimeUnit.SECONDS; +1076 } +1077 if (poolingUnit == null) { +1078 poolingUnit = TimeUnit.SECONDS; +1079 } +1080 +1081 RundeckExecution execution = triggerAdhocCommand(project, command, nodeFilters, nodeThreadcount, nodeKeepgoing); +1082 while (ExecutionStatus.RUNNING.equals(execution.getStatus())) { +1083 try { +1084 Thread.sleep(poolingUnit.toMillis(poolingInterval)); +1085 } catch (InterruptedException e) { +1086 break; +1087 } +1088 execution = getExecution(execution.getId()); +1089 } +1090 return execution; +1091 } +1092 +1093 /* +1094 * Executions +1095 */ +1096 +1097 /** +1098 * Get all running executions (for all projects) +1099 * +1100 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1101 * @throws RundeckApiException in case of error when calling the API +1102 * @throws RundeckApiLoginException if the login failed +1103 * @see #getRunningExecutions(String) +1104 */ +1105 public List<RundeckExecution> getRunningExecutions() throws RundeckApiException, RundeckApiLoginException { +1106 List<RundeckExecution> executions = new ArrayList<RundeckExecution>(); +1107 for (RundeckProject project : getProjects()) { +1108 executions.addAll(getRunningExecutions(project.getName())); +1109 } +1110 return executions; +1111 } +1112 +1113 /** +1114 * Get the running executions for the given project +1115 * +1116 * @param project name of the project - mandatory +1117 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1118 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +1119 * @throws RundeckApiLoginException if the login failed +1120 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) +1121 * @see #getRunningExecutions() +1122 */ +1123 public List<RundeckExecution> getRunningExecutions(String project) throws RundeckApiException, +1124 RundeckApiLoginException, IllegalArgumentException { +1125 AssertUtil.notBlank(project, "project is mandatory get all running executions !"); +1126 return new ApiCall(this).get(new ApiPathBuilder("/executions/running").param("project", project), +1127 new ListParser<RundeckExecution>(new ExecutionParser(), +1128 "result/executions/execution")); +1129 } +1130 +1131 /** +1132 * Get the executions of the given job +1133 * +1134 * @param jobId identifier of the job - mandatory +1135 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1136 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +1137 * @throws RundeckApiLoginException if the login failed +1138 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +1139 * @see #getJobExecutions(String, ExecutionStatus, Long, Long) +1140 */ +1141 public List<RundeckExecution> getJobExecutions(String jobId) throws RundeckApiException, RundeckApiLoginException, +1142 IllegalArgumentException { +1143 return getJobExecutions(jobId, (ExecutionStatus) null); +1144 } +1145 +1146 /** +1147 * Get the executions of the given job +1148 * +1149 * @param jobId identifier of the job - mandatory +1150 * @param status of the executions, see {@link ExecutionStatus} - optional (null for all) +1151 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1152 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +1153 * @throws RundeckApiLoginException if the login failed +1154 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace), or the executionStatus is +1155 * invalid +1156 * @see #getJobExecutions(String, ExecutionStatus, Long, Long) +1157 */ +1158 public List<RundeckExecution> getJobExecutions(String jobId, String status) throws RundeckApiException, +1159 RundeckApiLoginException, IllegalArgumentException { +1160 return getJobExecutions(jobId, +1161 StringUtils.isBlank(status) ? null : ExecutionStatus.valueOf(StringUtils.upperCase(status))); +1162 } +1163 +1164 /** +1165 * Get the executions of the given job +1166 * +1167 * @param jobId identifier of the job - mandatory +1168 * @param status of the executions, see {@link ExecutionStatus} - optional (null for all) +1169 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1170 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +1171 * @throws RundeckApiLoginException if the login failed +1172 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +1173 * @see #getJobExecutions(String, ExecutionStatus, Long, Long) +1174 */ +1175 public List<RundeckExecution> getJobExecutions(String jobId, ExecutionStatus status) throws RundeckApiException, +1176 RundeckApiLoginException, IllegalArgumentException { +1177 return getJobExecutions(jobId, status, null, null); +1178 } +1179 +1180 /** +1181 * Get the executions of the given job +1182 * +1183 * @param jobId identifier of the job - mandatory +1184 * @param status of the executions, see {@link ExecutionStatus} - optional (null for all) +1185 * @param max number of results to return - optional (null for all) +1186 * @param offset the 0-indexed offset for the first result to return - optional +1187 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1188 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +1189 * @throws RundeckApiLoginException if the login failed +1190 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace), or the executionStatus is +1191 * invalid +1192 * @see #getJobExecutions(String, ExecutionStatus, Long, Long) +1193 */ +1194 public List<RundeckExecution> getJobExecutions(String jobId, String status, Long max, Long offset) +1195 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +1196 return getJobExecutions(jobId, +1197 StringUtils.isBlank(status) ? null : ExecutionStatus.valueOf(StringUtils.upperCase(status)), +1198 max, +1199 offset); +1200 } +1201 +1202 /** +1203 * Get the executions of the given job +1204 * +1205 * @param jobId identifier of the job - mandatory +1206 * @param status of the executions, see {@link ExecutionStatus} - optional (null for all) +1207 * @param max number of results to return - optional (null for all) +1208 * @param offset the 0-indexed offset for the first result to return - optional +1209 * @return a {@link List} of {@link RundeckExecution} : might be empty, but won't be null +1210 * @throws RundeckApiException in case of error when calling the API (non-existent job with this ID) +1211 * @throws RundeckApiLoginException if the login failed +1212 * @throws IllegalArgumentException if the jobId is blank (null, empty or whitespace) +1213 */ +1214 public List<RundeckExecution> getJobExecutions(String jobId, ExecutionStatus status, Long max, Long offset) +1215 throws RundeckApiException, RundeckApiLoginException, IllegalArgumentException { +1216 AssertUtil.notBlank(jobId, "jobId is mandatory to get the executions of a job !"); +1217 return new ApiCall(this).get(new ApiPathBuilder("/job/", jobId, "/executions").param("status", status) +1218 .param("max", max) +1219 .param("offset", offset), +1220 new ListParser<RundeckExecution>(new ExecutionParser(), +1221 "result/executions/execution")); +1222 } +1223 +1224 /** +1225 * Get a single execution, identified by the given ID +1226 * +1227 * @param executionId identifier of the execution - mandatory +1228 * @return a {@link RundeckExecution} instance - won't be null +1229 * @throws RundeckApiException in case of error when calling the API (non-existent execution with this ID) +1230 * @throws RundeckApiLoginException if the login failed +1231 * @throws IllegalArgumentException if the executionId is null +1232 */ +1233 public RundeckExecution getExecution(Long executionId) throws RundeckApiException, RundeckApiLoginException, +1234 IllegalArgumentException { +1235 AssertUtil.notNull(executionId, "executionId is mandatory to get the details of an execution !"); +1236 return new ApiCall(this).get(new ApiPathBuilder("/execution/", executionId.toString()), +1237 new ExecutionParser("result/executions/execution")); +1238 } +1239 +1240 /** +1241 * Abort an execution (identified by the given ID). The execution should be running... +1242 * +1243 * @param executionId identifier of the execution - mandatory +1244 * @return a {@link RundeckAbort} instance - won't be null +1245 * @throws RundeckApiException in case of error when calling the API (non-existent execution with this ID) +1246 * @throws RundeckApiLoginException if the login failed +1247 * @throws IllegalArgumentException if the executionId is null +1248 */ +1249 public RundeckAbort abortExecution(Long executionId) throws RundeckApiException, RundeckApiLoginException, +1250 IllegalArgumentException { +1251 AssertUtil.notNull(executionId, "executionId is mandatory to abort an execution !"); +1252 return new ApiCall(this).get(new ApiPathBuilder("/execution/", executionId.toString(), "/abort"), +1253 new AbortParser("result/abort")); +1254 } +1255 +1256 /* +1257 * Nodes +1258 */ +1259 +1260 /** +1261 * List all nodes (for all projects) +1262 * +1263 * @return a {@link List} of {@link RundeckNode} : might be empty, but won't be null +1264 * @throws RundeckApiException in case of error when calling the API +1265 * @throws RundeckApiLoginException if the login failed +1266 */ +1267 public List<RundeckNode> getNodes() throws RundeckApiException, RundeckApiLoginException { +1268 List<RundeckNode> nodes = new ArrayList<RundeckNode>(); +1269 for (RundeckProject project : getProjects()) { +1270 nodes.addAll(getNodes(project.getName())); +1271 } +1272 return nodes; +1273 } +1274 +1275 /** +1276 * List all nodes that belongs to the given project +1277 * +1278 * @param project name of the project - mandatory +1279 * @return a {@link List} of {@link RundeckNode} : might be empty, but won't be null +1280 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +1281 * @throws RundeckApiLoginException if the login failed +1282 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) +1283 * @see #getNodes(String, Properties) +1284 */ +1285 public List<RundeckNode> getNodes(String project) throws RundeckApiException, RundeckApiLoginException, +1286 IllegalArgumentException { +1287 return getNodes(project, null); +1288 } +1289 +1290 /** +1291 * List nodes that belongs to the given project +1292 * +1293 * @param project name of the project - mandatory +1294 * @param nodeFilters for filtering the nodes - optional. See {@link NodeFiltersBuilder} +1295 * @return a {@link List} of {@link RundeckNode} : might be empty, but won't be null +1296 * @throws RundeckApiException in case of error when calling the API (non-existent project with this name) +1297 * @throws RundeckApiLoginException if the login failed +1298 * @throws IllegalArgumentException if the project is blank (null, empty or whitespace) +1299 */ +1300 public List<RundeckNode> getNodes(String project, Properties nodeFilters) throws RundeckApiException, +1301 RundeckApiLoginException, IllegalArgumentException { +1302 AssertUtil.notBlank(project, "project is mandatory to get all nodes !"); +1303 return new ApiCall(this).get(new ApiPathBuilder("/resources").param("project", project) +1304 .nodeFilters(nodeFilters), +1305 new ListParser<RundeckNode>(new NodeParser(), "project/node")); +1306 } +1307 +1308 /** +1309 * Get the definition of a single node +1310 * +1311 * @param name of the node - mandatory +1312 * @param project name of the project - mandatory +1313 * @return a {@link RundeckNode} instance - won't be null +1314 * @throws RundeckApiException in case of error when calling the API (non-existent name or project with this name) +1315 * @throws RundeckApiLoginException if the login failed +1316 * @throws IllegalArgumentException if the name or project is blank (null, empty or whitespace) +1317 */ +1318 public RundeckNode getNode(String name, String project) throws RundeckApiException, RundeckApiLoginException, +1319 IllegalArgumentException { +1320 AssertUtil.notBlank(name, "the name of the node is mandatory to get a node !"); +1321 AssertUtil.notBlank(project, "project is mandatory to get a node !"); +1322 return new ApiCall(this).get(new ApiPathBuilder("/resource/", name).param("project", project), +1323 new NodeParser("project/node")); +1324 } +1325 +1326 /* +1327 * System Info +1328 */ +1329 +1330 /** +1331 * Get system informations about the RunDeck server +1332 * +1333 * @return a {@link RundeckSystemInfo} instance - won't be null +1334 * @throws RundeckApiException in case of error when calling the API +1335 * @throws RundeckApiException if the login failed +1336 */ +1337 public RundeckSystemInfo getSystemInfo() throws RundeckApiException, RundeckApiLoginException { +1338 return new ApiCall(this).get(new ApiPathBuilder("/system/info"), new SystemInfoParser("result/system")); +1339 } +1340 +1341 public String getUrl() { +1342 return url; +1343 } +1344 +1345 public String getLogin() { +1346 return login; +1347 } +1348 +1349 public String getPassword() { +1350 return password; +1351 } +1352 +1353 @Override +1354 public String toString() { +1355 return "RundeckClient [url=" + url + ", login=" + login + ", password=" + password + "]"; +1356 } +1357 +1358 @Override +1359 public int hashCode() { +1360 final int prime = 31; +1361 int result = 1; +1362 result = prime * result + ((login == null) ? 0 : login.hashCode()); +1363 result = prime * result + ((password == null) ? 0 : password.hashCode()); +1364 result = prime * result + ((url == null) ? 0 : url.hashCode()); +1365 return result; +1366 } +1367 +1368 @Override +1369 public boolean equals(Object obj) { +1370 if (this == obj) +1371 return true; +1372 if (obj == null) +1373 return false; +1374 if (getClass() != obj.getClass()) +1375 return false; +1376 RundeckClient other = (RundeckClient) obj; +1377 if (login == null) { +1378 if (other.login != null) +1379 return false; +1380 } else if (!login.equals(other.login)) +1381 return false; +1382 if (password == null) { +1383 if (other.password != null) +1384 return false; +1385 } else if (!password.equals(other.password)) +1386 return false; +1387 if (url == null) { +1388 if (other.url != null) +1389 return false; +1390 } else if (!url.equals(other.url)) +1391 return false; +1392 return true; +1393 } +1394 +1395 }
    diff --git a/xref/org/rundeck/api/domain/RundeckJobsImportMethod.html b/xref/org/rundeck/api/domain/RundeckJobsImportMethod.html new file mode 100644 index 0000000..4d7d288 --- /dev/null +++ b/xref/org/rundeck/api/domain/RundeckJobsImportMethod.html @@ -0,0 +1,39 @@ + + + + +RundeckJobsImportMethod xref + + + +
    +
    +1   /*
    +2    * Copyright 2011 Vincent Behar
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.rundeck.api.domain;
    +17  
    +18  /**
    +19   * The behavior when importing jobs (which may already exist).
    +20   * 
    +21   * @author Vincent Behar
    +22   */
    +23  public enum RundeckJobsImportMethod {
    +24      CREATE, UPDATE, SKIP;
    +25  }
    +
    +
    + + diff --git a/xref/org/rundeck/api/domain/RundeckJobsImportResult.html b/xref/org/rundeck/api/domain/RundeckJobsImportResult.html new file mode 100644 index 0000000..0f20e88 --- /dev/null +++ b/xref/org/rundeck/api/domain/RundeckJobsImportResult.html @@ -0,0 +1,120 @@ + + + + +RundeckJobsImportResult xref + + + +
    +
    +1   /*
    +2    * Copyright 2011 Vincent Behar
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.rundeck.api.domain;
    +17  
    +18  import java.io.Serializable;
    +19  import java.util.ArrayList;
    +20  import java.util.HashMap;
    +21  import java.util.List;
    +22  import java.util.Map;
    +23  
    +24  /**
    +25   * Result of importing some jobs into RunDeck
    +26   * 
    +27   * @author Vincent Behar
    +28   */
    +29  public class RundeckJobsImportResult implements Serializable {
    +30  
    +31      private static final long serialVersionUID = 1L;
    +32  
    +33      private final List<RundeckJob> succeededJobs = new ArrayList<RundeckJob>();
    +34  
    +35      private final List<RundeckJob> skippedJobs = new ArrayList<RundeckJob>();
    +36  
    +37      private final Map<RundeckJob, String> failedJobs = new HashMap<RundeckJob, String>();
    +38  
    +39      public void addSucceededJob(RundeckJob job) {
    +40          succeededJobs.add(job);
    +41      }
    +42  
    +43      public void addSkippedJob(RundeckJob job) {
    +44          skippedJobs.add(job);
    +45      }
    +46  
    +47      public void addFailedJob(RundeckJob job, String errorMessage) {
    +48          failedJobs.put(job, errorMessage);
    +49      }
    +50  
    +51      public List<RundeckJob> getSucceededJobs() {
    +52          return succeededJobs;
    +53      }
    +54  
    +55      public List<RundeckJob> getSkippedJobs() {
    +56          return skippedJobs;
    +57      }
    +58  
    +59      public Map<RundeckJob, String> getFailedJobs() {
    +60          return failedJobs;
    +61      }
    +62  
    +63      @Override
    +64      public String toString() {
    +65          return "RundeckJobsImportResult [succeededJobs=" + succeededJobs + ", skippedJobs=" + skippedJobs
    +66                 + ", failedJobs=" + failedJobs + "]";
    +67      }
    +68  
    +69      @Override
    +70      public int hashCode() {
    +71          final int prime = 31;
    +72          int result = 1;
    +73          result = prime * result + ((failedJobs == null) ? 0 : failedJobs.hashCode());
    +74          result = prime * result + ((skippedJobs == null) ? 0 : skippedJobs.hashCode());
    +75          result = prime * result + ((succeededJobs == null) ? 0 : succeededJobs.hashCode());
    +76          return result;
    +77      }
    +78  
    +79      @Override
    +80      public boolean equals(Object obj) {
    +81          if (this == obj)
    +82              return true;
    +83          if (obj == null)
    +84              return false;
    +85          if (getClass() != obj.getClass())
    +86              return false;
    +87          RundeckJobsImportResult other = (RundeckJobsImportResult) obj;
    +88          if (failedJobs == null) {
    +89              if (other.failedJobs != null)
    +90                  return false;
    +91          } else if (!failedJobs.equals(other.failedJobs))
    +92              return false;
    +93          if (skippedJobs == null) {
    +94              if (other.skippedJobs != null)
    +95                  return false;
    +96          } else if (!skippedJobs.equals(other.skippedJobs))
    +97              return false;
    +98          if (succeededJobs == null) {
    +99              if (other.succeededJobs != null)
    +100                 return false;
    +101         } else if (!succeededJobs.equals(other.succeededJobs))
    +102             return false;
    +103         return true;
    +104     }
    +105 
    +106 }
    +
    +
    + + diff --git a/xref/org/rundeck/api/domain/package-frame.html b/xref/org/rundeck/api/domain/package-frame.html index 3fddc80..e067c26 100644 --- a/xref/org/rundeck/api/domain/package-frame.html +++ b/xref/org/rundeck/api/domain/package-frame.html @@ -1,45 +1,51 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.domain - - - - -

    - org.rundeck.api.domain -

    - -

    Classes

    - - - - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.domain + + + + +

    + org.rundeck.api.domain +

    + +

    Classes

    + + + + \ No newline at end of file diff --git a/xref/org/rundeck/api/domain/package-summary.html b/xref/org/rundeck/api/domain/package-summary.html index 2b2fbfd..b55565b 100644 --- a/xref/org/rundeck/api/domain/package-summary.html +++ b/xref/org/rundeck/api/domain/package-summary.html @@ -1,102 +1,112 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.domain - - - -
    - -
    -
    - -
    - -

    Package org.rundeck.api.domain

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary
    - AbortStatus -
    - ExecutionStatus -
    - RundeckAbort -
    - RundeckExecution -
    - RundeckJob -
    - RundeckNode -
    - RundeckProject -
    - RundeckSystemInfo -
    - -
    - -
    -
    - -
    -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.domain + + + +
    + +
    +
    + +
    + +

    Package org.rundeck.api.domain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Class Summary
    + AbortStatus +
    + ExecutionStatus +
    + RundeckAbort +
    + RundeckExecution +
    + RundeckJob +
    + RundeckJobsImportMethod +
    + RundeckJobsImportResult +
    + RundeckNode +
    + RundeckProject +
    + RundeckSystemInfo +
    + +
    + +
    +
    + +
    +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref/org/rundeck/api/package-frame.html b/xref/org/rundeck/api/package-frame.html index b206ac7..eabe74b 100644 --- a/xref/org/rundeck/api/package-frame.html +++ b/xref/org/rundeck/api/package-frame.html @@ -1,42 +1,45 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api - - - - -

    - org.rundeck.api -

    - -

    Classes

    - - - - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api + + + + +

    + org.rundeck.api +

    + +

    Classes

    + + + + \ No newline at end of file diff --git a/xref/org/rundeck/api/package-summary.html b/xref/org/rundeck/api/package-summary.html index 5743b4a..2865b34 100644 --- a/xref/org/rundeck/api/package-summary.html +++ b/xref/org/rundeck/api/package-summary.html @@ -1,97 +1,102 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api - - - -
    - -
    -
    - -
    - -

    Package org.rundeck.api

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary
    - ApiCall -
    - ApiPathBuilder -
    - NodeFiltersBuilder -
    - OptionsBuilder -
    - RundeckApiException -
    - RundeckApiLoginException -
    - RundeckClient -
    - -
    - -
    -
    - -
    -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api + + + +
    + +
    +
    + +
    + +

    Package org.rundeck.api

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Class Summary
    + ApiCall +
    + ApiPathBuilder +
    + FileType +
    + NodeFiltersBuilder +
    + OptionsBuilder +
    + RundeckApiException +
    + RundeckApiLoginException +
    + RundeckClient +
    + +
    + +
    +
    + +
    +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref/org/rundeck/api/parser/JobsImportResultParser.html b/xref/org/rundeck/api/parser/JobsImportResultParser.html new file mode 100644 index 0000000..99b2a1e --- /dev/null +++ b/xref/org/rundeck/api/parser/JobsImportResultParser.html @@ -0,0 +1,94 @@ + + + + +JobsImportResultParser xref + + + +
    +
    +1   /*
    +2    * Copyright 2011 Vincent Behar
    +3    *
    +4    * Licensed under the Apache License, Version 2.0 (the "License");
    +5    * you may not use this file except in compliance with the License.
    +6    * You may obtain a copy of the License at
    +7    *
    +8    *     http://www.apache.org/licenses/LICENSE-2.0
    +9    *
    +10   * Unless required by applicable law or agreed to in writing, software
    +11   * distributed under the License is distributed on an "AS IS" BASIS,
    +12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +13   * See the License for the specific language governing permissions and
    +14   * limitations under the License.
    +15   */
    +16  package org.rundeck.api.parser;
    +17  
    +18  import java.util.List;
    +19  import org.dom4j.Node;
    +20  import org.rundeck.api.domain.RundeckJob;
    +21  import org.rundeck.api.domain.RundeckJobsImportResult;
    +22  
    +23  /**
    +24   * Parser for a single {@link RundeckJobsImportResult}
    +25   * 
    +26   * @author Vincent Behar
    +27   */
    +28  public class JobsImportResultParser implements XmlNodeParser<RundeckJobsImportResult> {
    +29  
    +30      private String xpath;
    +31  
    +32      public JobsImportResultParser() {
    +33          super();
    +34      }
    +35  
    +36      /**
    +37       * @param xpath of the result element if it is not the root node
    +38       */
    +39      public JobsImportResultParser(String xpath) {
    +40          super();
    +41          this.xpath = xpath;
    +42      }
    +43  
    +44      @Override
    +45      public RundeckJobsImportResult parseXmlNode(Node node) {
    +46          Node resultNode = xpath != null ? node.selectSingleNode(xpath) : node;
    +47  
    +48          RundeckJobsImportResult result = new RundeckJobsImportResult();
    +49  
    +50          @SuppressWarnings("unchecked")
    +51          List<Node> succeededJobsNodes = resultNode.selectNodes("succeeded/job");
    +52          if (succeededJobsNodes != null) {
    +53              for (Node succeededJobNode : succeededJobsNodes) {
    +54                  RundeckJob job = new JobParser().parseXmlNode(succeededJobNode);
    +55                  result.addSucceededJob(job);
    +56              }
    +57          }
    +58  
    +59          @SuppressWarnings("unchecked")
    +60          List<Node> skippedJobsNodes = resultNode.selectNodes("skipped/job");
    +61          if (skippedJobsNodes != null) {
    +62              for (Node skippedJobNode : skippedJobsNodes) {
    +63                  RundeckJob job = new JobParser().parseXmlNode(skippedJobNode);
    +64                  result.addSkippedJob(job);
    +65              }
    +66          }
    +67  
    +68          @SuppressWarnings("unchecked")
    +69          List<Node> failedJobsNodes = resultNode.selectNodes("failed/job");
    +70          if (failedJobsNodes != null) {
    +71              for (Node failedJobNode : failedJobsNodes) {
    +72                  RundeckJob job = new JobParser().parseXmlNode(failedJobNode);
    +73                  result.addFailedJob(job, failedJobNode.valueOf("error"));
    +74              }
    +75          }
    +76  
    +77          return result;
    +78      }
    +79  
    +80  }
    +
    +
    + + diff --git a/xref/org/rundeck/api/parser/package-frame.html b/xref/org/rundeck/api/parser/package-frame.html index e23efe3..6a4ae6f 100644 --- a/xref/org/rundeck/api/parser/package-frame.html +++ b/xref/org/rundeck/api/parser/package-frame.html @@ -1,51 +1,54 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.parser - - - - -

    - org.rundeck.api.parser -

    - -

    Classes

    - - - - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.parser + + + + +

    + org.rundeck.api.parser +

    + +

    Classes

    + + + + \ No newline at end of file diff --git a/xref/org/rundeck/api/parser/package-summary.html b/xref/org/rundeck/api/parser/package-summary.html index 140b430..49d0367 100644 --- a/xref/org/rundeck/api/parser/package-summary.html +++ b/xref/org/rundeck/api/parser/package-summary.html @@ -1,112 +1,117 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.parser - - - -
    - -
    -
    - -
    - -

    Package org.rundeck.api.parser

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary
    - AbortParser -
    - ExecutionParser -
    - JobParser -
    - ListParser -
    - NodeParser -
    - ParserHelper -
    - ProjectParser -
    - StringParser -
    - SystemInfoParser -
    - XmlNodeParser -
    - -
    - -
    -
    - -
    -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.parser + + + +
    + +
    +
    + +
    + +

    Package org.rundeck.api.parser

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Class Summary
    + AbortParser +
    + ExecutionParser +
    + JobParser +
    + JobsImportResultParser +
    + ListParser +
    + NodeParser +
    + ParserHelper +
    + ProjectParser +
    + StringParser +
    + SystemInfoParser +
    + XmlNodeParser +
    + +
    + +
    +
    + +
    +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref/org/rundeck/api/util/package-frame.html b/xref/org/rundeck/api/util/package-frame.html index fd6a6e9..d77efbc 100644 --- a/xref/org/rundeck/api/util/package-frame.html +++ b/xref/org/rundeck/api/util/package-frame.html @@ -1,27 +1,27 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.util - - - - -

    - org.rundeck.api.util -

    - -

    Classes

    - - - - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.util + + + + +

    + org.rundeck.api.util +

    + +

    Classes

    + + + + \ No newline at end of file diff --git a/xref/org/rundeck/api/util/package-summary.html b/xref/org/rundeck/api/util/package-summary.html index fe89302..900aa7e 100644 --- a/xref/org/rundeck/api/util/package-summary.html +++ b/xref/org/rundeck/api/util/package-summary.html @@ -1,72 +1,72 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference Package org.rundeck.api.util - - - -
    - -
    -
    - -
    - -

    Package org.rundeck.api.util

    - - - - - - - - - - - - - - - -
    Class Summary
    - AssertUtil -
    - ParametersUtil -
    - -
    - -
    -
    - -
    -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference Package org.rundeck.api.util + + + +
    + +
    +
    + +
    + +

    Package org.rundeck.api.util

    + + + + + + + + + + + + + + + +
    Class Summary
    + AssertUtil +
    + ParametersUtil +
    + +
    + +
    +
    + +
    +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref/overview-frame.html b/xref/overview-frame.html index 6eabbfb..cc84782 100644 --- a/xref/overview-frame.html +++ b/xref/overview-frame.html @@ -1,34 +1,34 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference - - - - -

    - All Classes -

    - -

    Packages

    - - - - - - + + + + + + RunDeck API - Java Client 1.1 Reference + + + + +

    + All Classes +

    + +

    Packages

    + + + + + + diff --git a/xref/overview-summary.html b/xref/overview-summary.html index e276b1d..86d028d 100644 --- a/xref/overview-summary.html +++ b/xref/overview-summary.html @@ -1,79 +1,79 @@ - - - - - - RunDeck API - Java Client 1.1-SNAPSHOT Reference - - - -
    -
      -
    • Overview
    • -
    • Package
    • -
    -
    -
    - -
    - -

    RunDeck API - Java Client 1.1-SNAPSHOT Reference

    - - - - - - - - - - - - - - - - - - - - - -
    Packages
    - org.rundeck.api -
    - org.rundeck.api.domain -
    - org.rundeck.api.parser -
    - org.rundeck.api.util -
    - -
    -
      -
    • Overview
    • -
    • Package
    • -
    -
    -
    - -
    - -
    - Copyright © 2011. All Rights Reserved. - + + + + + + RunDeck API - Java Client 1.1 Reference + + + +
    +
      +
    • Overview
    • +
    • Package
    • +
    +
    +
    + +
    + +

    RunDeck API - Java Client 1.1 Reference

    + + + + + + + + + + + + + + + + + + + + + +
    Packages
    + org.rundeck.api +
    + org.rundeck.api.domain +
    + org.rundeck.api.parser +
    + org.rundeck.api.util +
    + +
    +
      +
    • Overview
    • +
    • Package
    • +
    +
    +
    + +
    + +
    + Copyright © 2011. All Rights Reserved. + \ No newline at end of file diff --git a/xref/stylesheet.css b/xref/stylesheet.css index bebb662..00e6114 100644 --- a/xref/stylesheet.css +++ b/xref/stylesheet.css @@ -1,116 +1,116 @@ -/* Javadoc style sheet */ -/* Define colors, fonts and other style attributes here to override the defaults */ -body { - background-color: #fff; - font-family: Arial, Helvetica, sans-serif; -} - -a:link { - color: #00f; -} -a:visited { - color: #00a; -} - -a:active, a:hover { - color: #f30 !important; -} - -ul, li { - list-style-type:none; - margin:0; - padding:0; -} - -table td { - padding: 3px; - border: 1px solid #000; -} -table { - width:100%; - border: 1px solid #000; - border-collapse: collapse; -} - -div.overview { - background-color:#ddd; - padding: 4px 4px 4px 0; -} -div.overview li, div.framenoframe li { - display: inline; -} -div.framenoframe { - text-align: center; - font-size: x-small; -} -div.framenoframe li { - margin: 0 3px 0 3px; -} -div.overview li { - margin:3px 3px 0 3px; - padding: 4px; -} -li.selected { - background-color:#888; - color: #fff; - font-weight: bold; -} - -table.summary { - margin-bottom: 20px; -} -table.summary td, table.summary th { - font-weight: bold; - text-align: left; - padding: 3px; -} -table.summary th { - background-color:#036; - color: #fff; -} -table.summary td { - background-color:#eee; - border: 1px solid black; -} - -em { - color: #A00; -} -em.comment { - color: #390; -} -.string { - color: #009; -} -div#footer { - text-align:center; -} -#overview { - padding:2px; -} - -hr { - height: 1px; - color: #000; -} - -/* JXR style sheet */ -.jxr_comment -{ - color: #390; -} - -.jxr_javadoccomment -{ - color: #A00; -} - -.jxr_string -{ - color: #009; -} - -.jxr_keyword -{ - color: #000; -} +/* Javadoc style sheet */ +/* Define colors, fonts and other style attributes here to override the defaults */ +body { + background-color: #fff; + font-family: Arial, Helvetica, sans-serif; +} + +a:link { + color: #00f; +} +a:visited { + color: #00a; +} + +a:active, a:hover { + color: #f30 !important; +} + +ul, li { + list-style-type:none; + margin:0; + padding:0; +} + +table td { + padding: 3px; + border: 1px solid #000; +} +table { + width:100%; + border: 1px solid #000; + border-collapse: collapse; +} + +div.overview { + background-color:#ddd; + padding: 4px 4px 4px 0; +} +div.overview li, div.framenoframe li { + display: inline; +} +div.framenoframe { + text-align: center; + font-size: x-small; +} +div.framenoframe li { + margin: 0 3px 0 3px; +} +div.overview li { + margin:3px 3px 0 3px; + padding: 4px; +} +li.selected { + background-color:#888; + color: #fff; + font-weight: bold; +} + +table.summary { + margin-bottom: 20px; +} +table.summary td, table.summary th { + font-weight: bold; + text-align: left; + padding: 3px; +} +table.summary th { + background-color:#036; + color: #fff; +} +table.summary td { + background-color:#eee; + border: 1px solid black; +} + +em { + color: #A00; +} +em.comment { + color: #390; +} +.string { + color: #009; +} +div#footer { + text-align:center; +} +#overview { + padding:2px; +} + +hr { + height: 1px; + color: #000; +} + +/* JXR style sheet */ +.jxr_comment +{ + color: #390; +} + +.jxr_javadoccomment +{ + color: #A00; +} + +.jxr_string +{ + color: #009; +} + +.jxr_keyword +{ + color: #000; +}