stacker_bee 2.1.1.pre324 → 2.1.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 (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: