stacker_bee 2.1.1.pre305 → 2.1.1.pre324

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +43 -8
  3. data/config.default.yml +1 -1
  4. data/lib/stacker_bee/client.rb +5 -2
  5. data/lib/stacker_bee/configuration.rb +22 -2
  6. data/lib/stacker_bee/middleware/adapter.rb +5 -1
  7. data/lib/stacker_bee/middleware/cloud_stack_api.rb +1 -2
  8. data/lib/stacker_bee/middleware/console_access.rb +1 -2
  9. data/lib/stacker_bee/request_error.rb +1 -1
  10. data/spec/cassettes/A_request_sent_to_CloudStack_for_console_access/returns_html_for_console_access.yml +1 -1
  11. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/.yml +4 -34
  12. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_nil_request_parameter/properly_executes_the_request.yml +4 -34
  13. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_a_map/can_create_an_object.yml +18 -198
  14. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml +6 -37
  15. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_and_empty_string/properly_executes_the_request.yml +4 -34
  16. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_that_triggers_an_error/properly_signs_the_request.yml +2 -34
  17. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml +4 -34
  18. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml +4 -34
  19. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml +4 -34
  20. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_doesn_t_match_the_content_type/uses_the_middleware.yml +3 -33
  21. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_matches_the_content_type/uses_the_middleware.yml +3 -33
  22. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/space_character_in_a_request_parameter/properly_signs_the_request.yml +2 -31
  23. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/with_a_nonexistant_path/raises_a_client_error.yml +47 -0
  24. data/spec/integration/console_spec.rb +4 -3
  25. data/spec/integration/request_spec.rb +26 -9
  26. data/spec/units/stacker_bee/configuration_spec.rb +30 -0
  27. data/spec/units/stacker_bee/middleware/adapter_spec.rb +9 -1
  28. data/spec/units/stacker_bee/middleware/cloud_stack_api_spec.rb +6 -13
  29. data/spec/units/stacker_bee/middleware/console_access_spec.rb +6 -3
  30. metadata +4 -12
  31. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml +0 -37
  32. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml +0 -37
  33. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml +0 -33
  34. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml +0 -33
  35. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml +0 -33
@@ -2,37 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.8.8
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - '*/*'
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Content-Type:
22
- - text/javascript; charset=UTF-8
23
- Content-Length:
24
- - '1778'
25
- Server:
26
- - Jetty(6.1.26)
27
- body:
28
- encoding: UTF-8
29
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"fdc009b8-2034-11e3-a44b-d6558ad1fb9f","name":"admin","accounttype":1,"domainid":"fdbfec94-2034-11e3-a44b-d6558ad1fb9f","domain":"ROOT","receivedbytes":100,"sentbytes":100,"vmlimit":"Unlimited","vmtotal":1,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":1,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":1,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","vmrunning":1,"projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":1,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":1,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":32,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":2,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"fdc03456-2034-11e3-a44b-d6558ad1fb9f","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2013-09-17T23:36:11-0400","state":"enabled","account":"admin","accounttype":1,"domainid":"fdbfec94-2034-11e3-a44b-d6558ad1fb9f","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"fdc009b8-2034-11e3-a44b-d6558ad1fb9f","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
30
- ] } }'
31
- http_version:
32
- recorded_at: Tue, 29 Oct 2013 20:20:11 GMT
33
- - request:
34
- method: get
35
- uri: <CLOUD_STACK_URL>/?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
5
+ uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
36
6
  body:
37
7
  encoding: US-ASCII
38
8
  string: ''
@@ -51,13 +21,13 @@ http_interactions:
51
21
  Content-Type:
52
22
  - text/javascript; charset=UTF-8
53
23
  Content-Length:
54
- - '1728'
24
+ - '1727'
55
25
  Server:
56
26
  - Jetty(6.1.26)
57
27
  body:
58
28
  encoding: UTF-8
59
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":11,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
29
+ string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":2,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
60
30
  ] } }'
61
31
  http_version:
62
- recorded_at: Thu, 09 Oct 2014 18:16:02 GMT
32
+ recorded_at: Mon, 24 Nov 2014 18:07:25 GMT
63
33
  recorded_with: VCR 2.9.3
@@ -2,37 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.8.8
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - '*/*'
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Content-Type:
22
- - text/javascript; charset=UTF-8
23
- Content-Length:
24
- - '1778'
25
- Server:
26
- - Jetty(6.1.26)
27
- body:
28
- encoding: UTF-8
29
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"fdc009b8-2034-11e3-a44b-d6558ad1fb9f","name":"admin","accounttype":1,"domainid":"fdbfec94-2034-11e3-a44b-d6558ad1fb9f","domain":"ROOT","receivedbytes":100,"sentbytes":100,"vmlimit":"Unlimited","vmtotal":1,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":1,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":1,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","vmrunning":1,"projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":1,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":1,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":32,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":2,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"fdc03456-2034-11e3-a44b-d6558ad1fb9f","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2013-09-17T23:36:11-0400","state":"enabled","account":"admin","accounttype":1,"domainid":"fdbfec94-2034-11e3-a44b-d6558ad1fb9f","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"fdc009b8-2034-11e3-a44b-d6558ad1fb9f","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
30
- ] } }'
31
- http_version:
32
- recorded_at: Tue, 29 Oct 2013 20:20:11 GMT
33
- - request:
34
- method: get
35
- uri: <CLOUD_STACK_URL>/?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
5
+ uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
36
6
  body:
37
7
  encoding: US-ASCII
38
8
  string: ''
@@ -51,13 +21,13 @@ http_interactions:
51
21
  Content-Type:
52
22
  - text/javascript; charset=UTF-8
53
23
  Content-Length:
54
- - '1728'
24
+ - '1727'
55
25
  Server:
56
26
  - Jetty(6.1.26)
57
27
  body:
58
28
  encoding: UTF-8
59
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":11,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
29
+ string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":2,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
60
30
  ] } }'
61
31
  http_version:
62
- recorded_at: Thu, 09 Oct 2014 18:16:02 GMT
32
+ recorded_at: Mon, 24 Nov 2014 18:07:25 GMT
63
33
  recorded_with: VCR 2.9.3
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
5
+ uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -26,38 +26,8 @@ http_interactions:
26
26
  - Jetty(6.1.26)
27
27
  body:
28
28
  encoding: UTF-8
29
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"ce45d9a0-41f5-11e3-aaa7-d6558ad1fb9f","name":"admin","accounttype":1,"domainid":"ce4585b8-41f5-11e3-aaa7-d6558ad1fb9f","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":0,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"ce46057e-41f5-11e3-aaa7-d6558ad1fb9f","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2013-10-30T22:29:33-0400","state":"enabled","account":"admin","accounttype":1,"domainid":"ce4585b8-41f5-11e3-aaa7-d6558ad1fb9f","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"ce45d9a0-41f5-11e3-aaa7-d6558ad1fb9f","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
29
+ string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":2,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
30
30
  ] } }'
31
31
  http_version:
32
- recorded_at: Sat, 15 Feb 2014 20:42:23 GMT
33
- - request:
34
- method: get
35
- uri: <CLOUD_STACK_URL>/?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
36
- body:
37
- encoding: US-ASCII
38
- string: ''
39
- headers:
40
- User-Agent:
41
- - Faraday v0.8.9
42
- Accept-Encoding:
43
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
44
- Accept:
45
- - '*/*'
46
- response:
47
- status:
48
- code: 200
49
- message: OK
50
- headers:
51
- Content-Type:
52
- - text/javascript; charset=UTF-8
53
- Content-Length:
54
- - '1728'
55
- Server:
56
- - Jetty(6.1.26)
57
- body:
58
- encoding: UTF-8
59
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":12,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
60
- ] } }'
61
- http_version:
62
- recorded_at: Thu, 09 Oct 2014 18:16:04 GMT
32
+ recorded_at: Mon, 24 Nov 2014 18:07:25 GMT
63
33
  recorded_with: VCR 2.9.3
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
5
+ uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -26,38 +26,8 @@ http_interactions:
26
26
  - Jetty(6.1.26)
27
27
  body:
28
28
  encoding: UTF-8
29
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"ce45d9a0-41f5-11e3-aaa7-d6558ad1fb9f","name":"admin","accounttype":1,"domainid":"ce4585b8-41f5-11e3-aaa7-d6558ad1fb9f","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":0,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"ce46057e-41f5-11e3-aaa7-d6558ad1fb9f","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2013-10-30T22:29:33-0400","state":"enabled","account":"admin","accounttype":1,"domainid":"ce4585b8-41f5-11e3-aaa7-d6558ad1fb9f","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"ce45d9a0-41f5-11e3-aaa7-d6558ad1fb9f","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
29
+ string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":2,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
30
30
  ] } }'
31
31
  http_version:
32
- recorded_at: Sat, 15 Feb 2014 20:39:56 GMT
33
- - request:
34
- method: get
35
- uri: <CLOUD_STACK_URL>/?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
36
- body:
37
- encoding: US-ASCII
38
- string: ''
39
- headers:
40
- User-Agent:
41
- - Faraday v0.8.9
42
- Accept-Encoding:
43
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
44
- Accept:
45
- - '*/*'
46
- response:
47
- status:
48
- code: 200
49
- message: OK
50
- headers:
51
- Content-Type:
52
- - text/javascript; charset=UTF-8
53
- Content-Length:
54
- - '1728'
55
- Server:
56
- - Jetty(6.1.26)
57
- body:
58
- encoding: UTF-8
59
- string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"b32dc958-b904-11e3-b3f0-080027079e3d","name":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","vmlimit":"Unlimited","vmtotal":0,"vmavailable":"Unlimited","iplimit":"Unlimited","iptotal":0,"ipavailable":"Unlimited","volumelimit":"Unlimited","volumetotal":0,"volumeavailable":"Unlimited","snapshotlimit":"Unlimited","snapshottotal":0,"snapshotavailable":"Unlimited","templatelimit":"Unlimited","templatetotal":0,"templateavailable":"Unlimited","projectlimit":"Unlimited","projecttotal":0,"projectavailable":"Unlimited","networklimit":"Unlimited","networktotal":12,"networkavailable":"Unlimited","vpclimit":"Unlimited","vpctotal":0,"vpcavailable":"Unlimited","cpulimit":"Unlimited","cputotal":0,"cpuavailable":"Unlimited","memorylimit":"Unlimited","memorytotal":0,"memoryavailable":"Unlimited","primarystoragelimit":"Unlimited","primarystoragetotal":0,"primarystorageavailable":"Unlimited","secondarystoragelimit":"Unlimited","secondarystoragetotal":0,"secondarystorageavailable":"Unlimited","state":"enabled","user":[{"id":"b32e02b0-b904-11e3-b3f0-080027079e3d","username":"admin","firstname":"Admin","lastname":"User","email":"admin@mailprovider.com","created":"2014-03-31T18:45:58+0000","state":"enabled","account":"admin","accounttype":1,"domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","apikey":"<CLOUD_STACK_API_KEY>","secretkey":"<CLOUD_STACK_SECRET_KEY>","accountid":"b32dc958-b904-11e3-b3f0-080027079e3d","iscallerchilddomain":false,"isdefault":true}],"isdefault":true}
60
- ] } }'
61
- http_version:
62
- recorded_at: Thu, 09 Oct 2014 18:16:04 GMT
32
+ recorded_at: Mon, 24 Nov 2014 18:07:25 GMT
63
33
  recorded_with: VCR 2.9.3
@@ -2,36 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&name=stacker%20bee&response=json&signature=uAHazDwdFrvlPK9JgZjNZvsojfI=
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - Faraday v0.8.8
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - '*/*'
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Content-Type:
22
- - text/javascript; charset=UTF-8
23
- Content-Length:
24
- - '32'
25
- Server:
26
- - Jetty(6.1.26)
27
- body:
28
- encoding: UTF-8
29
- string: '{ "listaccountsresponse" : { } }'
30
- http_version:
31
- recorded_at: Mon, 28 Oct 2013 15:24:49 GMT
32
- - request:
33
- method: get
34
- uri: <CLOUD_STACK_URL>/?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&name=stacker%20bee&response=json&signature=uAHazDwdFrvlPK9JgZjNZvsojfI=
5
+ uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&name=stacker%20bee&response=json&signature=uAHazDwdFrvlPK9JgZjNZvsojfI=
35
6
  body:
36
7
  encoding: US-ASCII
37
8
  string: ''
@@ -57,5 +28,5 @@ http_interactions:
57
28
  encoding: UTF-8
58
29
  string: '{ "listaccountsresponse" : { } }'
59
30
  http_version:
60
- recorded_at: Thu, 09 Oct 2014 18:16:03 GMT
31
+ recorded_at: Mon, 24 Nov 2014 18:07:26 GMT
61
32
  recorded_with: VCR 2.9.3
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: <CLOUD_STACK_HOST>/not/a/real/endpoint?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 404
19
+ message: Not Found
20
+ headers:
21
+ Cache-Control:
22
+ - must-revalidate,no-cache,no-store
23
+ Content-Type:
24
+ - text/html; charset=iso-8859-1
25
+ Content-Length:
26
+ - '1287'
27
+ Server:
28
+ - Jetty(6.1.26)
29
+ body:
30
+ encoding: UTF-8
31
+ string: "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;
32
+ charset=ISO-8859-1\"/>\n<title>Error 404 NOT_FOUND</title>\n</head>\n<body>\n<h2>HTTP
33
+ ERROR: 404</h2>\n<p>Problem accessing /not/a/real/endpoint. Reason:\n<pre>
34
+ \ NOT_FOUND</pre></p>\n<hr /><i><small>Powered by Jetty://</small></i>\n
35
+ \ \n \n
36
+ \ \n \n
37
+ \ \n \n
38
+ \ \n \n
39
+ \ \n \n
40
+ \ \n \n
41
+ \ \n \n
42
+ \ \n \n
43
+ \ \n \n
44
+ \ \n \n</body>\n</html>\n"
45
+ http_version:
46
+ recorded_at: Mon, 24 Nov 2014 18:07:25 GMT
47
+ recorded_with: VCR 2.9.3
@@ -5,9 +5,10 @@ describe 'A request sent to CloudStack for console access', :vcr do
5
5
  let(:client) { StackerBee::Client.new(config_hash) }
6
6
  let(:config_hash) do
7
7
  {
8
- url: CONFIG['url'],
9
- api_key: CONFIG['api_key'],
10
- secret_key: CONFIG['secret_key']
8
+ url: CONFIG['url'],
9
+ console_path: CONFIG['console_path'],
10
+ api_key: CONFIG['api_key'],
11
+ secret_key: CONFIG['secret_key']
11
12
  }
12
13
  end
13
14
 
@@ -3,13 +3,18 @@ require 'logger'
3
3
  describe 'A response to a request sent to the CloudStack API', :vcr do
4
4
  subject { client.list_accounts }
5
5
 
6
- let(:url) { CONFIG['url'] }
6
+ let(:config_url) { CONFIG['url'] }
7
+ let(:uri) { URI.parse(config_url) }
8
+ let(:url) { uri.to_s }
9
+ let(:api_path) { CONFIG['api_path'] }
7
10
  let(:config_hash) do
8
11
  {
9
- url: url,
10
- api_key: CONFIG['api_key'],
11
- secret_key: CONFIG['secret_key'],
12
- middlewares: middlewares
12
+ url: url,
13
+ api_path: api_path,
14
+ console_path: CONFIG['console_path'],
15
+ api_key: CONFIG['api_key'],
16
+ secret_key: CONFIG['secret_key'],
17
+ middlewares: middlewares
13
18
  }
14
19
  end
15
20
  let(:middlewares) { proc {} }
@@ -28,18 +33,30 @@ describe 'A response to a request sent to the CloudStack API', :vcr do
28
33
  end
29
34
 
30
35
  context 'failing to connect' do
31
- let(:url) { 'http://127.0.0.1:666/client/api' }
36
+ let(:url) { 'http://127.0.0.1:666' }
32
37
  it 'raises a helpful exception' do
33
38
  klass = StackerBee::ConnectionError
34
39
  expect { subject }.to raise_error klass, /#{url}/
35
40
  end
36
41
  end
37
42
 
38
- context 'trailing slash in URL', :regression do
39
- let(:url) { CONFIG['url'].gsub(/\/$/, '') + '/' }
43
+ context 'with a nonexistant path', :regression do
44
+ let(:api_path) { '/not/a/real/endpoint' }
45
+ it 'raises a client error' do
46
+ expect { subject }.to raise_error(StackerBee::RequestError)
47
+ end
48
+ end
49
+
50
+ context 'trailing slash in API path', :regression do
51
+ let(:api_path) { api_path_without_slash + '/' }
52
+ let(:api_path_without_slash) { api_path_from_config.sub(/\/$/, '') }
53
+ let(:api_path_from_config) { CONFIG.fetch('api_path', '/client/api') }
40
54
  it 'makes request with trailing slash' do
41
- stub = stub_request(:get, /#{url}/).to_return(body: '{"foo": {}}')
55
+ stub = stub_request(:get, /#{api_path_without_slash}\?apiKey/)
56
+ .to_return(body: '{"foo": {}}')
57
+
42
58
  subject
59
+
43
60
  expect(stub).to have_been_requested
44
61
  end
45
62
  end
@@ -42,6 +42,36 @@ describe StackerBee::Configuration do
42
42
  end
43
43
  end
44
44
 
45
+ describe '#api_path' do
46
+ subject { configuration.api_path }
47
+
48
+ context 'when not set' do
49
+ let(:configuration) { described_class.new }
50
+ it { is_expected.to eq '/client/api' }
51
+ end
52
+
53
+ context 'when set' do
54
+ let(:configuration) { described_class.new(api_path: setting) }
55
+ let(:setting) { '/new-path/cloudstack' }
56
+ it { is_expected.to eq setting }
57
+ end
58
+ end
59
+
60
+ describe '#console_path' do
61
+ subject { configuration.console_path }
62
+
63
+ context 'when not set' do
64
+ let(:configuration) { described_class.new }
65
+ it { is_expected.to eq '/client/console' }
66
+ end
67
+
68
+ context 'when set' do
69
+ let(:configuration) { described_class.new(console_path: setting) }
70
+ let(:setting) { '/new-path/cloudstack' }
71
+ it { is_expected.to eq setting }
72
+ end
73
+ end
74
+
45
75
  describe '#secret_key' do
46
76
  subject { configuration.secret_key }
47
77
 
@@ -8,7 +8,7 @@ describe StackerBee::Middleware::Adapter do
8
8
  end
9
9
  let(:app) { double(:app, call: response) }
10
10
  let(:response) { double(:response) }
11
- let(:path) { double(:path) }
11
+ let(:path) { '/the/path' }
12
12
 
13
13
  let(:params) { { 'z' => 'z', 'a' => 'a' } }
14
14
  let(:connection) { double(:connection, get: raw_response) }
@@ -43,6 +43,14 @@ describe StackerBee::Middleware::Adapter do
43
43
  it 'sorts the paramers' do
44
44
  expect(connection).to have_received(:get).with(path, [%w(a a), %w(z z)])
45
45
  end
46
+
47
+ context 'when the path ends in a slash' do
48
+ let(:path) { '/my/path/' }
49
+ it 'discards the trailing slash' do
50
+ expect(connection).to \
51
+ have_received(:get).with('/my/path', [%w(a a), %w(z z)])
52
+ end
53
+ end
46
54
  end
47
55
 
48
56
  describe '#endpoint_name_for' do
@@ -1,12 +1,13 @@
1
1
  describe StackerBee::Middleware::CloudStackAPI do
2
2
  let(:env) do
3
3
  StackerBee::Middleware::Environment.new(
4
- endpoint_name: 'endpoint-name',
5
- path: path
4
+ endpoint_name: 'endpoint-name'
6
5
  )
7
6
  end
8
- let(:middleware) { described_class.new(api_key: 'API-KEY', params: {}) }
9
- let(:path) { nil }
7
+ let(:middleware) do
8
+ described_class.new(api_key: 'API-KEY', api_path: api_path)
9
+ end
10
+ let(:api_path) { '/my/path' }
10
11
 
11
12
  before do
12
13
  middleware.before(env)
@@ -15,15 +16,7 @@ describe StackerBee::Middleware::CloudStackAPI do
15
16
  describe 'request' do
16
17
  subject { env.request }
17
18
 
18
- context 'when the path is not set' do
19
- let(:path) { nil }
20
- its(:path) { should == described_class::DEFAULT_PATH }
21
- end
22
-
23
- context 'when the path is already set' do
24
- let(:path) { 'already set' }
25
- its(:path) { should == path }
26
- end
19
+ its(:path) { should == '/my/path' }
27
20
  end
28
21
 
29
22
  describe 'params' do
@@ -3,15 +3,18 @@ describe StackerBee::Middleware::ConsoleAccess do
3
3
  StackerBee::Middleware::Environment.new(endpoint_name: endpoint_name)
4
4
  end
5
5
 
6
- let(:middleware) { described_class.new(app: app) }
6
+ let(:middleware) do
7
+ described_class.new(app: app, console_path: console_path)
8
+ end
7
9
  let(:app) { double(:app) }
10
+ let(:console_path) { '/path/to/console' }
8
11
 
9
12
  context 'when it matches the endpoint' do
10
13
  let(:endpoint_name) { described_class::ENDPOINT }
11
14
 
12
15
  it 'adds its path to the env' do
13
16
  middleware.before(env)
14
- expect(env.request.path).to eq described_class::PATH
17
+ expect(env.request.path).to eq console_path
15
18
  end
16
19
 
17
20
  it 'adds cmd to the parameters' do
@@ -25,7 +28,7 @@ describe StackerBee::Middleware::ConsoleAccess do
25
28
  before { middleware.before(env) }
26
29
 
27
30
  it "doesn't add it's path" do
28
- expect(env.request.path).not_to eq described_class::PATH
31
+ expect(env.request.path).to be_nil
29
32
  end
30
33
 
31
34
  it "doesn't add cmd to the parameters" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stacker_bee
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1.pre305
4
+ version: 2.1.1.pre324
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Sterndale
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-21 00:00:00.000000000 Z
12
+ date: 2014-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -245,17 +245,13 @@ files:
245
245
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml
246
246
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_and_empty_string/properly_executes_the_request.yml
247
247
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_that_triggers_an_error/properly_signs_the_request.yml
248
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml
249
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml
250
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml
251
248
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml
252
249
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml
253
250
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml
254
251
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_doesn_t_match_the_content_type/uses_the_middleware.yml
255
252
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_matches_the_content_type/uses_the_middleware.yml
256
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml
257
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml
258
253
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/space_character_in_a_request_parameter/properly_signs_the_request.yml
254
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/with_a_nonexistant_path/raises_a_client_error.yml
259
255
  - spec/fixtures/4.2.json
260
256
  - spec/fixtures/simple.json
261
257
  - spec/integration/configure_middleware_spec.rb
@@ -319,17 +315,13 @@ test_files:
319
315
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml
320
316
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_and_empty_string/properly_executes_the_request.yml
321
317
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_that_triggers_an_error/properly_signs_the_request.yml
322
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml
323
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml
324
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml
325
318
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml
326
319
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml
327
320
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml
328
321
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_doesn_t_match_the_content_type/uses_the_middleware.yml
329
322
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_matches_the_content_type/uses_the_middleware.yml
330
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml
331
- - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml
332
323
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/space_character_in_a_request_parameter/properly_signs_the_request.yml
324
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/with_a_nonexistant_path/raises_a_client_error.yml
333
325
  - spec/fixtures/4.2.json
334
326
  - spec/fixtures/simple.json
335
327
  - spec/integration/configure_middleware_spec.rb