Add tests for api v11 responses

This commit is contained in:
Greg Schueler 2014-11-10 12:09:06 -08:00
parent 1f2ffeebac
commit e98a3a0ad9
8 changed files with 377 additions and 0 deletions

View file

@ -275,7 +275,47 @@ public class RundeckClientTest {
}
Assert.assertEquals(Arrays.asList("bob"), names);
}
@Test
@Betamax(tape="get_execution")
public void getExecution() throws Exception{
RundeckClient client = createClient(TEST_TOKEN_7, 5);
RundeckExecution execution = client.getExecution(945L);
Assert.assertEquals("echo test trigger_adhoc_command", execution.getDescription());
Assert.assertEquals("2 seconds", execution.getDuration());
Assert.assertEquals("test", execution.getProject());
Assert.assertEquals("admin", execution.getStartedBy());
Assert.assertEquals(null, execution.getJob());
Assert.assertEquals(null, execution.getAbortedBy());
}
@Test
@Betamax(tape="get_execution_v11")
public void getExecution_v11() throws Exception{
RundeckClient client = createClient(TEST_TOKEN_7, 11);
RundeckExecution execution = client.getExecution(945L);
Assert.assertEquals("echo test trigger_adhoc_command", execution.getDescription());
Assert.assertEquals("2 seconds", execution.getDuration());
Assert.assertEquals("test", execution.getProject());
Assert.assertEquals("admin", execution.getStartedBy());
Assert.assertEquals(null, execution.getJob());
Assert.assertEquals(null, execution.getAbortedBy());
}
/**
* Test incorrect <result> wrapper is handled correctly
* @throws Exception
*/
@Test
@Betamax(tape="get_execution_v11_buggy")
public void getExecution_v11_buggy() throws Exception{
RundeckClient client = createClient(TEST_TOKEN_7, 11);
RundeckExecution execution = client.getExecution(945L);
Assert.assertEquals("echo test trigger_adhoc_command", execution.getDescription());
Assert.assertEquals("2 seconds", execution.getDuration());
Assert.assertEquals("test", execution.getProject());
Assert.assertEquals("admin", execution.getStartedBy());
Assert.assertEquals(null, execution.getJob());
Assert.assertEquals(null, execution.getAbortedBy());
}
@Test
@Betamax(tape = "get_executions",
mode = TapeMode.READ_ONLY,
@ -634,6 +674,11 @@ public class RundeckClientTest {
Assert.assertEquals(RundeckExecution.ExecutionStatus.RUNNING, test.getStatus());
}
/**
* API v11 request to trigger job, with expected xml response without <result> wrapper
* @throws Exception
*/
@Test
@Betamax(tape = "trigger_job_basic_v11")
public void triggerJobBasic_v11() throws Exception {
@ -730,6 +775,43 @@ public class RundeckClientTest {
Assert.assertEquals(RundeckExecution.ExecutionStatus.SUCCEEDED, test.getStatus());
}
@Test
@Betamax(tape = "trigger_adhoc_command_v11_buggy")
public void triggerAdhocCommand_v11_buggy() throws Exception {
RundeckClient client = createClient(TEST_TOKEN_7, 11);
final RundeckExecution test
= client.triggerAdhocCommand(RunAdhocCommandBuilder.builder()
.setProject("test")
.setCommand("echo test trigger_adhoc_command")
.build());
Assert.assertEquals((Long) 945L, test.getId());
Assert.assertEquals(null, test.getArgstring());
Assert.assertEquals(null, test.getAbortedBy());
Assert.assertEquals("echo test trigger_adhoc_command", test.getDescription());
Assert.assertEquals("admin", test.getStartedBy());
Assert.assertEquals(RundeckExecution.ExecutionStatus.RUNNING, test.getStatus());
}
@Test
@Betamax(tape = "trigger_adhoc_command_v11")
public void triggerAdhocCommand_v11() throws Exception {
RundeckClient client = createClient(TEST_TOKEN_7, 11);
final RundeckExecution test
= client.triggerAdhocCommand(RunAdhocCommandBuilder.builder()
.setProject("test")
.setCommand("echo test trigger_adhoc_command")
.build());
Assert.assertEquals((Long) 946L, test.getId());
Assert.assertEquals(null, test.getArgstring());
Assert.assertEquals(null, test.getAbortedBy());
Assert.assertEquals("echo test trigger_adhoc_command", test.getDescription());
Assert.assertEquals("admin", test.getStartedBy());
Assert.assertEquals(RundeckExecution.ExecutionStatus.RUNNING, test.getStatus());
}
@Test
@Betamax(tape = "trigger_adhoc_command_as_user")
@ -794,6 +876,54 @@ public class RundeckClientTest {
Assert.assertEquals(RundeckExecution.ExecutionStatus.RUNNING, test.getStatus());
}
/**
* Handle incorrect <result> wrapper for v11 response
* @throws Exception
*/
@Test
@Betamax(tape = "trigger_adhoc_script_v11_buggy")
public void triggerAdhocScript_v11_buggy() throws Exception {
RundeckClient client = createClient(TEST_TOKEN_7, 11);
String script = "#!/bin/bash\n" +
"echo test trigger_adhoc_script\n";
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(script.getBytes());
final RundeckExecution test
= client.triggerAdhocScript(RunAdhocScriptBuilder.builder().setProject("test").setScript
(byteArrayInputStream).build());
Assert.assertEquals((Long) 947L, test.getId());
Assert.assertEquals(null, test.getArgstring());
Assert.assertEquals(null, test.getAbortedBy());
Assert.assertEquals("#!/bin/bash\necho test trigger_adhoc_script", test.getDescription());
Assert.assertEquals("admin", test.getStartedBy());
Assert.assertEquals(RundeckExecution.ExecutionStatus.RUNNING, test.getStatus());
}
/**
* Handle v11 response without <result> wrapper
* @throws Exception
*/
@Test
@Betamax(tape = "trigger_adhoc_script_v11")
public void triggerAdhocScript_v11() throws Exception {
RundeckClient client = createClient(TEST_TOKEN_7, 11);
String script = "#!/bin/bash\n" +
"echo test trigger_adhoc_script\n";
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(script.getBytes());
final RundeckExecution test
= client.triggerAdhocScript(RunAdhocScriptBuilder.builder().setProject("test").setScript
(byteArrayInputStream).build());
Assert.assertEquals((Long) 948L, test.getId());
Assert.assertEquals(null, test.getArgstring());
Assert.assertEquals(null, test.getAbortedBy());
Assert.assertEquals("#!/bin/bash\necho test trigger_adhoc_script", test.getDescription());
Assert.assertEquals("admin", test.getStartedBy());
Assert.assertEquals(RundeckExecution.ExecutionStatus.RUNNING, test.getStatus());
}
@Test
@Betamax(tape = "trigger_adhoc_script_as_user")
public void triggerAdhocScriptAsUser() throws Exception {

View file

@ -0,0 +1,25 @@
!tape
name: get_execution
interactions:
- recorded: 2014-11-10T19:43:41.415Z
request:
method: GET
uri: http://rundeck.local:4440/api/5/execution/945
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 5
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
response:
status: 200
headers:
Content-Type: text/xml;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Server: Jetty(7.6.0.v20120127)
Set-Cookie: JSESSIONID=1x4pkxxmmforonss2ga8ylvdc;Path=/
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'true'
body: "<result success='true' apiversion='12'>\n <executions count='1'>\n <execution id='945' href='http://dignan:4440/execution/follow/945' status='succeeded' project='test'>\n <user>admin</user>\n <date-started unixtime='1415647116739'>2014-11-10T19:18:36Z</date-started>\n\
\ <date-ended unixtime='1415647118931'>2014-11-10T19:18:38Z</date-ended>\n <description>echo test trigger_adhoc_command</description>\n <argstring />\n <successfulNodes>\n <node name='dignan' />\n </successfulNodes>\n \
\ </execution>\n </executions>\n</result>"

View file

@ -0,0 +1,24 @@
!tape
name: get_execution_v11
interactions:
- recorded: 2014-11-10T19:44:57.642Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/execution/945
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
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=yzyycrxo7utb154qrsuggbtp6;Path=/
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbnMgY291bnQ9JzEnPgogIDxleGVjdXRpb24gaWQ9Jzk0NScgaHJlZj0naHR0cDovL2RpZ25hbjo0NDQwL2V4ZWN1dGlvbi9mb2xsb3cvOTQ1JyBzdGF0dXM9J3N1Y2NlZWRlZCcgcHJvamVjdD0ndGVzdCc+CiAgICA8dXNlcj5hZG1pbjwvdXNlcj4KICAgIDxkYXRlLXN0YXJ0ZWQgdW5peHRpbWU9JzE0MTU2NDcxMTY3MzknPjIwMTQtMTEtMTBUMTk6MTg6MzZaPC9kYXRlLXN0YXJ0ZWQ+CiAgICA8ZGF0ZS1lbmRlZCB1bml4dGltZT0nMTQxNTY0NzExODkzMSc+MjAxNC0xMS0xMFQxOToxODozOFo8L2RhdGUtZW5kZWQ+CiAgICA8ZGVzY3JpcHRpb24+ZWNobyB0ZXN0IHRyaWdnZXJfYWRob2NfY29tbWFuZDwvZGVzY3JpcHRpb24+CiAgICA8YXJnc3RyaW5nIC8+CiAgICA8c3VjY2Vzc2Z1bE5vZGVzPgogICAgICA8bm9kZSBuYW1lPSdkaWduYW4nIC8+CiAgICA8L3N1Y2Nlc3NmdWxOb2Rlcz4KICA8L2V4ZWN1dGlvbj4KPC9leGVjdXRpb25zPg==

View file

@ -0,0 +1,24 @@
!tape
name: get_execution_v11_buggy
interactions:
- recorded: 2014-11-10T19:47:33.973Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/execution/945
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
response:
status: 200
headers:
Content-Type: text/xml;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Server: Jetty(7.6.0.v20120127)
Set-Cookie: JSESSIONID=prilmlypvi8r14cvs72xu9865;Path=/
X-Rundeck-API-Version: '12'
body: "<result success='true' apiversion='12'>\n <executions count='1'>\n <execution id='945' href='http://dignan:4440/execution/follow/945' status='succeeded' project='test'>\n <user>admin</user>\n <date-started unixtime='1415647116739'>2014-11-10T19:18:36Z</date-started>\n\
\ <date-ended unixtime='1415647118931'>2014-11-10T19:18:38Z</date-ended>\n <description>echo test trigger_adhoc_command</description>\n <argstring />\n <successfulNodes>\n <node name='dignan' />\n </successfulNodes>\n \
\ </execution>\n </executions>\n</result>"

View file

@ -0,0 +1,43 @@
!tape
name: trigger_adhoc_command_v11
interactions:
- recorded: 2014-11-10T19:37:31.471Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/run/command?project=test&exec=echo+test+trigger_adhoc_command
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
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=1lzqzroq2oz9d1oiwcyb9qjsk8;Path=/
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbiBpZD0nOTQ2JyAvPg==
- recorded: 2014-11-10T19:37:31.807Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/execution/946
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
response:
status: 200
headers:
Content-Type: application/xml;charset=UTF-8
Server: Jetty(7.6.0.v20120127)
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbnMgY291bnQ9JzEnPgogIDxleGVjdXRpb24gaWQ9Jzk0NicgaHJlZj0naHR0cDovL2RpZ25hbjo0NDQwL2V4ZWN1dGlvbi9mb2xsb3cvOTQ2JyBzdGF0dXM9J3J1bm5pbmcnIHByb2plY3Q9J3Rlc3QnPgogICAgPHVzZXI+YWRtaW48L3VzZXI+CiAgICA8ZGF0ZS1zdGFydGVkIHVuaXh0aW1lPScxNDE1NjQ4MjUxMTg0Jz4yMDE0LTExLTEwVDE5OjM3OjMxWjwvZGF0ZS1zdGFydGVkPgogICAgPGRlc2NyaXB0aW9uPmVjaG8gdGVzdCB0cmlnZ2VyX2FkaG9jX2NvbW1hbmQ8L2Rlc2NyaXB0aW9uPgogICAgPGFyZ3N0cmluZyAvPgogIDwvZXhlY3V0aW9uPgo8L2V4ZWN1dGlvbnM+

View file

@ -0,0 +1,42 @@
!tape
name: trigger_adhoc_command_v11_buggy
interactions:
- recorded: 2014-11-10T19:18:37.071Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/run/command?project=test&exec=echo+test+trigger_adhoc_command
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
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=jjryjdfuxtdw1808gclmb7uuj;Path=/
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbiBpZD0nOTQ1JyAvPg==
- recorded: 2014-11-10T19:18:37.444Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/execution/945
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
response:
status: 200
headers:
Content-Type: text/xml;charset=UTF-8
Server: Jetty(7.6.0.v20120127)
X-Rundeck-API-Version: '12'
body: "<result success='true' apiversion='12'>\n <executions count='1'>\n <execution id='945' href='http://dignan:4440/execution/follow/945' status='running' project='test'>\n <user>admin</user>\n <date-started unixtime='1415647116739'>2014-11-10T19:18:36Z</date-started>\n\
\ <description>echo test trigger_adhoc_command</description>\n <argstring />\n </execution>\n </executions>\n</result>"

View file

@ -0,0 +1,45 @@
!tape
name: trigger_adhoc_script_v11
interactions:
- recorded: 2014-11-10T20:04:36.573Z
request:
method: POST
uri: http://rundeck.local:4440/api/11/run/script?project=test
headers:
Accept: text/xml
Content-Type: multipart/form-data; boundary=W2S1I8XOmvOWsdnLEHprcw3N6cQveJEm_aV17Oz
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
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=18uoooauscne2eqtuq466djm;Path=/
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbiBpZD0nOTQ4JyAvPg==
- recorded: 2014-11-10T20:04:36.876Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/execution/948
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
response:
status: 200
headers:
Content-Type: application/xml;charset=UTF-8
Server: Jetty(7.6.0.v20120127)
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbnMgY291bnQ9JzEnPgogIDxleGVjdXRpb24gaWQ9Jzk0OCcgaHJlZj0naHR0cDovL2RpZ25hbjo0NDQwL2V4ZWN1dGlvbi9mb2xsb3cvOTQ4JyBzdGF0dXM9J3J1bm5pbmcnIHByb2plY3Q9J3Rlc3QnPgogICAgPHVzZXI+YWRtaW48L3VzZXI+CiAgICA8ZGF0ZS1zdGFydGVkIHVuaXh0aW1lPScxNDE1NjQ5ODc2MzA1Jz4yMDE0LTExLTEwVDIwOjA0OjM2WjwvZGF0ZS1zdGFydGVkPgogICAgPGRlc2NyaXB0aW9uPiMhL2Jpbi9iYXNoCmVjaG8gdGVzdCB0cmlnZ2VyX2FkaG9jX3NjcmlwdAo8L2Rlc2NyaXB0aW9uPgogICAgPGFyZ3N0cmluZyAvPgogIDwvZXhlY3V0aW9uPgo8L2V4ZWN1dGlvbnM+

View file

@ -0,0 +1,44 @@
!tape
name: trigger_adhoc_script_v11_buggy
interactions:
- recorded: 2014-11-10T19:54:03.631Z
request:
method: POST
uri: http://rundeck.local:4440/api/11/run/script?project=test
headers:
Accept: text/xml
Content-Type: multipart/form-data; boundary=7ijcD_EYqXFXKLau3Bg9Oy0PIqf37Vn
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
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=z5e76c45acya1h081pryh4avz;Path=/
X-Rundeck-API-Version: '12'
X-Rundeck-API-XML-Response-Wrapper: 'false'
body: !!binary |-
PGV4ZWN1dGlvbiBpZD0nOTQ3JyAvPg==
- recorded: 2014-11-10T19:54:03.770Z
request:
method: GET
uri: http://rundeck.local:4440/api/11/execution/947
headers:
Accept: text/xml
Host: rundeck.local:4440
Proxy-Connection: Keep-Alive
User-Agent: RunDeck API Java Client 11
X-RunDeck-Auth-Token: 8Dp9op111ER6opsDRkddvE86K9sE499s
response:
status: 200
headers:
Content-Type: text/xml;charset=UTF-8
Server: Jetty(7.6.0.v20120127)
X-Rundeck-API-Version: '12'
body: "<result success='true' apiversion='12'>\n <executions count='1'>\n <execution id='947' href='http://dignan:4440/execution/follow/947' status='running' project='test'>\n <user>admin</user>\n <date-started unixtime='1415649243468'>2014-11-10T19:54:03Z</date-started>\n\
\ <description>#!/bin/bash\necho test trigger_adhoc_script\n</description>\n <argstring />\n </execution>\n </executions>\n</result>"