rundeck 0.0.3.pre → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -0
  3. data/.rubocop_todo.yml +0 -10
  4. data/.travis.yml +1 -1
  5. data/lib/rundeck/client.rb +61 -3
  6. data/lib/rundeck/client/execution.rb +194 -0
  7. data/lib/rundeck/client/{jobs.rb → job.rb} +19 -36
  8. data/lib/rundeck/client/{keys.rb → key.rb} +42 -20
  9. data/lib/rundeck/configuration.rb +5 -1
  10. data/lib/rundeck/objectified_hash.rb +13 -3
  11. data/lib/rundeck/request.rb +7 -1
  12. data/lib/rundeck/version.rb +1 -1
  13. data/rundeck.gemspec +2 -1
  14. data/spec/cassettes/12/abort_execution_not_running.yml +41 -0
  15. data/spec/cassettes/12/abort_execution_valid.yml +41 -0
  16. data/spec/cassettes/12/abort_executions_invalid.yml +41 -0
  17. data/spec/cassettes/12/bulk_delete_executions_invalid.yml +46 -0
  18. data/spec/cassettes/12/bulk_delete_executions_valid.yml +41 -0
  19. data/spec/cassettes/12/create_private_key.yml +64 -0
  20. data/spec/cassettes/12/create_public_key.yml +38 -0
  21. data/spec/cassettes/12/delete_execution_invalid.yml +41 -0
  22. data/spec/cassettes/12/delete_execution_valid.yml +32 -0
  23. data/spec/cassettes/12/delete_job_executions.yml +41 -0
  24. data/spec/cassettes/12/delete_job_executions_invalid.yml +41 -0
  25. data/spec/cassettes/12/delete_job_invalid.yml +41 -0
  26. data/spec/cassettes/12/delete_job_valid.yml +32 -0
  27. data/spec/cassettes/12/delete_key_invalid.yml +41 -0
  28. data/spec/cassettes/12/delete_key_private.yml +32 -0
  29. data/spec/cassettes/12/delete_key_public.yml +32 -0
  30. data/spec/cassettes/12/execution_invalid.yml +41 -0
  31. data/spec/cassettes/12/execution_query_invalid.yml +39 -0
  32. data/spec/cassettes/12/execution_query_no_params_valid.yml +124 -0
  33. data/spec/cassettes/12/execution_state_invalid.yml +41 -0
  34. data/spec/cassettes/12/execution_state_valid.yml +39 -0
  35. data/spec/cassettes/12/execution_valid.yml +60 -0
  36. data/spec/cassettes/12/export_job_xml.yml +234 -0
  37. data/spec/cassettes/12/export_job_yaml.yml +228 -0
  38. data/spec/cassettes/12/import_job_xml.yml +69 -0
  39. data/spec/cassettes/12/import_job_yaml.yml +63 -0
  40. data/spec/cassettes/12/job.yml +84 -0
  41. data/spec/cassettes/12/job_executions.yml +96 -0
  42. data/spec/cassettes/12/jobs.yml +76 -0
  43. data/spec/cassettes/12/key_contents_direct.yml +67 -0
  44. data/spec/cassettes/12/key_contents_multiple.yml +38 -0
  45. data/spec/cassettes/12/key_contents_private.yml +35 -0
  46. data/spec/cassettes/12/key_metadata_direct.yml +35 -0
  47. data/spec/cassettes/12/key_metadata_multiple.yml +38 -0
  48. data/spec/cassettes/12/keys_direct.yml +35 -0
  49. data/spec/cassettes/12/keys_multiple.yml +38 -0
  50. data/spec/cassettes/12/keys_none.yml +34 -0
  51. data/spec/cassettes/12/run_job_invalid.yml +44 -0
  52. data/spec/cassettes/12/run_job_valid.yml +77 -0
  53. data/spec/cassettes/12/running_jobs_multiple.yml +70 -0
  54. data/spec/cassettes/12/running_jobs_none.yml +39 -0
  55. data/spec/cassettes/12/running_jobs_single.yml +55 -0
  56. data/spec/cassettes/12/update_private_key.yml +96 -0
  57. data/spec/cassettes/12/update_public_key.yml +70 -0
  58. data/spec/rundeck/client/execution_spec.rb +346 -0
  59. data/spec/rundeck/client/job_spec.rb +175 -0
  60. data/spec/rundeck/client/key_spec.rb +223 -0
  61. data/spec/spec_helper.rb +15 -60
  62. data/spec/support/helpers.rb +136 -0
  63. metadata +118 -35
  64. data/spec/fixtures/empty.xml +0 -0
  65. data/spec/fixtures/job.xml +0 -17
  66. data/spec/fixtures/job_executions.xml +0 -31
  67. data/spec/fixtures/job_run.xml +0 -16
  68. data/spec/fixtures/jobs_import.xml +0 -23
  69. data/spec/fixtures/jobs_my_project.xml +0 -14
  70. data/spec/fixtures/jobs_xml.xml +0 -32
  71. data/spec/fixtures/jobs_yaml.xml +0 -22
  72. data/spec/fixtures/key_contents_public.xml +0 -1
  73. data/spec/fixtures/key_private.xml +0 -8
  74. data/spec/fixtures/key_public.xml +0 -7
  75. data/spec/fixtures/keys.xml +0 -27
  76. data/spec/rundeck/client/jobs_spec.rb +0 -181
  77. data/spec/rundeck/client/keys_spec.rb +0 -216
@@ -0,0 +1,32 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/execution/1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=82dj7o3fqs0r1jyqrzkt8l9sy;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/html;charset=UTF-8
25
+ Server:
26
+ - Jetty(7.6.0.v20120127)
27
+ body:
28
+ encoding: UTF-8
29
+ string: ''
30
+ http_version:
31
+ recorded_at: Sat, 18 Oct 2014 01:57:12 GMT
32
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/job/1/executions
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=18o71au67bx241avm05to5o6dn;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ X-Rundeck-Api-Xml-Response-Wrapper:
24
+ - 'false'
25
+ Content-Type:
26
+ - application/xml;charset=UTF-8
27
+ X-Rundeck-Api-Version:
28
+ - '12'
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Server:
32
+ - Jetty(7.6.0.v20120127)
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ <deleteExecutions requestCount='2' allsuccessful='true'>
37
+ <successful count='2' />
38
+ </deleteExecutions>
39
+ http_version:
40
+ recorded_at: Sat, 11 Oct 2014 20:02:59 GMT
41
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/job/1/executions
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=rrn1wvr3aojlb6w1f6j430x2;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ X-Rundeck-Api-Xml-Response-Wrapper:
24
+ - 'false'
25
+ Content-Type:
26
+ - application/xml;charset=UTF-8
27
+ X-Rundeck-Api-Version:
28
+ - '12'
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Server:
32
+ - Jetty(7.6.0.v20120127)
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ <deleteExecutions requestCount='0' allsuccessful='true'>
37
+ <successful count='0' />
38
+ </deleteExecutions>
39
+ http_version:
40
+ recorded_at: Sat, 11 Oct 2014 20:10:23 GMT
41
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/job/123456
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 404
17
+ message: Not Found
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=ct6o1mx0tll71x48md7dumrst;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ X-Rundeck-Api-Version:
26
+ - '12'
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Server:
30
+ - Jetty(7.6.0.v20120127)
31
+ body:
32
+ encoding: UTF-8
33
+ string: |-
34
+ <result error='true' apiversion='12'>
35
+ <error code='api.error.item.doesnotexist'>
36
+ <message>Job ID does not exist: 123456</message>
37
+ </error>
38
+ </result>
39
+ http_version:
40
+ recorded_at: Sat, 11 Oct 2014 13:49:53 GMT
41
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,32 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/job/3
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=1ttqjihqhpa3s8ixcymbtsuzd;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/html;charset=UTF-8
25
+ Server:
26
+ - Jetty(7.6.0.v20120127)
27
+ body:
28
+ encoding: UTF-8
29
+ string: ''
30
+ http_version:
31
+ recorded_at: Sat, 11 Oct 2014 13:25:27 GMT
32
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/storage/keys/path/to/nowhere
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 404
17
+ message: Not Found
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=10wucn6qepdl4nsfags0ktkcz;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ X-Rundeck-Api-Version:
26
+ - '12'
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Server:
30
+ - Jetty(7.6.0.v20120127)
31
+ body:
32
+ encoding: UTF-8
33
+ string: |-
34
+ <result error='true' apiversion='12'>
35
+ <error code='api.error.item.doesnotexist'>
36
+ <message>Resource does not exist: /keys/path/to/nowhere</message>
37
+ </error>
38
+ </result>
39
+ http_version:
40
+ recorded_at: Sat, 11 Oct 2014 19:35:40 GMT
41
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,32 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/storage/keys/path/to/private_key2
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=o727hfajakgp1gs2qmcjcs6xb;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/html;charset=UTF-8
25
+ Server:
26
+ - Jetty(7.6.0.v20120127)
27
+ body:
28
+ encoding: UTF-8
29
+ string: ''
30
+ http_version:
31
+ recorded_at: Sat, 11 Oct 2014 19:30:15 GMT
32
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,32 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://192.168.50.2:4440/api/12/storage/keys/path/to/public_key2
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=59vvjx6vo7th1oz3lne5qa06t;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/html;charset=UTF-8
25
+ Server:
26
+ - Jetty(7.6.0.v20120127)
27
+ body:
28
+ encoding: UTF-8
29
+ string: ''
30
+ http_version:
31
+ recorded_at: Sat, 11 Oct 2014 19:30:15 GMT
32
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://192.168.50.2:4440/api/12/execution/2
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - i8iMfXUOpYzVJ9SAkh7pRQMTZI1Bnsyu
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 404
17
+ message: Not Found
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=3msyu2r4qdcweprvobc8kkur;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ X-Rundeck-Api-Version:
26
+ - '12'
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Server:
30
+ - Jetty(7.6.0.v20120127)
31
+ body:
32
+ encoding: UTF-8
33
+ string: |-
34
+ <result error='true' apiversion='12'>
35
+ <error code='api.error.item.doesnotexist'>
36
+ <message>Execution ID does not exist: 2</message>
37
+ </error>
38
+ </result>
39
+ http_version:
40
+ recorded_at: Sat, 11 Oct 2014 22:25:15 GMT
41
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://192.168.50.2:4440/api/12/executions?project=other_project
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=tzuog3lg4sgosa3g58o745ht;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ X-Rundeck-Api-Version:
26
+ - '12'
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Server:
30
+ - Jetty(7.6.0.v20120127)
31
+ body:
32
+ encoding: UTF-8
33
+ string: |-
34
+ <result success='true' apiversion='12'>
35
+ <executions count='0' total='0' offset='0' max='20' />
36
+ </result>
37
+ http_version:
38
+ recorded_at: Sat, 25 Oct 2014 15:00:34 GMT
39
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,124 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://192.168.50.2:4440/api/12/executions?project=anvils
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=zmh12hvccy21g2452xvh32q6;Path=/
21
+ Expires:
22
+ - Thu, 01 Jan 1970 00:00:00 GMT
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ X-Rundeck-Api-Version:
26
+ - '12'
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Server:
30
+ - Jetty(7.6.0.v20120127)
31
+ body:
32
+ encoding: UTF-8
33
+ string: |-
34
+ <result success='true' apiversion='12'>
35
+ <executions count='3' total='3' offset='0' max='20'>
36
+ <execution id='8' href='http://192.168.50.2:4440/execution/follow/8' status='succeeded' project='anvils'>
37
+ <user>admin</user>
38
+ <date-started unixtime='1413597919635'>2014-10-18T02:05:19Z</date-started>
39
+ <date-ended unixtime='1413597921886'>2014-10-18T02:05:21Z</date-ended>
40
+ <job id='a48a6b84-4e93-4fdb-a858-d99db52e1153' averageDuration='2765'>
41
+ <name>nightly_catalog_rebuild</name>
42
+ <group>anvils</group>
43
+ <project>anvils</project>
44
+ <description>rebuild the catalog data</description>
45
+ <options>
46
+ <option name='catalog' value='partner' />
47
+ </options>
48
+ </job>
49
+ <description>#!/bin/bash
50
+ set -eu
51
+ CATALOG=$1
52
+ echo "# Rebuild catalog: $CATALOG"
53
+ echo ""
54
+ echo "- customer: ${RD_NODE_ANVILS_CUSTOMER}"
55
+ echo "- location: ${RD_NODE_ANVILS_LOCATION}"
56
+ echo "- database: ${RD_NODE_NAME:-}"
57
+ echo "Completed."
58
+ exit $? -- ${option.catalog}</description>
59
+ <argstring>-catalog partner</argstring>
60
+ <successfulNodes>
61
+ <node name='db1.anvils.com' />
62
+ </successfulNodes>
63
+ </execution>
64
+ <execution id='7' href='http://192.168.50.2:4440/execution/follow/7' status='succeeded' project='anvils'>
65
+ <user>admin</user>
66
+ <date-started unixtime='1413597866649'>2014-10-18T02:04:26Z</date-started>
67
+ <date-ended unixtime='1413597868807'>2014-10-18T02:04:28Z</date-ended>
68
+ <job id='a48a6b84-4e93-4fdb-a858-d99db52e1153' averageDuration='2765'>
69
+ <name>nightly_catalog_rebuild</name>
70
+ <group>anvils</group>
71
+ <project>anvils</project>
72
+ <description>rebuild the catalog data</description>
73
+ <options>
74
+ <option name='catalog' value='partner' />
75
+ </options>
76
+ </job>
77
+ <description>#!/bin/bash
78
+ set -eu
79
+ CATALOG=$1
80
+ echo "# Rebuild catalog: $CATALOG"
81
+ echo ""
82
+ echo "- customer: ${RD_NODE_ANVILS_CUSTOMER}"
83
+ echo "- location: ${RD_NODE_ANVILS_LOCATION}"
84
+ echo "- database: ${RD_NODE_NAME:-}"
85
+ echo "Completed."
86
+ exit $? -- ${option.catalog}</description>
87
+ <argstring>-catalog partner</argstring>
88
+ <successfulNodes>
89
+ <node name='db1.anvils.com' />
90
+ </successfulNodes>
91
+ </execution>
92
+ <execution id='6' href='http://192.168.50.2:4440/execution/follow/6' status='succeeded' project='anvils'>
93
+ <user>admin</user>
94
+ <date-started unixtime='1413597846948'>2014-10-18T02:04:06Z</date-started>
95
+ <date-ended unixtime='1413597849313'>2014-10-18T02:04:09Z</date-ended>
96
+ <job id='a48a6b84-4e93-4fdb-a858-d99db52e1153' averageDuration='2765'>
97
+ <name>nightly_catalog_rebuild</name>
98
+ <group>anvils</group>
99
+ <project>anvils</project>
100
+ <description>rebuild the catalog data</description>
101
+ <options>
102
+ <option name='catalog' value='partner' />
103
+ </options>
104
+ </job>
105
+ <description>#!/bin/bash
106
+ set -eu
107
+ CATALOG=$1
108
+ echo "# Rebuild catalog: $CATALOG"
109
+ echo ""
110
+ echo "- customer: ${RD_NODE_ANVILS_CUSTOMER}"
111
+ echo "- location: ${RD_NODE_ANVILS_LOCATION}"
112
+ echo "- database: ${RD_NODE_NAME:-}"
113
+ echo "Completed."
114
+ exit $? -- ${option.catalog}</description>
115
+ <argstring>-catalog partner</argstring>
116
+ <successfulNodes>
117
+ <node name='db1.anvils.com' />
118
+ </successfulNodes>
119
+ </execution>
120
+ </executions>
121
+ </result>
122
+ http_version:
123
+ recorded_at: Sat, 25 Oct 2014 15:00:34 GMT
124
+ recorded_with: VCR 2.9.3