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,
|
||||
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)
|
||||
.post(new ApiPathBuilder("/projects").xml(
|
||||
projectDocument(projectName, configuration)
|
||||
|
@ -359,6 +359,26 @@ public class RundeckClient implements Serializable {
|
|||
: "/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) {
|
||||
RundeckProject project = new RundeckProject();
|
||||
|
|
|
@ -91,6 +91,17 @@ public class RundeckClientTest {
|
|||
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
|
||||
@Betamax(tape = "get_history")
|
||||
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