rundeck 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/DEVELOPMENT.md +35 -0
  4. data/lib/rundeck/client/execution.rb +7 -1
  5. data/lib/rundeck/version.rb +1 -1
  6. data/spec/cassettes/12/key/contents_direct.yml +67 -0
  7. data/spec/cassettes/12/key/contents_multiple.yml +38 -0
  8. data/spec/cassettes/12/{key_contents_private.yml → key/contents_private.yml} +5 -5
  9. data/spec/cassettes/12/{create_private_key.yml → key/create_private.yml} +5 -5
  10. data/spec/cassettes/12/{create_public_key.yml → key/create_public.yml} +5 -5
  11. data/spec/cassettes/12/{delete_key_invalid.yml → key/delete_error.yml} +3 -3
  12. data/spec/cassettes/12/{delete_key_private.yml → key/delete_private.yml} +3 -3
  13. data/spec/cassettes/12/{delete_key_public.yml → key/delete_public.yml} +3 -3
  14. data/spec/cassettes/12/{keys_direct.yml → key/key_direct.yml} +5 -5
  15. data/spec/cassettes/12/{keys_none.yml → key/key_error.yml} +4 -4
  16. data/spec/cassettes/12/key/key_multiple.yml +38 -0
  17. data/spec/cassettes/12/{key_metadata_direct.yml → key/metadata_direct.yml} +5 -5
  18. data/spec/cassettes/12/key/metadata_multiple.yml +38 -0
  19. data/spec/cassettes/12/{update_private_key.yml → key/update_private.yml} +10 -10
  20. data/spec/cassettes/12/{update_public_key.yml → key/update_public.yml} +10 -10
  21. data/spec/cassettes/12/{create_project_invalid.yml → project/create_error.yml} +3 -3
  22. data/spec/cassettes/12/{create_project_json.yml → project/create_json.yml} +3 -3
  23. data/spec/cassettes/12/{create_project_xml.yml → project/create_xml.yml} +3 -3
  24. data/spec/cassettes/12/{delete_token.yml → project/delete.yml} +4 -4
  25. data/spec/cassettes/12/project/delete_error.yml +41 -0
  26. data/spec/cassettes/12/{project_valid.yml → project/project.yml} +3 -5
  27. data/spec/cassettes/12/{project_invalid.yml → project/project_error.yml} +3 -3
  28. data/spec/cassettes/12/{projects.yml → project/projects.yml} +3 -3
  29. data/spec/cassettes/12/{delete_token_invalid.yml → token/delete_error.yml} +3 -3
  30. data/spec/cassettes/12/{token.yml → token/token.yml} +5 -5
  31. data/spec/cassettes/12/{create_token.yml → token/token_create.yml} +5 -5
  32. data/spec/cassettes/12/token/token_delete.yml +32 -0
  33. data/spec/cassettes/12/{token_invalid.yml → token/token_error.yml} +3 -3
  34. data/spec/cassettes/12/{tokens_multiple.yml → token/tokens_multiple.yml} +6 -6
  35. data/spec/cassettes/12/{tokens_single.yml → token/tokens_single.yml} +5 -5
  36. data/spec/cassettes/12/{tokens_user.yml → token/tokens_user.yml} +7 -6
  37. data/spec/rundeck/client/key_spec.rb +25 -23
  38. data/spec/rundeck/client/project_spec.rb +12 -9
  39. data/spec/rundeck/client/token_spec.rb +28 -18
  40. data/spec/spec_helper.rb +5 -4
  41. data/spec/support/helpers.rb +29 -0
  42. metadata +65 -60
  43. data/spec/cassettes/12/key_contents_direct.yml +0 -67
  44. data/spec/cassettes/12/key_contents_multiple.yml +0 -38
  45. data/spec/cassettes/12/key_metadata_multiple.yml +0 -38
  46. data/spec/cassettes/12/keys_multiple.yml +0 -38
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: http://192.168.50.2:4440/api/12/tokens/admin
5
+ uri: http://192.168.50.2:4440/api/12/tokens/dev
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: ''
9
9
  headers:
10
10
  X-Rundeck-Auth-Token:
11
- - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
11
+ - OPIfQ6MOnevhlFThG1af4GAcbPdAgh0B
12
12
  Accept:
13
13
  - application/xml
14
14
  response:
@@ -17,7 +17,7 @@ http_interactions:
17
17
  message: Created
18
18
  headers:
19
19
  Set-Cookie:
20
- - JSESSIONID=1941ar9mgoofz1m1uwnn1ocgyy;Path=/
20
+ - JSESSIONID=nrtyr7wl9xfx2yon44aglrlh;Path=/
21
21
  Expires:
22
22
  - Thu, 01 Jan 1970 00:00:00 GMT
23
23
  X-Rundeck-Api-Xml-Response-Wrapper:
@@ -32,7 +32,7 @@ http_interactions:
32
32
  - Jetty(7.6.0.v20120127)
33
33
  body:
34
34
  encoding: UTF-8
35
- string: <token id='cbsQgUIZBOyCgoipJAwKd1YgfcwPJ0FY' user='admin' />
35
+ string: "<token id='X52YPTWGsfivVPQWb6gXyTtAYjITJy0g' user='dev' />"
36
36
  http_version:
37
- recorded_at: Sun, 23 Nov 2014 16:00:00 GMT
37
+ recorded_at: Sun, 18 Jan 2015 00:33:05 GMT
38
38
  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/token/eJ17Hkuu7PCTdKAMzMcLAR0yzdzkscQX
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Rundeck-Auth-Token:
11
+ - OPIfQ6MOnevhlFThG1af4GAcbPdAgh0B
12
+ Accept:
13
+ - application/xml
14
+ response:
15
+ status:
16
+ code: 204
17
+ message: No Content
18
+ headers:
19
+ Set-Cookie:
20
+ - JSESSIONID=1o1l2lq5rwpt5w8vebv2ryef8;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: Sun, 18 Jan 2015 04:55:22 GMT
32
+ recorded_with: VCR 2.9.3
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  X-Rundeck-Auth-Token:
11
- - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
11
+ - vDCT9dP6evCJYHtWoivruQtymkLTGJXq
12
12
  Accept:
13
13
  - application/xml
14
14
  response:
@@ -17,7 +17,7 @@ http_interactions:
17
17
  message: Not Found
18
18
  headers:
19
19
  Set-Cookie:
20
- - JSESSIONID=1t9cqr0wjp3o2r25nlk84cvyg;Path=/
20
+ - JSESSIONID=vyo63pc7bb4t1keqipdw36amh;Path=/
21
21
  Expires:
22
22
  - Thu, 01 Jan 1970 00:00:00 GMT
23
23
  Content-Type:
@@ -37,5 +37,5 @@ http_interactions:
37
37
  </error>
38
38
  </result>
39
39
  http_version:
40
- recorded_at: Sun, 23 Nov 2014 15:47:50 GMT
40
+ recorded_at: Sat, 17 Jan 2015 22:11:44 GMT
41
41
  recorded_with: VCR 2.9.3
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  X-Rundeck-Auth-Token:
11
- - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
11
+ - vDCT9dP6evCJYHtWoivruQtymkLTGJXq
12
12
  Accept:
13
13
  - application/xml
14
14
  response:
@@ -17,7 +17,7 @@ http_interactions:
17
17
  message: OK
18
18
  headers:
19
19
  Set-Cookie:
20
- - JSESSIONID=yibh2tyfyj2g145fkj676ob7x;Path=/
20
+ - JSESSIONID=1tec3q64941ofui9caz43bdpf;Path=/
21
21
  Expires:
22
22
  - Thu, 01 Jan 1970 00:00:00 GMT
23
23
  X-Rundeck-Api-Xml-Response-Wrapper:
@@ -33,10 +33,10 @@ http_interactions:
33
33
  body:
34
34
  encoding: UTF-8
35
35
  string: |-
36
- <tokens count='2' allusers='true'>
37
- <token id='cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd' user='admin' />
38
- <token id='uuyuaroo9Cheexe0ao9cohrohjeu8shu' user='user2' />
36
+ <tokens count='5' allusers='true'>
37
+ <token id='vDCT9dP6evCJYHtWoivruQtymkLTGJXq' user='admin' />
38
+ <token id='GAO3Z9U73Yow3MlDC41JmU8Z2bMmAZaV' user='dev' />
39
39
  </tokens>
40
40
  http_version:
41
- recorded_at: Sun, 23 Nov 2014 15:24:02 GMT
41
+ recorded_at: Sat, 17 Jan 2015 22:36:41 GMT
42
42
  recorded_with: VCR 2.9.3
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  X-Rundeck-Auth-Token:
11
- - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
11
+ - vDCT9dP6evCJYHtWoivruQtymkLTGJXq
12
12
  Accept:
13
13
  - application/xml
14
14
  response:
@@ -17,7 +17,7 @@ http_interactions:
17
17
  message: OK
18
18
  headers:
19
19
  Set-Cookie:
20
- - JSESSIONID=yibh2tyfyj2g145fkj676ob7x;Path=/
20
+ - JSESSIONID=kqe2pxi1f10u1fmrz86b9c4r7;Path=/
21
21
  Expires:
22
22
  - Thu, 01 Jan 1970 00:00:00 GMT
23
23
  X-Rundeck-Api-Xml-Response-Wrapper:
@@ -33,9 +33,9 @@ http_interactions:
33
33
  body:
34
34
  encoding: UTF-8
35
35
  string: |-
36
- <tokens count='1' allusers='true'>
37
- <token id='cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd' user='admin' />
36
+ <tokens count='5' allusers='true'>
37
+ <token id='vDCT9dP6evCJYHtWoivruQtymkLTGJXq' user='admin' />
38
38
  </tokens>
39
39
  http_version:
40
- recorded_at: Sun, 23 Nov 2014 15:24:02 GMT
40
+ recorded_at: Sat, 17 Jan 2015 22:36:40 GMT
41
41
  recorded_with: VCR 2.9.3
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://192.168.50.2:4440/api/12/tokens/admin
5
+ uri: http://192.168.50.2:4440/api/12/tokens/dev
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  X-Rundeck-Auth-Token:
11
- - cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd
11
+ - OPIfQ6MOnevhlFThG1af4GAcbPdAgh0B
12
12
  Accept:
13
13
  - application/xml
14
14
  response:
@@ -17,7 +17,7 @@ http_interactions:
17
17
  message: OK
18
18
  headers:
19
19
  Set-Cookie:
20
- - JSESSIONID=1hrguobtwmxjgvyr55bwwd495;Path=/
20
+ - JSESSIONID=ng8vxyg7q5qqjipbu295jctq;Path=/
21
21
  Expires:
22
22
  - Thu, 01 Jan 1970 00:00:00 GMT
23
23
  X-Rundeck-Api-Xml-Response-Wrapper:
@@ -33,9 +33,10 @@ http_interactions:
33
33
  body:
34
34
  encoding: UTF-8
35
35
  string: |-
36
- <tokens count='1' user='admin'>
37
- <token id='cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd' user='admin' />
36
+ <tokens count='5' user='dev'>
37
+ <token id='eJ17Hkuu7PCTdKAMzMcLAR0yzdzkscQX' user='dev' />
38
+ <token id='XnMEQWugSGz5hDmLtOiQ5NeqGveBQqwz' user='dev' />
38
39
  </tokens>
39
40
  http_version:
40
- recorded_at: Sun, 23 Nov 2014 15:36:11 GMT
41
+ recorded_at: Sun, 18 Jan 2015 00:30:08 GMT
41
42
  recorded_with: VCR 2.9.3
@@ -2,21 +2,21 @@ require 'spec_helper'
2
2
 
3
3
  describe Rundeck::Client do
4
4
  describe '.keys' do
5
- # The anvils demo doesn't have any keys by default.
6
- # Create a public key at path /path/to/key and a private key
7
- # at /path/to/private_key using the data from the helper methods.
8
- # Create the public key first.
9
5
  context 'with a path containing multiple keys',
10
- vcr: { cassette_name: 'keys_multiple' } do
6
+ vcr: { cassette_name: 'key/key_multiple' } do
11
7
  before do
8
+ prepare do
9
+ Rundeck.create_public_key('path/to/key', public_key)
10
+ Rundeck.create_private_key('path/to/private_key', private_key)
11
+ end
12
12
  @keys = Rundeck.keys('path/to')
13
13
  end
14
14
  subject { @keys }
15
15
 
16
16
  it { is_expected.to be_an Array }
17
17
 
18
- context 'the first key' do
19
- subject { @keys.first }
18
+ context 'the public key' do
19
+ subject { @keys.detect { |key| key.name == 'key' } }
20
20
 
21
21
  its(:name) { is_expected.to eq('key') }
22
22
  its(:type) { is_expected.to eq('file') }
@@ -24,9 +24,11 @@ describe Rundeck::Client do
24
24
  it { is_expected.to respond_to(:path) }
25
25
 
26
26
  describe '#resource_meta' do
27
- subject { @keys.first.resource_meta }
27
+ subject { @keys.detect { |key| key.name == 'key' }.resource_meta }
28
28
 
29
- its(:rundeck_content_type) { is_expected.to eq('application/pgp-key') }
29
+ its(:rundeck_content_type) do
30
+ is_expected.to eq('application/pgp-key')
31
+ end
30
32
  end
31
33
  end
32
34
 
@@ -36,7 +38,7 @@ describe Rundeck::Client do
36
38
  end
37
39
 
38
40
  context 'with a path containing no keys',
39
- vcr: { cassette_name: 'keys_none' } do
41
+ vcr: { cassette_name: 'key/key_error' } do
40
42
  specify do
41
43
  expect do
42
44
  Rundeck.keys('path/to/nowhere')
@@ -45,7 +47,7 @@ describe Rundeck::Client do
45
47
  end
46
48
 
47
49
  context 'with a direct path to a key',
48
- vcr: { cassette_name: 'keys_direct' } do
50
+ vcr: { cassette_name: 'key/key_direct' } do
49
51
  specify do
50
52
  expect do
51
53
  Rundeck.keys('path/to/key')
@@ -58,7 +60,7 @@ describe Rundeck::Client do
58
60
 
59
61
  describe '.key_metadata' do
60
62
  context 'with a direct path to a key',
61
- vcr: { cassette_name: 'key_metadata_direct' } do
63
+ vcr: { cassette_name: 'key/metadata_direct' } do
62
64
  before do
63
65
  @key = Rundeck.key_metadata('path/to/key')
64
66
  end
@@ -73,7 +75,7 @@ describe Rundeck::Client do
73
75
  end
74
76
 
75
77
  context 'with a path containing multiple keys',
76
- vcr: { cassette_name: 'key_metadata_multiple' } do
78
+ vcr: { cassette_name: 'key/metadata_multiple' } do
77
79
  specify do
78
80
  expect do
79
81
  Rundeck.key_metadata('path/to')
@@ -86,7 +88,7 @@ describe Rundeck::Client do
86
88
 
87
89
  describe '.key_contents' do
88
90
  context 'with a direct path to a key',
89
- vcr: { cassette_name: 'key_contents_direct' } do
91
+ vcr: { cassette_name: 'key/contents_direct' } do
90
92
  before do
91
93
  @key = Rundeck.key_contents('path/to/key')
92
94
  end
@@ -104,7 +106,7 @@ describe Rundeck::Client do
104
106
  end
105
107
 
106
108
  context 'with a path containing multiple keys',
107
- vcr: { cassette_name: 'key_contents_multiple' } do
109
+ vcr: { cassette_name: 'key/contents_multiple' } do
108
110
  specify do
109
111
  expect do
110
112
  Rundeck.key_contents('path/to')
@@ -115,7 +117,7 @@ describe Rundeck::Client do
115
117
  end
116
118
 
117
119
  context 'with a path to a private key',
118
- vcr: { cassette_name: 'key_contents_private' } do
120
+ vcr: { cassette_name: 'key/contents_private' } do
119
121
  specify do
120
122
  expect do
121
123
  Rundeck.key_contents('path/to/private_key')
@@ -127,7 +129,7 @@ describe Rundeck::Client do
127
129
  end
128
130
 
129
131
  describe '.create_private_key',
130
- vcr: { cassette_name: 'create_private_key' } do
132
+ vcr: { cassette_name: 'key/create_private' } do
131
133
  before do
132
134
  @key = Rundeck.create_private_key('path/to/private_key2', private_key)
133
135
  end
@@ -144,7 +146,7 @@ describe Rundeck::Client do
144
146
  end
145
147
 
146
148
  describe '.update_private_key',
147
- vcr: { cassette_name: 'update_private_key' } do
149
+ vcr: { cassette_name: 'key/update_private' } do
148
150
  before do
149
151
  @key = Rundeck.update_private_key('path/to/private_key2', private_key)
150
152
  end
@@ -162,7 +164,7 @@ describe Rundeck::Client do
162
164
  end
163
165
 
164
166
  describe '.create_public_key',
165
- vcr: { cassette_name: 'create_public_key' } do
167
+ vcr: { cassette_name: 'key/create_public' } do
166
168
  before do
167
169
  @key = Rundeck.create_public_key('path/to/public_key2', public_key)
168
170
  end
@@ -179,7 +181,7 @@ describe Rundeck::Client do
179
181
  end
180
182
 
181
183
  describe '.update_public_key',
182
- vcr: { cassette_name: 'update_public_key' } do
184
+ vcr: { cassette_name: 'key/update_public' } do
183
185
  before do
184
186
  @key = Rundeck.update_public_key('path/to/public_key2', public_key)
185
187
  end
@@ -204,7 +206,7 @@ describe Rundeck::Client do
204
206
  subject { @key }
205
207
 
206
208
  context 'public key path',
207
- vcr: { cassette_name: 'delete_key_public' } do
209
+ vcr: { cassette_name: 'key/delete_public' } do
208
210
  let(:path) { 'path/to/public_key2' }
209
211
 
210
212
  it { is_expected.to be_nil }
@@ -214,7 +216,7 @@ describe Rundeck::Client do
214
216
  end
215
217
 
216
218
  context 'private key path',
217
- vcr: { cassette_name: 'delete_key_private' } do
219
+ vcr: { cassette_name: 'key/delete_private' } do
218
220
  let(:path) { 'path/to/private_key2' }
219
221
 
220
222
  it { is_expected.to be_nil }
@@ -225,7 +227,7 @@ describe Rundeck::Client do
225
227
  end
226
228
 
227
229
  context 'with a bad path',
228
- vcr: { cassette_name: 'delete_key_invalid' } do
230
+ vcr: { cassette_name: 'key/delete_error' } do
229
231
  specify do
230
232
  expect do
231
233
  Rundeck.delete_key('path/to/nowhere')
@@ -1,8 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Rundeck::Client do
4
- describe '.projects', vcr: { cassette_name: 'projects' } do
4
+ describe '.projects', vcr: { cassette_name: 'project/projects' } do
5
5
  before do
6
+ prepare { Rundeck.create_project(project_anvils, 'json') }
6
7
  @projects = Rundeck.projects
7
8
  end
8
9
  subject { @projects }
@@ -28,7 +29,7 @@ describe Rundeck::Client do
28
29
  subject { @project }
29
30
 
30
31
  context 'create with json format',
31
- vcr: { cassette_name: 'create_project_json' } do
32
+ vcr: { cassette_name: 'project/create_json' } do
32
33
  let(:content) { project_json }
33
34
  let(:format) { 'json' }
34
35
 
@@ -41,7 +42,7 @@ describe Rundeck::Client do
41
42
  end
42
43
 
43
44
  context 'create with xml format',
44
- vcr: { cassette_name: 'create_project_xml' } do
45
+ vcr: { cassette_name: 'project/create_xml' } do
45
46
  let(:content) { project_xml }
46
47
  let(:format) { 'xml' }
47
48
 
@@ -55,7 +56,7 @@ describe Rundeck::Client do
55
56
  end
56
57
 
57
58
  context 'when project already exists',
58
- vcr: { cassette_name: 'create_project_invalid' } do
59
+ vcr: { cassette_name: 'project/create_error' } do
59
60
  specify do
60
61
  expect do
61
62
  Rundeck.create_project(project_anvils, 'json')
@@ -67,7 +68,7 @@ describe Rundeck::Client do
67
68
 
68
69
  describe '.project' do
69
70
  context 'when the project exists',
70
- vcr: { cassette_name: 'project_valid' } do
71
+ vcr: { cassette_name: 'project/project' } do
71
72
  before do
72
73
  @project = Rundeck.project('anvils')
73
74
  end
@@ -78,7 +79,7 @@ describe Rundeck::Client do
78
79
  end
79
80
 
80
81
  context 'when the project does not exist',
81
- vcr: { cassette_name: 'project_invalid' } do
82
+ vcr: { cassette_name: 'project/project_error' } do
82
83
  specify do
83
84
  expect do
84
85
  Rundeck.project('nonexistent')
@@ -90,10 +91,12 @@ describe Rundeck::Client do
90
91
 
91
92
  describe '.delete_project' do
92
93
  context 'when a project exists',
93
- vcr: { cassette_name: 'delete_project_valid' } do
94
+ vcr: { cassette_name: 'project/delete' } do
94
95
  before do
96
+ prepare { Rundeck.create_project(project_deleteme) }
95
97
  @project = Rundeck.delete_project(project)
96
98
  end
99
+
97
100
  let(:project) { 'anvils' }
98
101
  subject { @project }
99
102
 
@@ -105,10 +108,10 @@ describe Rundeck::Client do
105
108
  end
106
109
 
107
110
  context 'when a project does not exist',
108
- vcr: { cassette_name: 'delete_project_invalid' } do
111
+ vcr: { cassette_name: 'project/delete_error' } do
109
112
  specify do
110
113
  expect do
111
- Rundeck.delete_project('project1')
114
+ Rundeck.delete_project('nonexistent')
112
115
  end.to raise_error(Rundeck::Error::NotFound,
113
116
  /Project does not exist/)
114
117
  end
@@ -11,7 +11,7 @@ describe Rundeck::Client do
11
11
  let(:user) { nil }
12
12
 
13
13
  context 'when a single token is returned',
14
- vcr: { cassette_name: 'tokens_single' } do
14
+ vcr: { cassette_name: 'token/tokens_single' } do
15
15
  it { is_expected.to be_a Rundeck::ObjectifiedHash }
16
16
  its(:token) { is_expected.to be_a Rundeck::ObjectifiedHash }
17
17
  its(:allusers) { is_expected.to eq('true') }
@@ -22,44 +22,48 @@ describe Rundeck::Client do
22
22
  end
23
23
 
24
24
  context 'when multiple tokens are returned',
25
- vcr: { cassette_name: 'tokens_multiple' } do
25
+ vcr: { cassette_name: 'token/tokens_multiple' } do
26
+ before { prepare { Rundeck.create_token('dev') } }
27
+
26
28
  it { is_expected.to be_a Rundeck::ObjectifiedHash }
27
29
  its(:token) { is_expected.to be_an Array }
28
30
  its(:allusers) { is_expected.to eq('true') }
29
31
  end
30
32
  end
31
33
 
32
- context 'when user is specified', vcr: { cassette_name: 'tokens_user' } do
33
- let(:user) { 'admin' }
34
+ context 'when user is specified',
35
+ vcr: { cassette_name: 'token/tokens_user' } do
36
+ before { prepare { Rundeck.create_token('dev') } }
37
+ let(:user) { 'dev' }
34
38
 
35
39
  it { is_expected.to be_a Rundeck::ObjectifiedHash }
36
- its(:user) { is_expected.to eq('admin') }
40
+ its(:user) { is_expected.to eq(user) }
37
41
 
38
42
  describe '#token' do
39
- subject { @tokens.token }
43
+ subject { @tokens.token.first }
40
44
 
41
45
  it_behaves_like 'a token'
42
- its(:user) { is_expected.to eq('admin') }
46
+ its(:user) { is_expected.to eq(user) }
43
47
  end
44
48
  end
45
49
  end
46
50
 
47
51
  describe '.token' do
48
- context 'when a token exists', vcr: { cassette_name: 'token' } do
52
+ context 'when a token exists', vcr: { cassette_name: 'token/token' } do
49
53
  before do
50
- @token = Rundeck.token('cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd')
54
+ @token = Rundeck.token(Rundeck.api_token)
51
55
  end
52
56
  subject { @token }
53
57
 
54
58
  it_behaves_like 'a token'
55
59
 
56
60
  it 'expects a get to have been made' do
57
- expect(a_get('/token/cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd')).to have_been_made
61
+ expect(a_get("/token/#{Rundeck.api_token}")).to have_been_made
58
62
  end
59
63
  end
60
64
 
61
65
  context 'when a token does not exist',
62
- vcr: { cassette_name: 'token_invalid' } do
66
+ vcr: { cassette_name: 'token/token_error' } do
63
67
  specify do
64
68
  expect do
65
69
  Rundeck.token('123456')
@@ -70,24 +74,30 @@ describe Rundeck::Client do
70
74
  end
71
75
 
72
76
  describe '.create_token' do
73
- context 'when the user exists', vcr: { cassette_name: 'create_token' } do
77
+ context 'when the user exists',
78
+ vcr: { cassette_name: 'token/token_create' } do
74
79
  before do
75
- @token = Rundeck.create_token('admin')
80
+ @token = Rundeck.create_token('dev')
76
81
  end
77
82
  subject { @token }
78
83
 
79
84
  it_behaves_like 'a token'
80
85
 
81
86
  it 'expects a post to have been made' do
82
- expect(a_post('/tokens/admin')).to have_been_made
87
+ expect(a_post('/tokens/dev')).to have_been_made
83
88
  end
84
89
  end
85
90
  end
86
91
 
87
92
  describe '.delete_token' do
88
- context 'when a token exists', vcr: { cassette_name: 'delete_token' } do
93
+ context 'when a token exists',
94
+ vcr: { cassette_name: 'token/token_delete',
95
+ match_requests_on: [:method] } do
89
96
  before do
90
- @token = Rundeck.delete_token('cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd')
97
+ VCR.use_cassette('token/tokens_user') do
98
+ @dev_tokens = Rundeck.tokens('dev')
99
+ end
100
+ @token = Rundeck.delete_token(@dev_tokens.token.first.id)
91
101
  end
92
102
  subject { @token }
93
103
 
@@ -95,13 +105,13 @@ describe Rundeck::Client do
95
105
 
96
106
  it 'expects a delete to have been made' do
97
107
  expect(
98
- a_delete('/token/cmJQYoy9EAsSd0905yNjKDNGs0ESIwEd')
108
+ a_delete("/token/#{@dev_tokens.token.first.id}")
99
109
  ).to have_been_made
100
110
  end
101
111
  end
102
112
 
103
113
  context 'when a token does not exist',
104
- vcr: { cassette_name: 'delete_token_invalid' } do
114
+ vcr: { cassette_name: 'token/delete_error' } do
105
115
  specify do
106
116
  expect do
107
117
  Rundeck.delete_token('123456')