mirror of
https://github.com/Fishwaldo/rundeck-api-java-client.git
synced 2025-07-06 21:18:18 +00:00
Add get Project/config endpoint
This commit is contained in:
parent
b571c2a5be
commit
92eb7acc15
3 changed files with 56 additions and 1 deletions
|
@ -349,7 +349,7 @@ public class RundeckClient implements Serializable {
|
||||||
RundeckApiException, RundeckApiLoginException,
|
RundeckApiException, RundeckApiLoginException,
|
||||||
RundeckApiTokenException, IllegalArgumentException {
|
RundeckApiTokenException, IllegalArgumentException {
|
||||||
|
|
||||||
AssertUtil.notBlank(projectName, "projectName is mandatory to get the details of a project !");
|
AssertUtil.notBlank(projectName, "projectName is mandatory to create a project !");
|
||||||
return new ApiCall(this)
|
return new ApiCall(this)
|
||||||
.post(new ApiPathBuilder("/projects").xml(
|
.post(new ApiPathBuilder("/projects").xml(
|
||||||
projectDocument(projectName, configuration)
|
projectDocument(projectName, configuration)
|
||||||
|
@ -359,6 +359,26 @@ public class RundeckClient implements Serializable {
|
||||||
: "/project"
|
: "/project"
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Return the configuration of a project
|
||||||
|
*
|
||||||
|
* @param projectName name of the project - mandatory
|
||||||
|
*
|
||||||
|
* @return a {@link ProjectConfig} instance - won't be null
|
||||||
|
*
|
||||||
|
* @throws RundeckApiException in case of error when calling the API (non-existent project with this name)
|
||||||
|
* @throws RundeckApiLoginException if the login fails (in case of login-based authentication)
|
||||||
|
* @throws RundeckApiTokenException if the token is invalid (in case of token-based authentication)
|
||||||
|
* @throws IllegalArgumentException if the projectName is blank (null, empty or whitespace)
|
||||||
|
*/
|
||||||
|
public ProjectConfig getProjectConfig(String projectName) throws
|
||||||
|
RundeckApiException, RundeckApiLoginException,
|
||||||
|
RundeckApiTokenException, IllegalArgumentException {
|
||||||
|
|
||||||
|
AssertUtil.notBlank(projectName, "projectName is mandatory to get the config of a project !");
|
||||||
|
return new ApiCall(this)
|
||||||
|
.get(new ApiPathBuilder("/project/", projectName, "/config"), new ProjectConfigParser("/config"));
|
||||||
|
}
|
||||||
|
|
||||||
private Document projectDocument(String projectName, Map<String, String> configuration) {
|
private Document projectDocument(String projectName, Map<String, String> configuration) {
|
||||||
RundeckProject project = new RundeckProject();
|
RundeckProject project = new RundeckProject();
|
||||||
|
|
|
@ -91,6 +91,17 @@ public class RundeckClientTest {
|
||||||
Assert.assertNotNull(project.getProjectConfig());
|
Assert.assertNotNull(project.getProjectConfig());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Betamax(tape = "get_project_configv11")
|
||||||
|
public void getProjectConfig() throws Exception {
|
||||||
|
ProjectConfig config = createClient(TEST_TOKEN_6, 11).getProjectConfig("monkey1");
|
||||||
|
Assert.assertNotNull(config);
|
||||||
|
Assert.assertNotNull(config.getProperties());
|
||||||
|
Assert.assertEquals(9,config.getProperties().size());
|
||||||
|
Assert.assertEquals("monkey1", config.getProperties().get("project.name"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Betamax(tape = "get_history")
|
@Betamax(tape = "get_history")
|
||||||
public void getHistory() throws Exception {
|
public void getHistory() throws Exception {
|
||||||
|
|
24
src/test/resources/betamax/tapes/get_project_configv11.yaml
Normal file
24
src/test/resources/betamax/tapes/get_project_configv11.yaml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
!tape
|
||||||
|
name: get_project_configv11
|
||||||
|
interactions:
|
||||||
|
- recorded: 2014-02-27T20:35:47.282Z
|
||||||
|
request:
|
||||||
|
method: GET
|
||||||
|
uri: http://rundeck.local:4440/api/11/project/monkey1/config
|
||||||
|
headers:
|
||||||
|
Accept: text/xml
|
||||||
|
Host: rundeck.local:4440
|
||||||
|
Proxy-Connection: Keep-Alive
|
||||||
|
User-Agent: RunDeck API Java Client 11
|
||||||
|
X-RunDeck-Auth-Token: Do4d3NUD5DKk21DR4sNK755RcPk618vn
|
||||||
|
response:
|
||||||
|
status: 200
|
||||||
|
headers:
|
||||||
|
Content-Type: application/xml;charset=UTF-8
|
||||||
|
Expires: Thu, 01 Jan 1970 00:00:00 GMT
|
||||||
|
Server: Jetty(7.6.0.v20120127)
|
||||||
|
Set-Cookie: JSESSIONID=bo96n10n268hsd1gi9y67nah;Path=/
|
||||||
|
X-Rundeck-API-Version: '11'
|
||||||
|
X-Rundeck-API-XML-Response-Wrapper: 'false'
|
||||||
|
body: !!binary |-
|
||||||
|
PGNvbmZpZz4KICA8cHJvcGVydHkga2V5PSdwcm9qZWN0Lm5hbWUnIHZhbHVlPSdtb25rZXkxJyAvPgogIDxwcm9wZXJ0eSBrZXk9J3Byb2plY3Quc3NoLWF1dGhlbnRpY2F0aW9uJyB2YWx1ZT0ncHJpdmF0ZUtleScgLz4KICA8cHJvcGVydHkga2V5PSdzZXJ2aWNlLk5vZGVFeGVjdXRvci5kZWZhdWx0LnByb3ZpZGVyJyB2YWx1ZT0nanNjaC1zc2gnIC8+CiAgPHByb3BlcnR5IGtleT0ncmVzb3VyY2VzLnNvdXJjZS4xLmNvbmZpZy5pbmNsdWRlU2VydmVyTm9kZScgdmFsdWU9J3RydWUnIC8+CiAgPHByb3BlcnR5IGtleT0ncmVzb3VyY2VzLnNvdXJjZS4xLmNvbmZpZy5nZW5lcmF0ZUZpbGVBdXRvbWF0aWNhbGx5JyB2YWx1ZT0ndHJ1ZScgLz4KICA8cHJvcGVydHkga2V5PSdyZXNvdXJjZXMuc291cmNlLjEuY29uZmlnLmZpbGUnIHZhbHVlPScvVXNlcnMvZ3JlZy9ydW5kZWNrMmQvcHJvamVjdHMvbW9ua2V5MS9ldGMvcmVzb3VyY2VzLnhtbCcgLz4KICA8cHJvcGVydHkga2V5PSdwcm9qZWN0LnNzaC1rZXlwYXRoJyB2YWx1ZT0nL1VzZXJzL2dyZWcvLnNzaC9pZF9yc2EnIC8+CiAgPHByb3BlcnR5IGtleT0nc2VydmljZS5GaWxlQ29waWVyLmRlZmF1bHQucHJvdmlkZXInIHZhbHVlPSdqc2NoLXNjcCcgLz4KICA8cHJvcGVydHkga2V5PSdyZXNvdXJjZXMuc291cmNlLjEudHlwZScgdmFsdWU9J2ZpbGUnIC8+CjwvY29uZmlnPg==
|
Loading…
Add table
Add a link
Reference in a new issue