stacker_bee 2.1.1.pre324 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +5 -13
  2. data/.rspec +0 -1
  3. data/.travis.yml +1 -0
  4. data/Gemfile +1 -8
  5. data/README.md +8 -43
  6. data/bin/stacker_bee +3 -4
  7. data/config.default.yml +1 -1
  8. data/lib/stacker_bee/client.rb +2 -8
  9. data/lib/stacker_bee/configuration.rb +2 -22
  10. data/lib/stacker_bee/middleware/adapter.rb +2 -18
  11. data/lib/stacker_bee/middleware/cloud_stack_api.rb +2 -1
  12. data/lib/stacker_bee/middleware/console_access.rb +2 -1
  13. data/lib/stacker_bee/rash.rb +2 -25
  14. data/lib/stacker_bee/request_error.rb +1 -1
  15. data/spec/cassettes/A_request_sent_to_CloudStack_for_console_access/returns_html_for_console_access.yml +1 -1
  16. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/.yml +5 -5
  17. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_nil_request_parameter/properly_executes_the_request.yml +6 -6
  18. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_a_map/can_create_an_object.yml +60 -30
  19. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml +9 -9
  20. 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 +6 -6
  21. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_that_triggers_an_error/properly_signs_the_request.yml +3 -3
  22. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml +37 -0
  23. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml +37 -0
  24. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml +33 -0
  25. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml +6 -6
  26. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml +6 -6
  27. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml +6 -6
  28. 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 +4 -4
  29. 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 +4 -4
  30. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml +33 -0
  31. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml +33 -0
  32. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/space_character_in_a_request_parameter/properly_signs_the_request.yml +4 -4
  33. data/spec/integration/configure_middleware_spec.rb +2 -0
  34. data/spec/integration/console_spec.rb +5 -4
  35. data/spec/integration/request_spec.rb +10 -26
  36. data/spec/spec_helper.rb +7 -0
  37. data/spec/units/stacker_bee/api_spec.rb +2 -0
  38. data/spec/units/stacker_bee/client_spec.rb +1 -0
  39. data/spec/units/stacker_bee/configuration_spec.rb +2 -30
  40. data/spec/units/stacker_bee/connection_spec.rb +2 -0
  41. data/spec/units/stacker_bee/middleware/adapter_spec.rb +3 -9
  42. data/spec/units/stacker_bee/middleware/base_spec.rb +2 -0
  43. data/spec/units/stacker_bee/middleware/cloud_stack_api_spec.rb +15 -6
  44. data/spec/units/stacker_bee/middleware/console_access_spec.rb +5 -6
  45. data/spec/units/stacker_bee/middleware/dictionary_flattener_spec.rb +2 -0
  46. data/spec/units/stacker_bee/middleware/endpoint_normalizer_spec.rb +2 -0
  47. data/spec/units/stacker_bee/middleware/error_message_spec.rb +2 -0
  48. data/spec/units/stacker_bee/middleware/format_keys_spec.rb +2 -0
  49. data/spec/units/stacker_bee/middleware/format_values_spec.rb +2 -0
  50. data/spec/units/stacker_bee/middleware/http_status_spec.rb +2 -0
  51. data/spec/units/stacker_bee/middleware/log_response_spec.rb +1 -0
  52. data/spec/units/stacker_bee/middleware/raise_on_http_errors_spec.rb +2 -0
  53. data/spec/units/stacker_bee/middleware/remove_empty_strings_spec.rb +2 -0
  54. data/spec/units/stacker_bee/middleware/remove_nils_spec.rb +2 -0
  55. data/spec/units/stacker_bee/rash_spec.rb +4 -18
  56. data/spec/units/stacker_bee/request_error_spec.rb +2 -0
  57. data/spec/units/stacker_bee/utilities_spec.rb +2 -0
  58. data/spec/units/stacker_bee_spec.rb +2 -0
  59. data/stacker_bee.gemspec +5 -4
  60. metadata +41 -18
  61. data/spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/with_a_nonexistant_path/raises_a_client_error.yml +0 -47
@@ -1,20 +1,16 @@
1
+ require 'spec_helper'
1
2
  require 'logger'
2
3
 
3
4
  describe 'A response to a request sent to the CloudStack API', :vcr do
4
5
  subject { client.list_accounts }
5
6
 
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
+ let(:url) { CONFIG['url'] }
10
8
  let(:config_hash) do
11
9
  {
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
10
+ url: url,
11
+ api_key: CONFIG['api_key'],
12
+ secret_key: CONFIG['secret_key'],
13
+ middlewares: middlewares
18
14
  }
19
15
  end
20
16
  let(:middlewares) { proc {} }
@@ -33,30 +29,18 @@ describe 'A response to a request sent to the CloudStack API', :vcr do
33
29
  end
34
30
 
35
31
  context 'failing to connect' do
36
- let(:url) { 'http://127.0.0.1:666' }
32
+ let(:url) { 'http://127.0.0.1:666/client/api' }
37
33
  it 'raises a helpful exception' do
38
34
  klass = StackerBee::ConnectionError
39
35
  expect { subject }.to raise_error klass, /#{url}/
40
36
  end
41
37
  end
42
38
 
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') }
39
+ context 'trailing slash in URL', :regression do
40
+ let(:url) { CONFIG['url'].gsub(/\/$/, '') + '/' }
54
41
  it 'makes request with trailing slash' do
55
- stub = stub_request(:get, /#{api_path_without_slash}\?apiKey/)
56
- .to_return(body: '{"foo": {}}')
57
-
42
+ stub = stub_request(:get, /#{url}/).to_return(body: '{"foo": {}}')
58
43
  subject
59
-
60
44
  expect(stub).to have_been_requested
61
45
  end
62
46
  end
@@ -1,5 +1,12 @@
1
1
  require 'simplecov'
2
2
 
3
+ # This file was generated by the `rspec --init` command. Conventionally, all
4
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
5
+ # Require this file using `require "spec_helper"` to ensure that it is only
6
+ # loaded once.
7
+ #
8
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
9
+
3
10
  require File.expand_path('../../lib/stacker_bee', __FILE__)
4
11
 
5
12
  require 'yaml'
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::API do
2
4
  subject { api }
3
5
 
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'ostruct'
2
3
 
3
4
  describe StackerBee::Client, '.api' do
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Configuration do
2
4
  describe "setting an attribute that doesn't exist" do
3
5
  [:ssl_verify?, :url?, :other_attr].each do |attr|
@@ -42,36 +44,6 @@ describe StackerBee::Configuration do
42
44
  end
43
45
  end
44
46
 
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
-
75
47
  describe '#secret_key' do
76
48
  subject { configuration.secret_key }
77
49
 
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Connection do
2
4
  subject(:get) { connection.get(path, query_params) }
3
5
  before { allow(Faraday).to receive_messages new: faraday }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::Adapter do
2
4
  let(:env) do
3
5
  StackerBee::Middleware::Environment.new(
@@ -8,7 +10,7 @@ describe StackerBee::Middleware::Adapter do
8
10
  end
9
11
  let(:app) { double(:app, call: response) }
10
12
  let(:response) { double(:response) }
11
- let(:path) { '/the/path' }
13
+ let(:path) { double(:path) }
12
14
 
13
15
  let(:params) { { 'z' => 'z', 'a' => 'a' } }
14
16
  let(:connection) { double(:connection, get: raw_response) }
@@ -43,14 +45,6 @@ describe StackerBee::Middleware::Adapter do
43
45
  it 'sorts the paramers' do
44
46
  expect(connection).to have_received(:get).with(path, [%w(a a), %w(z z)])
45
47
  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
54
48
  end
55
49
 
56
50
  describe '#endpoint_name_for' do
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::Base do
2
4
  let(:env) { StackerBee::Middleware::Environment.new(params: params) }
3
5
  let(:params) { {} }
@@ -1,13 +1,14 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::CloudStackAPI do
2
4
  let(:env) do
3
5
  StackerBee::Middleware::Environment.new(
4
- endpoint_name: 'endpoint-name'
6
+ endpoint_name: 'endpoint-name',
7
+ path: path
5
8
  )
6
9
  end
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
+ let(:middleware) { described_class.new(api_key: 'API-KEY', params: {}) }
11
+ let(:path) { nil }
11
12
 
12
13
  before do
13
14
  middleware.before(env)
@@ -16,7 +17,15 @@ describe StackerBee::Middleware::CloudStackAPI do
16
17
  describe 'request' do
17
18
  subject { env.request }
18
19
 
19
- its(:path) { should == '/my/path' }
20
+ context 'when the path is not set' do
21
+ let(:path) { nil }
22
+ its(:path) { should == described_class::DEFAULT_PATH }
23
+ end
24
+
25
+ context 'when the path is already set' do
26
+ let(:path) { 'already set' }
27
+ its(:path) { should == path }
28
+ end
20
29
  end
21
30
 
22
31
  describe 'params' do
@@ -1,20 +1,19 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::ConsoleAccess do
2
4
  let(:env) do
3
5
  StackerBee::Middleware::Environment.new(endpoint_name: endpoint_name)
4
6
  end
5
7
 
6
- let(:middleware) do
7
- described_class.new(app: app, console_path: console_path)
8
- end
8
+ let(:middleware) { described_class.new(app: app) }
9
9
  let(:app) { double(:app) }
10
- let(:console_path) { '/path/to/console' }
11
10
 
12
11
  context 'when it matches the endpoint' do
13
12
  let(:endpoint_name) { described_class::ENDPOINT }
14
13
 
15
14
  it 'adds its path to the env' do
16
15
  middleware.before(env)
17
- expect(env.request.path).to eq console_path
16
+ expect(env.request.path).to eq described_class::PATH
18
17
  end
19
18
 
20
19
  it 'adds cmd to the parameters' do
@@ -28,7 +27,7 @@ describe StackerBee::Middleware::ConsoleAccess do
28
27
  before { middleware.before(env) }
29
28
 
30
29
  it "doesn't add it's path" do
31
- expect(env.request.path).to be_nil
30
+ expect(env.request.path).not_to eq described_class::PATH
32
31
  end
33
32
 
34
33
  it "doesn't add cmd to the parameters" do
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::DictionaryFlattener do
2
4
  let(:lb) { described_class::LB }
3
5
  let(:rb) { described_class::RB }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::EndpointNormalizer do
2
4
  let(:middleware) { described_class.new(app: app, api: api) }
3
5
  let(:app) { double(:app) }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::ErrorMessage do
2
4
  subject { env.response }
3
5
  before { middleware.after(env) }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::FormatKeys do
2
4
  subject { described_class.new.transform_params(params) }
3
5
 
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::FormatValues do
2
4
  subject { described_class.new.transform_params(params) }
3
5
 
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::HTTPStatus do
2
4
  subject { env.response }
3
5
  before { middleware.after(env) }
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  describe StackerBee::Middleware::LogResponse do
2
3
  describe 'after' do
3
4
  let(:logger) { FakeLogger.new }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::RaiseOnHTTPError do
2
4
  skip
3
5
  end
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  # TODO: does this really need to work with nested hashes?
2
4
  describe StackerBee::Middleware::RemoveEmptyStrings do
3
5
  # rubocop:disable RSpec/InstanceVariable
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Middleware::RemoveNils do
2
4
  it 'removes pairs with nil values from the params' do
3
5
  expect(subject.transform_params(something: 'something', nothing: nil))
@@ -1,9 +1,11 @@
1
+ require 'spec_helper'
2
+
1
3
  shared_examples_for 'a Rash' do |mapping|
2
4
  mapping.each_pair { |key, value| its([key]) { should == value } }
3
5
  end
4
6
 
5
7
  describe StackerBee::Rash do
6
- subject(:rash) { described_class.new(hash) }
8
+ subject { rash }
7
9
 
8
10
  let(:wiz) { [{ 'aB_C' => 'abc' }, { 'X_yZ' => 'xyz' }] }
9
11
  let(:ziz) do
@@ -28,6 +30,7 @@ describe StackerBee::Rash do
28
30
  end
29
31
  end
30
32
  let(:dissimilar_hash) { hash.dup.tap { |loud| loud.delete 'foo' } }
33
+ let(:rash) { described_class.new(hash) }
31
34
 
32
35
  it { is_expected.to include 'FOO' }
33
36
 
@@ -81,21 +84,4 @@ describe StackerBee::Rash do
81
84
  subject { rash.values_at 'FOO', 'WIZ', 'WRONG' }
82
85
  it { is_expected.to eq ['foo', wiz, nil] }
83
86
  end
84
-
85
- describe 'with preferred keys' do
86
- subject { described_class.new(hash, preferred_keys) }
87
- let(:preferred_keys) { [:foo, 'BAR', :b_a_z] }
88
- let(:hash) do
89
- {
90
- f_o_o: 'foo',
91
- ba_r: 'bar',
92
- baz: 'baz',
93
- Ot_her: 'other'
94
- }
95
- end
96
-
97
- it 'is stored as preferred if mentioned, otherwise as uncased' do
98
- expect(subject.keys).to match_array [:foo, 'BAR', :b_a_z, 'other']
99
- end
100
- end
101
87
  end
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe 'An error occuring' do
2
4
  let(:env) { double(response: response) }
3
5
  let(:response) { double(status: status, error: error_text) }
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee::Utilities do
2
4
  include described_class
3
5
 
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe StackerBee do
2
4
  it { expect(StackerBee::VERSION).not_to be_nil }
3
5
  end
@@ -26,16 +26,17 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.add_development_dependency 'bundler', '~> 1.3'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
29
- spec.add_development_dependency 'rspec', '~> 3.1.0'
30
- spec.add_development_dependency 'rspec-its', '~> 1.1.0'
29
+ spec.add_development_dependency 'rspec', '~> 3.0.0'
30
+ spec.add_development_dependency 'rspec-its', '~> 1.0'
31
31
  spec.add_development_dependency 'webmock', '~> 1.15'
32
32
  spec.add_development_dependency 'vcr', '~> 2.9'
33
+ spec.add_development_dependency 'pry'
33
34
  spec.add_development_dependency 'coveralls'
34
35
 
35
36
  # It should be consistent for Travis and all developers, since we don't check
36
37
  # in the Gemfile.lock
37
- spec.add_development_dependency 'rubocop', '0.27.1'
38
- spec.add_development_dependency 'rubocop-rspec', '1.2.1'
38
+ spec.add_development_dependency 'rubocop', '0.24.1'
39
+ spec.add_development_dependency 'rubocop-rspec', '1.1.0'
39
40
 
40
41
  # Release every merge to master as a prerelease
41
42
  if ENV['TRAVIS']
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.pre324
4
+ version: 2.1.1
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-25 00:00:00.000000000 Z
12
+ date: 2014-08-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -93,28 +93,28 @@ dependencies:
93
93
  requirements:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: 3.1.0
96
+ version: 3.0.0
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: 3.1.0
103
+ version: 3.0.0
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: rspec-its
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: 1.1.0
110
+ version: '1.0'
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 1.1.0
117
+ version: '1.0'
118
118
  - !ruby/object:Gem::Dependency
119
119
  name: webmock
120
120
  requirement: !ruby/object:Gem::Requirement
@@ -143,18 +143,32 @@ dependencies:
143
143
  - - ~>
144
144
  - !ruby/object:Gem::Version
145
145
  version: '2.9'
146
+ - !ruby/object:Gem::Dependency
147
+ name: pry
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
146
160
  - !ruby/object:Gem::Dependency
147
161
  name: coveralls
148
162
  requirement: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ! '>='
164
+ - - '>='
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  type: :development
154
168
  prerelease: false
155
169
  version_requirements: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - ! '>='
171
+ - - '>='
158
172
  - !ruby/object:Gem::Version
159
173
  version: '0'
160
174
  - !ruby/object:Gem::Dependency
@@ -163,28 +177,28 @@ dependencies:
163
177
  requirements:
164
178
  - - '='
165
179
  - !ruby/object:Gem::Version
166
- version: 0.27.1
180
+ version: 0.24.1
167
181
  type: :development
168
182
  prerelease: false
169
183
  version_requirements: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - '='
172
186
  - !ruby/object:Gem::Version
173
- version: 0.27.1
187
+ version: 0.24.1
174
188
  - !ruby/object:Gem::Dependency
175
189
  name: rubocop-rspec
176
190
  requirement: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - '='
179
193
  - !ruby/object:Gem::Version
180
- version: 1.2.1
194
+ version: 1.1.0
181
195
  type: :development
182
196
  prerelease: false
183
197
  version_requirements: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - '='
186
200
  - !ruby/object:Gem::Version
187
- version: 1.2.1
201
+ version: 1.1.0
188
202
  description: Ruby CloudStack client and CLI
189
203
  email:
190
204
  - team@promptworks.com
@@ -245,13 +259,17 @@ files:
245
259
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml
246
260
  - 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
261
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_that_triggers_an_error/properly_signs_the_request.yml
262
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml
263
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml
264
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml
248
265
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml
249
266
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml
250
267
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml
251
268
  - 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
252
269
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_matches_the_content_type/uses_the_middleware.yml
270
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml
271
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml
253
272
  - 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
255
273
  - spec/fixtures/4.2.json
256
274
  - spec/fixtures/simple.json
257
275
  - spec/integration/configure_middleware_spec.rb
@@ -293,17 +311,17 @@ require_paths:
293
311
  - lib
294
312
  required_ruby_version: !ruby/object:Gem::Requirement
295
313
  requirements:
296
- - - ! '>='
314
+ - - '>='
297
315
  - !ruby/object:Gem::Version
298
316
  version: '0'
299
317
  required_rubygems_version: !ruby/object:Gem::Requirement
300
318
  requirements:
301
- - - ! '>'
319
+ - - '>='
302
320
  - !ruby/object:Gem::Version
303
- version: 1.3.1
321
+ version: '0'
304
322
  requirements: []
305
323
  rubyforge_project:
306
- rubygems_version: 2.4.2
324
+ rubygems_version: 2.0.14
307
325
  signing_key:
308
326
  specification_version: 4
309
327
  summary: Ruby CloudStack client
@@ -315,13 +333,17 @@ test_files:
315
333
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_an_Array/.yml
316
334
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_parameter_with_and_empty_string/properly_executes_the_request.yml
317
335
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/a_request_that_triggers_an_error/properly_signs_the_request.yml
336
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/.yml
337
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/containing_an_error/should_log_response_as_error.yml
338
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first/.yml
318
339
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/.yml
319
340
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_account_type_/.yml
320
341
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/first_item/_accounttype_/.yml
321
342
  - 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
322
343
  - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/middleware/a_middleware_that_matches_the_content_type/uses_the_middleware.yml
344
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_log_request.yml
345
+ - spec/cassettes/A_response_to_a_request_sent_to_the_CloudStack_API/should_not_log_response_as_error.yml
323
346
  - 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
325
347
  - spec/fixtures/4.2.json
326
348
  - spec/fixtures/simple.json
327
349
  - spec/integration/configure_middleware_spec.rb
@@ -352,3 +374,4 @@ test_files:
352
374
  - spec/units/stacker_bee/request_error_spec.rb
353
375
  - spec/units/stacker_bee/utilities_spec.rb
354
376
  - spec/units/stacker_bee_spec.rb
377
+ has_rdoc: