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
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Njk5OTk4ZGQ2Nzc4ODljOWYyMDc0OTgzZDFhZTNhNmI3MDkxNzRlNA==
5
- data.tar.gz: !binary |-
6
- Y2U1ZjVhYWNlN2M0N2QzN2YwZjc3NjZhYTIxOTMyYzM1YTc2ODY0ZA==
2
+ SHA1:
3
+ metadata.gz: 422b00e43af4e6e36a7193f788c3e2632054b1dd
4
+ data.tar.gz: 87e7ee5e1079f8d6092be8d787a3f9734f4a3c42
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MGM4NzZiOGU2ZTZjODJiZDFiOGZlN2MzN2RhZTZhNmIzNzJjY2RiNTY5ODg3
10
- YTg5MDMxM2JjNjRmZWY4OThkNjZkZTg0ZGQ2OWFmZGFjZGQxMTcyNTIzNmRk
11
- MjE1MDg2NTQ2MDc3ODU3YWVmMjI2MzE0YjliZjBkMjI2OWQwNTc=
12
- data.tar.gz: !binary |-
13
- ODhkNGRlMTBiODliZTZkYTA1ZjkyYTVhMjgzNzYyMTBhOGVlZTkzNDI4Mzll
14
- NzBkNTU0ZGM2MTAzODg5MGZkZGIwZjJiYWE1OGZlMmRiMjYwYzVhZDEwZDUx
15
- ZDFiYjA3YThiODY3N2RlOTQyYmEwZGVmZTQ2YWU5MTIxMWMzYzc=
6
+ metadata.gz: 5d00bc2fedb16a0035d25930fd69233fb7e08313884f3ea09e762e5047097da65b59dcec08a1312fd3e78c4ebc92927459f73d0ba9d9e924ed568c0e58327831
7
+ data.tar.gz: e89b31a178ed48bba9ddc67ad8ff266dd9645f6a64b8e060e9910072714dba37b632131fb4f5dd10fd5ddb9fe546b49eeb066edfbdab6cfcd8e35ede2129692e
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
1
  --color
2
2
  --format progress
3
- --require spec_helper
@@ -3,6 +3,7 @@ rvm:
3
3
  - 2.1
4
4
  - 2.0.0
5
5
  - 1.9.3
6
+ - 1.9.2
6
7
  - jruby-19mode
7
8
  - ruby-head
8
9
  - jruby-head
data/Gemfile CHANGED
@@ -1,11 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ # Specify your gem's dependencies in stacker_bee.gemspec
3
4
  gemspec
4
-
5
- # webmock 1.19.0 breaks VCR cassettes using multiple brackets
6
- # Could be related to https://github.com/bblimke/webmock/issues/365
7
- gem 'webmock', '1.18.0'
8
-
9
- group :development do
10
- gem 'pry'
11
- end
data/README.md CHANGED
@@ -29,7 +29,7 @@ And execute:
29
29
 
30
30
  ```ruby
31
31
  cloud_stack = StackerBee::Client.new(
32
- url: 'http://localhost:8080',
32
+ url: 'http://localhost:8080/client/api',
33
33
  api_key: 'MY_API_KEY',
34
34
  secret_key: 'MY_SECRET_KEY'
35
35
  )
@@ -85,7 +85,7 @@ Usage:
85
85
 
86
86
  Example:
87
87
 
88
- $ stacker_bee -u http://localhost:8080 -a MY_API_KEY -s MY_SECRET_KEY
88
+ $ stacker_bee -u http://localhost:8080/client/api -a MY_API_KEY -s MY_SECRET_KEY
89
89
  StackerBee CloudStack REPL
90
90
  >> list_virtual_machines state: 'Running'
91
91
  => [{"id"=>"48b91ab4-dc23-4e24-bc6f-695d58c91087",
@@ -100,7 +100,7 @@ Configuring a client:
100
100
 
101
101
  ```ruby
102
102
  cloud_stack = StackerBee::Client.new(
103
- url: 'http://localhost:8080',
103
+ url: 'http://localhost:8080/client/api',
104
104
  api_key: 'API_KEY',
105
105
  secret_key: 'SECRET_KEY'
106
106
  )
@@ -109,7 +109,7 @@ cloud_stack = StackerBee::Client.new(
109
109
  All configuration parameters set on the `StackerBee::Client` class are used as defaults for `StackerBee::Client` instances.
110
110
 
111
111
  ```ruby
112
- StackerBee::Client.url = 'http://localhost:8080'
112
+ StackerBee::Client.url = 'http://localhost:8080/client/api'
113
113
 
114
114
  user_client = StackerBee::Client.new(
115
115
  api_key: 'USER_API_KEY',
@@ -127,52 +127,17 @@ root_client = StackerBee::Client.new(
127
127
  The URL of your CloudStack instance's URL.
128
128
 
129
129
  ```ruby
130
- StackerBee::Client.url = 'http://localhost:8080'
130
+ StackerBee::Client.url = 'http://localhost:8080/client/api'
131
131
  ```
132
132
 
133
133
  Or:
134
134
 
135
135
  ```ruby
136
136
  my_client = StackerBee::Client.new(
137
- url: 'http://localhost:8080'
137
+ url: 'http://localhost:8080/client/api'
138
138
  )
139
139
  ```
140
140
 
141
- ### API path
142
-
143
- The path of your CloudStack instance's API URL.
144
- Defaults to `'/client/api/'`.
145
-
146
- ```ruby
147
- StackerBee::Client.api_path = '/other-path/client/api'
148
- ```
149
-
150
- Or:
151
-
152
- ```ruby
153
- my_client = StackerBee::Client.new(
154
- api_path: '/other-path/client/api'
155
- )
156
- ```
157
-
158
- ### Console path
159
-
160
- The path of your CloudStack instance's URL for console access.
161
- Defaults to `'/client/console/'`.
162
-
163
- ```ruby
164
- StackerBee::Client.console_path = '/other-path/client/console'
165
- ```
166
-
167
- Or:
168
-
169
- ```ruby
170
- my_client = StackerBee::Client.new(
171
- console_path: '/other-path/client/console'
172
- )
173
- ```
174
-
175
-
176
141
  ### Keys
177
142
 
178
143
  Your CloudStack credentials, i.e. API key and secret key.
@@ -254,7 +219,7 @@ StackerBee supports using SSL. To do so, use an HTTPS URL. In some deployments,
254
219
 
255
220
  ```ruby
256
221
  StackerBee::Client.configuration = {
257
- url: 'https://my-cloudstack-server',
222
+ url: 'https://my-cloudstack-server/client/api',
258
223
  ssl_verify: false # ignore certificate validation errors
259
224
  }
260
225
  ```
@@ -265,7 +230,7 @@ The `StackerBee::Client` class can be configured with multiple options at once.
265
230
 
266
231
  ```ruby
267
232
  StackerBee::Client.configuration = {
268
- url: 'http://localhost:8080',
233
+ url: 'http://localhost:8080/client/api',
269
234
  api_key: 'API_KEY',
270
235
  secret_key: 'MY_SECRET_KEY'
271
236
  }
@@ -58,10 +58,9 @@ begin
58
58
  options.merge! Hash[YAML.load(hash).map { |k, v| [k.to_sym, v] }]
59
59
  end
60
60
  unless options.keys.include?(:config) ||
61
- ([:api_key, :secret_key, :url] - options.keys).empty?
62
- puts \
63
- 'Please specify a config file with --config, or all of the following: ' \
64
- '--api_key, --secret_key and --url'
61
+ ([:api_key, :secret_key, :url] - options.keys).empty?
62
+ puts 'Please specify a config file or all of the following: ' \
63
+ '--api_key, --secret_key and --url'
65
64
  exit
66
65
  end
67
66
  rescue OptionParser::InvalidOption, OptionParser::MissingArgument
@@ -1,3 +1,3 @@
1
- url: 'http://127.0.0.1:1234'
1
+ url: 'http://127.0.0.1:1234/client/api/'
2
2
  api_key: 'MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY-KEY-MY'
3
3
  secret_key: 'TOP-SECRET-TOP-SECRET-TOP-SECRET-TOP-SECRET-TOP-SECRET-TOP-SECRET-TOP-SECRET-TOP-SECRE'
@@ -31,17 +31,13 @@ module StackerBee
31
31
  )
32
32
 
33
33
  # rubocop:disable MethodLength
34
- # rubocop:disable Metrics/AbcSize
35
34
  def middlewares
36
35
  # request
37
- builder.use Middleware::ConsoleAccess,
38
- console_path: configuration.console_path
36
+ builder.use Middleware::ConsoleAccess
39
37
 
40
38
  builder.use Middleware::EndpointNormalizer, api: self.class.api
41
39
  builder.use Middleware::RemoveEmptyStrings
42
- builder.use Middleware::CloudStackAPI,
43
- api_path: configuration.api_path,
44
- api_key: configuration.api_key
40
+ builder.use Middleware::CloudStackAPI, api_key: configuration.api_key
45
41
 
46
42
  configuration.middlewares.call builder
47
43
 
@@ -64,8 +60,6 @@ module StackerBee
64
60
 
65
61
  builder.build
66
62
  end
67
- # rubocop:enable Metrics/AbcSize
68
- # rubocop:enable MethodLength
69
63
 
70
64
  def builder
71
65
  @builder ||= Builder.new
@@ -6,8 +6,6 @@ module StackerBee
6
6
  ATTRIBUTES = [
7
7
  :ssl_verify,
8
8
  :url,
9
- :api_path,
10
- :console_path,
11
9
  :secret_key,
12
10
  :api_key,
13
11
  :middlewares,
@@ -39,14 +37,6 @@ module StackerBee
39
37
  attribute :url
40
38
  end
41
39
 
42
- def api_path
43
- attribute :api_path, '/client/api'
44
- end
45
-
46
- def console_path
47
- attribute :console_path, '/client/console'
48
- end
49
-
50
40
  def secret_key
51
41
  attribute :secret_key
52
42
  end
@@ -77,18 +67,8 @@ module StackerBee
77
67
 
78
68
  private
79
69
 
80
- def attribute(key, default_value = nil)
81
- value = @attributes.fetch(key, default_value)
82
-
83
- if blank?(value)
84
- default_value
85
- else
86
- value
87
- end
88
- end
89
-
90
- def blank?(value)
91
- value.nil? || value == ''
70
+ def attribute(key, value = nil)
71
+ @attributes.fetch(key, value)
92
72
  end
93
73
  end
94
74
  end
@@ -2,29 +2,13 @@ module StackerBee
2
2
  module Middleware
3
3
  class Adapter < Base
4
4
  def call(env)
5
- perform_request env
6
- pluck_content_type env
7
- pluck_body env
8
- end
9
-
10
- def pluck_content_type(env)
5
+ params = env.request.params.to_a.sort
6
+ env.raw_response = connection.get(env.request.path, params)
11
7
  env.response.content_type =
12
8
  env.raw_response.env[:response_headers]['content-type']
13
- end
14
-
15
- def pluck_body(env)
16
9
  env.response.body = env.raw_response.body
17
10
  end
18
11
 
19
- def perform_request(env)
20
- params = env.request.params.to_a.sort
21
- env.raw_response = connection.get(path(env), params)
22
- end
23
-
24
- def path(env)
25
- env.request.path.to_s.gsub(/\/$/, '')
26
- end
27
-
28
12
  def endpoint_name_for(*)
29
13
  end
30
14
  end
@@ -2,6 +2,7 @@ module StackerBee
2
2
  module Middleware
3
3
  class CloudStackAPI < Base
4
4
  RESPONSE_TYPE = 'json'
5
+ DEFAULT_PATH = '/client/api/'
5
6
 
6
7
  def before(env)
7
8
  env.request.params.merge!(
@@ -9,7 +10,7 @@ module StackerBee
9
10
  command: env.request.endpoint_name,
10
11
  response: RESPONSE_TYPE
11
12
  )
12
- env.request.path ||= api_path
13
+ env.request.path ||= DEFAULT_PATH
13
14
  end
14
15
  end
15
16
  end
@@ -4,12 +4,13 @@ module StackerBee
4
4
  include Utilities
5
5
 
6
6
  ENDPOINT = 'consoleAccess'
7
+ PATH = '/client/console'
7
8
  PARAMS = { cmd: 'access' }
8
9
 
9
10
  def before(env)
10
11
  return unless matches_endpoint?(env.request.endpoint_name)
11
12
  super
12
- env.request.path = console_path
13
+ env.request.path = PATH
13
14
  env.request.endpoint_name = ENDPOINT
14
15
  end
15
16
 
@@ -12,11 +12,8 @@ module StackerBee
12
12
  :flatten, :invert, :keys, :key, :merge, :rassoc, :to_a, :to_h, :to_hash
13
13
  ]
14
14
 
15
- def initialize(hash = {}, preferred_keys = [])
15
+ def initialize(hash = {})
16
16
  @hash = {}
17
-
18
- save_preferred_keys preferred_keys
19
-
20
17
  hash.each_pair do |key, value|
21
18
  @hash[convert_key(key)] = convert_value(value)
22
19
  end
@@ -81,27 +78,7 @@ module StackerBee
81
78
  end
82
79
 
83
80
  def convert_key(key)
84
- if key.is_a?(Numeric)
85
- key
86
- elsif preferred_key_format?(key)
87
- preferred_key_format(key)
88
- else
89
- uncase(key)
90
- end
91
- end
92
-
93
- def save_preferred_keys(keys)
94
- @preferred_keys = keys.each_with_object({}) do |key, mapping|
95
- mapping[uncase(key)] = key
96
- end
97
- end
98
-
99
- def preferred_key_format?(key)
100
- @preferred_keys.key?(uncase(key))
101
- end
102
-
103
- def preferred_key_format(key)
104
- @preferred_keys[uncase(key)]
81
+ key.is_a?(Numeric) ? key : uncase(key)
105
82
  end
106
83
 
107
84
  def convert_value(value)
@@ -5,7 +5,7 @@ module StackerBee
5
5
  def initialize(env)
6
6
  self.env = env
7
7
  self.status = env.response.status
8
- super env.response.error || env.request.path
8
+ super env.response.error
9
9
  end
10
10
 
11
11
  def self.for(env)
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_HOST>/client/console?apiKey=<CLOUD_STACK_API_KEY>&cmd=access&command=consoleAccess&response=json&signature=0xjsh2gd3qbGVi9egkb6VHocx%2BI=&vm=36f9c08b-f17a-4d0e-ac9b-d45ce2d34fcd
5
+ uri: <CLOUD_STACK_HOST>/client/console?apiKey=<CLOUD_STACK_API_KEY>&cmd=access&command=consoleAccess&response=json&signature=DsI/kxaNO7AgzDCgE1j/3rtq3xU&vm=36f9c08b-f17a-4d0e-ac9b-d45ce2d34fcd
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
5
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Faraday v0.8.9
11
+ - Faraday v0.8.8
12
12
  Accept-Encoding:
13
13
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
14
  Accept:
@@ -26,8 +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":"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}
29
+ string: '{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":"fdc009b8-2034-11e3-a44b-d6558ad1fb9f","name":"admin","accounttype":1,"domainid":"fdbfec94-2034-11e3-a44b-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":"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
30
  ] } }'
31
31
  http_version:
32
- recorded_at: Mon, 24 Nov 2014 18:07:24 GMT
33
- recorded_with: VCR 2.9.3
32
+ recorded_at: Thu, 24 Oct 2013 18:42:15 GMT
33
+ recorded_with: VCR 2.6.0
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
5
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listAccounts&response=json&signature=oftBcJm8kFc%2Buxul8pAL2%2Bh0bdU=
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Faraday v0.8.9
11
+ - Faraday v0.8.8
12
12
  Accept-Encoding:
13
13
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
14
  Accept:
@@ -21,13 +21,13 @@ http_interactions:
21
21
  Content-Type:
22
22
  - text/javascript; charset=UTF-8
23
23
  Content-Length:
24
- - '1727'
24
+ - '1778'
25
25
  Server:
26
26
  - Jetty(6.1.26)
27
27
  body:
28
28
  encoding: UTF-8
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":3,"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":"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
30
  ] } }'
31
31
  http_version:
32
- recorded_at: Mon, 24 Nov 2014 18:07:26 GMT
33
- recorded_with: VCR 2.9.3
32
+ recorded_at: Mon, 28 Oct 2013 17:22:52 GMT
33
+ recorded_with: VCR 2.6.0
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listZones&response=json&signature=/MnHgTBKGc%2BXx0Z8KwMllvw92vg=
5
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listZones&response=json&signature=/MnHgTBKGc%2BXx0Z8KwMllvw92vg=
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Faraday v0.8.9
11
+ - Faraday v0.8.8
12
12
  Accept-Encoding:
13
13
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
14
  Accept:
@@ -26,19 +26,19 @@ http_interactions:
26
26
  - Jetty(6.1.26)
27
27
  body:
28
28
  encoding: UTF-8
29
- string: '{ "listzonesresponse" : { "count":1 ,"zone" : [ {"id":"3c0f55e5-a4a2-4a82-8c98-20bf34d5766b","name":"Sandbox-simulator","dns1":"10.147.28.6","internaldns1":"10.147.28.6","guestcidraddress":"10.1.1.0/24","networktype":"Advanced","securitygroupsenabled":false,"allocationstate":"Enabled","zonetoken":"f4879166-43de-3164-841c-213cc55f6623","dhcpprovider":"VirtualRouter","localstorageenabled":false}
29
+ string: '{ "listzonesresponse" : { "count":1 ,"zone" : [ {"id":"39e9e31e-925c-4b55-8d33-f99912b73dfc","name":"Sandbox-simulator","dns1":"10.147.28.6","internaldns1":"10.147.28.6","guestcidraddress":"10.1.1.0/24","networktype":"Advanced","securitygroupsenabled":false,"allocationstate":"Enabled","zonetoken":"ea3acbc4-cae8-3b82-b42f-7492ddfede00","dhcpprovider":"VirtualRouter","localstorageenabled":false}
30
30
  ] } }'
31
31
  http_version:
32
- recorded_at: Mon, 24 Nov 2014 18:07:26 GMT
32
+ recorded_at: Thu, 19 Dec 2013 17:34:44 GMT
33
33
  - request:
34
34
  method: get
35
- uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=listNetworkOfferings&response=json&signature=BAdYatJ5Rjcffi6sU8P%2BZtLhSF8=&supportedServices=sourcenat&type=isolated
35
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=listNetworkOfferings&response=json&signature=BAdYatJ5Rjcffi6sU8P%2BZtLhSF8=&supportedServices=sourcenat&type=isolated
36
36
  body:
37
37
  encoding: US-ASCII
38
38
  string: ''
39
39
  headers:
40
40
  User-Agent:
41
- - Faraday v0.8.9
41
+ - Faraday v0.8.8
42
42
  Accept-Encoding:
43
43
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
44
44
  Accept:
@@ -57,26 +57,26 @@ http_interactions:
57
57
  body:
58
58
  encoding: UTF-8
59
59
  string: '{ "listnetworkofferingsresponse" : { "count":4 ,"networkoffering" :
60
- [ {"id":"01e36ec9-d1a0-4023-b781-c8dcd5b9cdb4","name":"DefaultIsolatedNetworkOfferingWithSourceNatService","displaytext":"Offering
61
- for Isolated networks with Source Nat service enabled","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":true,"specifyipranges":false,"availability":"Required","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"40f265ea-0185-4d41-b766-170dbc2213ec","service":[{"name":"UserData","provider":[{"name":"VirtualRouter"}]},{"name":"Lb","provider":[{"name":"VirtualRouter"}],"capability":[{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"ElasticLb","value":"false","canchooseservicecapability":false},{"name":"InlineMode","value":"false","canchooseservicecapability":false}]},{"name":"Dns","provider":[{"name":"VirtualRouter"}]},{"name":"Dhcp","provider":[{"name":"VirtualRouter"}]},{"name":"StaticNat","provider":[{"name":"VirtualRouter"}],"capability":[{"name":"ElasticIp","value":"false","canchooseservicecapability":false},{"name":"AssociatePublicIP","value":"true","canchooseservicecapability":false}]},{"name":"Firewall","provider":[{"name":"VirtualRouter"}]},{"name":"Vpn","provider":[{"name":"VirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]},{"name":"PortForwarding","provider":[{"name":"VirtualRouter"}]}],"forvpc":false,"ispersistent":false,"egressdefaultpolicy":false},
62
- {"id":"e3d6437f-da81-4ead-9566-7ffa7a047569","name":"DefaultIsolatedNetworkOfferingForVpcNetworks","displaytext":"Offering
63
- for Isolated Vpc networks with Source Nat service enabled","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":false,"specifyipranges":false,"availability":"Optional","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"40f265ea-0185-4d41-b766-170dbc2213ec","service":[{"name":"UserData","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Lb","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"ElasticLb","value":"false","canchooseservicecapability":false},{"name":"InlineMode","value":"false","canchooseservicecapability":false}]},{"name":"Dns","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dhcp","provider":[{"name":"VpcVirtualRouter"}]},{"name":"StaticNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"ElasticIp","value":"false","canchooseservicecapability":false},{"name":"AssociatePublicIP","value":"true","canchooseservicecapability":false}]},{"name":"NetworkACL","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Vpn","provider":[{"name":"VpcVirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]},{"name":"PortForwarding","provider":[{"name":"VpcVirtualRouter"}]}],"forvpc":true,"ispersistent":false,"egressdefaultpolicy":false},
64
- {"id":"74b83fba-e223-4f77-9374-39dda87cd7e1","name":"DefaultIsolatedNetworkOfferingForVpcNetworksNoLB","displaytext":"Offering
65
- for Isolated Vpc networks with Source Nat service enabled and LB service Disabled","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":false,"specifyipranges":false,"availability":"Optional","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"40f265ea-0185-4d41-b766-170dbc2213ec","service":[{"name":"UserData","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dns","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dhcp","provider":[{"name":"VpcVirtualRouter"}]},{"name":"StaticNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"ElasticIp","value":"false","canchooseservicecapability":false},{"name":"AssociatePublicIP","value":"true","canchooseservicecapability":false}]},{"name":"NetworkACL","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Vpn","provider":[{"name":"VpcVirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]},{"name":"PortForwarding","provider":[{"name":"VpcVirtualRouter"}]}],"forvpc":true,"ispersistent":false,"egressdefaultpolicy":false},
66
- {"id":"3d0cab31-531e-4522-8c47-45cf0f1690ad","name":"DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB","displaytext":"Offering
67
- for Isolated Vpc networks with Internal LB support","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":false,"specifyipranges":false,"availability":"Optional","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"40f265ea-0185-4d41-b766-170dbc2213ec","service":[{"name":"UserData","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Lb","provider":[{"name":"InternalLbVm"}],"capability":[{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"ElasticLb","value":"false","canchooseservicecapability":false},{"name":"InlineMode","value":"false","canchooseservicecapability":false}]},{"name":"Dns","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dhcp","provider":[{"name":"VpcVirtualRouter"}]},{"name":"NetworkACL","provider":[{"name":"VpcVirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]}],"forvpc":true,"ispersistent":false,"egressdefaultpolicy":false}
60
+ [ {"id":"fa126319-f822-4786-9cd3-30bd0c55ca94","name":"DefaultIsolatedNetworkOfferingWithSourceNatService","displaytext":"Offering
61
+ for Isolated networks with Source Nat service enabled","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":true,"specifyipranges":false,"availability":"Required","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"983410fa-b51b-439c-b8ba-be973804c38f","service":[{"name":"PortForwarding","provider":[{"name":"VirtualRouter"}]},{"name":"StaticNat","provider":[{"name":"VirtualRouter"}],"capability":[{"name":"ElasticIp","value":"false","canchooseservicecapability":false},{"name":"AssociatePublicIP","value":"true","canchooseservicecapability":false}]},{"name":"Dhcp","provider":[{"name":"VirtualRouter"}]},{"name":"Firewall","provider":[{"name":"VirtualRouter"}]},{"name":"Lb","provider":[{"name":"VirtualRouter"}],"capability":[{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"ElasticLb","value":"false","canchooseservicecapability":false},{"name":"InlineMode","value":"false","canchooseservicecapability":false}]},{"name":"UserData","provider":[{"name":"VirtualRouter"}]},{"name":"Dns","provider":[{"name":"VirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]},{"name":"Vpn","provider":[{"name":"VirtualRouter"}]}],"forvpc":false,"ispersistent":false,"egressdefaultpolicy":false},
62
+ {"id":"7e70b3b5-5e2c-42cb-9b49-93a87c13a675","name":"DefaultIsolatedNetworkOfferingForVpcNetworks","displaytext":"Offering
63
+ for Isolated Vpc networks with Source Nat service enabled","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":false,"specifyipranges":false,"availability":"Optional","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"983410fa-b51b-439c-b8ba-be973804c38f","service":[{"name":"PortForwarding","provider":[{"name":"VpcVirtualRouter"}]},{"name":"StaticNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"ElasticIp","value":"false","canchooseservicecapability":false},{"name":"AssociatePublicIP","value":"true","canchooseservicecapability":false}]},{"name":"Dhcp","provider":[{"name":"VpcVirtualRouter"}]},{"name":"NetworkACL","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Lb","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"ElasticLb","value":"false","canchooseservicecapability":false},{"name":"InlineMode","value":"false","canchooseservicecapability":false}]},{"name":"UserData","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dns","provider":[{"name":"VpcVirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]},{"name":"Vpn","provider":[{"name":"VpcVirtualRouter"}]}],"forvpc":true,"ispersistent":false,"egressdefaultpolicy":false},
64
+ {"id":"a9d78d52-f306-44c5-bb6d-c121a507db05","name":"DefaultIsolatedNetworkOfferingForVpcNetworksNoLB","displaytext":"Offering
65
+ for Isolated Vpc networks with Source Nat service enabled and LB service Disabled","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":false,"specifyipranges":false,"availability":"Optional","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"983410fa-b51b-439c-b8ba-be973804c38f","service":[{"name":"PortForwarding","provider":[{"name":"VpcVirtualRouter"}]},{"name":"StaticNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"ElasticIp","value":"false","canchooseservicecapability":false},{"name":"AssociatePublicIP","value":"true","canchooseservicecapability":false}]},{"name":"Dhcp","provider":[{"name":"VpcVirtualRouter"}]},{"name":"NetworkACL","provider":[{"name":"VpcVirtualRouter"}]},{"name":"UserData","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dns","provider":[{"name":"VpcVirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]},{"name":"Vpn","provider":[{"name":"VpcVirtualRouter"}]}],"forvpc":true,"ispersistent":false,"egressdefaultpolicy":false},
66
+ {"id":"f9a7b0d0-ce61-4f8d-a360-be1040d67287","name":"DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB","displaytext":"Offering
67
+ for Isolated Vpc networks with Internal LB support","traffictype":"Guest","isdefault":true,"specifyvlan":false,"conservemode":false,"specifyipranges":false,"availability":"Optional","networkrate":200,"state":"Enabled","guestiptype":"Isolated","serviceofferingid":"983410fa-b51b-439c-b8ba-be973804c38f","service":[{"name":"Dhcp","provider":[{"name":"VpcVirtualRouter"}]},{"name":"NetworkACL","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Lb","provider":[{"name":"InternalLbVm"}],"capability":[{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"ElasticLb","value":"false","canchooseservicecapability":false},{"name":"InlineMode","value":"false","canchooseservicecapability":false}]},{"name":"UserData","provider":[{"name":"VpcVirtualRouter"}]},{"name":"Dns","provider":[{"name":"VpcVirtualRouter"}]},{"name":"SourceNat","provider":[{"name":"VpcVirtualRouter"}],"capability":[{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false},{"name":"RedundantRouter","value":"false","canchooseservicecapability":false}]}],"forvpc":true,"ispersistent":false,"egressdefaultpolicy":false}
68
68
  ] } }'
69
69
  http_version:
70
- recorded_at: Mon, 24 Nov 2014 18:07:26 GMT
70
+ recorded_at: Thu, 19 Dec 2013 17:34:44 GMT
71
71
  - request:
72
72
  method: get
73
- uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=createNetwork&displaytext=John&name=John&networkOfferingId=01e36ec9-d1a0-4023-b781-c8dcd5b9cdb4&response=json&signature=/nNmE94p717JINMF7VU7FEgW0MM=&zoneId=3c0f55e5-a4a2-4a82-8c98-20bf34d5766b
73
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=createNetwork&displaytext=John&name=John&networkOfferingId=fa126319-f822-4786-9cd3-30bd0c55ca94&response=json&signature=UDcfFqlzwpHJib/9kLKzR0%2BCbyc=&zoneId=39e9e31e-925c-4b55-8d33-f99912b73dfc
74
74
  body:
75
75
  encoding: US-ASCII
76
76
  string: ''
77
77
  headers:
78
78
  User-Agent:
79
- - Faraday v0.8.9
79
+ - Faraday v0.8.8
80
80
  Accept-Encoding:
81
81
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
82
82
  Accept:
@@ -94,8 +94,11 @@ http_interactions:
94
94
  - Jetty(6.1.26)
95
95
  body:
96
96
  encoding: UTF-8
97
- string: '{ "createnetworkresponse" : { "network" : {"id":"fe5441e4-8fd2-414e-a2d1-eb2aab1108ec","name":"John","displaytext":"John","broadcastdomaintype":"Vlan","traffictype":"Guest","gateway":"10.1.1.1","netmask":"255.255.255.0","cidr":"10.1.1.0/24","zoneid":"3c0f55e5-a4a2-4a82-8c98-20bf34d5766b","zonename":"Sandbox-simulator","networkofferingid":"01e36ec9-d1a0-4023-b781-c8dcd5b9cdb4","networkofferingname":"DefaultIsolatedNetworkOfferingWithSourceNatService","networkofferingdisplaytext":"Offering
98
- for Isolated networks with Source Nat service enabled","networkofferingconservemode":true,"networkofferingavailability":"Required","issystem":false,"state":"Allocated","related":"fe5441e4-8fd2-414e-a2d1-eb2aab1108ec","dns1":"10.147.28.6","type":"Isolated","acltype":"Account","account":"admin","domainid":"b32db4c2-b904-11e3-b3f0-080027079e3d","domain":"ROOT","service":[{"name":"UserData"},{"name":"Lb","capability":[{"name":"SupportedStickinessMethods","value":"[{\"methodname\":\"LbCookie\",\"paramlist\":[{\"paramname\":\"cookie-name\",\"required\":false,\"isflag\":false,\"description\":\"
97
+ string: '{ "createnetworkresponse" : { "network" : {"id":"18772181-9674-4a30-81e7-99ebb6a5baed","name":"John","displaytext":"John","broadcastdomaintype":"Vlan","traffictype":"Guest","gateway":"10.1.1.1","netmask":"255.255.255.0","cidr":"10.1.1.0/24","zoneid":"39e9e31e-925c-4b55-8d33-f99912b73dfc","zonename":"Sandbox-simulator","networkofferingid":"fa126319-f822-4786-9cd3-30bd0c55ca94","networkofferingname":"DefaultIsolatedNetworkOfferingWithSourceNatService","networkofferingdisplaytext":"Offering
98
+ for Isolated networks with Source Nat service enabled","networkofferingconservemode":true,"networkofferingavailability":"Required","issystem":false,"state":"Allocated","related":"18772181-9674-4a30-81e7-99ebb6a5baed","dns1":"10.147.28.6","type":"Isolated","acltype":"Account","account":"admin","domainid":"ce4585b8-41f5-11e3-aaa7-d6558ad1fb9f","domain":"ROOT","service":[{"name":"PortForwarding"},{"name":"StaticNat"},{"name":"Dhcp","capability":[{"name":"DhcpAccrossMultipleSubnets","value":"true","canchooseservicecapability":false}]},{"name":"Firewall","capability":[{"name":"TrafficStatistics","value":"per
99
+ public ip","canchooseservicecapability":false},{"name":"SupportedTrafficDirection","value":"ingress,
100
+ egress","canchooseservicecapability":false},{"name":"SupportedEgressProtocols","value":"tcp,udp,icmp,
101
+ all","canchooseservicecapability":false},{"name":"SupportedProtocols","value":"tcp,udp,icmp","canchooseservicecapability":false},{"name":"MultipleIps","value":"true","canchooseservicecapability":false}]},{"name":"Lb","capability":[{"name":"SupportedLbAlgorithms","value":"roundrobin,leastconn,source","canchooseservicecapability":false},{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"SupportedStickinessMethods","value":"[{\"methodname\":\"LbCookie\",\"paramlist\":[{\"paramname\":\"cookie-name\",\"required\":false,\"isflag\":false,\"description\":\"
99
102
  \"},{\"paramname\":\"mode\",\"required\":false,\"isflag\":false,\"description\":\"
100
103
  \"},{\"paramname\":\"nocache\",\"required\":false,\"isflag\":true,\"description\":\"
101
104
  \"},{\"paramname\":\"indirect\",\"required\":false,\"isflag\":true,\"description\":\"
@@ -112,23 +115,50 @@ http_interactions:
112
115
  http traffic\"},{\"methodname\":\"SourceBased\",\"paramlist\":[{\"paramname\":\"tablesize\",\"required\":false,\"isflag\":false,\"description\":\"
113
116
  \"},{\"paramname\":\"expire\",\"required\":false,\"isflag\":false,\"description\":\"
114
117
  \"}],\"description\":\"This is source based Stickiness method, it can be used
115
- for any type of protocol.\"}]","canchooseservicecapability":false},{"name":"SupportedProtocols","value":"tcp,
116
- udp","canchooseservicecapability":false},{"name":"SupportedLBIsolation","value":"dedicated","canchooseservicecapability":false},{"name":"LbSchemes","value":"Public","canchooseservicecapability":false},{"name":"SupportedLbAlgorithms","value":"roundrobin,leastconn,source","canchooseservicecapability":false}]},{"name":"Dns","capability":[{"name":"AllowDnsSuffixModification","value":"true","canchooseservicecapability":false}]},{"name":"Dhcp","capability":[{"name":"DhcpAccrossMultipleSubnets","value":"true","canchooseservicecapability":false}]},{"name":"StaticNat"},{"name":"Firewall","capability":[{"name":"SupportedEgressProtocols","value":"tcp,udp,icmp,
117
- all","canchooseservicecapability":false},{"name":"SupportedTrafficDirection","value":"ingress,
118
- egress","canchooseservicecapability":false},{"name":"SupportedProtocols","value":"tcp,udp,icmp","canchooseservicecapability":false},{"name":"MultipleIps","value":"true","canchooseservicecapability":false},{"name":"TrafficStatistics","value":"per
119
- public ip","canchooseservicecapability":false}]},{"name":"Vpn","capability":[{"name":"SupportedVpnTypes","value":"pptp,l2tp,ipsec","canchooseservicecapability":false},{"name":"VpnTypes","value":"removeaccessvpn","canchooseservicecapability":false}]},{"name":"SourceNat","capability":[{"name":"RedundantRouter","value":"true","canchooseservicecapability":false},{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false}]},{"name":"PortForwarding"}],"networkdomain":"cs2sandbox.simulator","physicalnetworkid":"25b674fb-96c2-4c8c-80b4-051ef4dbde22","restartrequired":false,"specifyipranges":false,"canusefordeploy":true,"ispersistent":false,"tags":[],"displaynetwork":true}
118
+ for any type of protocol.\"}]","canchooseservicecapability":false},{"name":"LbSchemes","value":"Public","canchooseservicecapability":false},{"name":"SupportedProtocols","value":"tcp,
119
+ udp","canchooseservicecapability":false}]},{"name":"UserData"},{"name":"Dns","capability":[{"name":"AllowDnsSuffixModification","value":"true","canchooseservicecapability":false}]},{"name":"SourceNat","capability":[{"name":"RedundantRouter","value":"true","canchooseservicecapability":false},{"name":"SupportedSourceNatTypes","value":"peraccount","canchooseservicecapability":false}]},{"name":"Vpn","capability":[{"name":"SupportedVpnTypes","value":"pptp,l2tp,ipsec","canchooseservicecapability":false},{"name":"VpnTypes","value":"removeaccessvpn","canchooseservicecapability":false}]}],"networkdomain":"cs2sandbox.simulator","physicalnetworkid":"46d08659-81e9-4f31-a589-a15aca972af0","restartrequired":false,"specifyipranges":false,"canusefordeploy":true,"ispersistent":false,"tags":[],"displaynetwork":true}
120
120
  } }'
121
121
  http_version:
122
- recorded_at: Mon, 24 Nov 2014 18:07:26 GMT
122
+ recorded_at: Thu, 19 Dec 2013 17:34:44 GMT
123
123
  - request:
124
124
  method: get
125
- uri: <CLOUD_STACK_HOST>/client/api?apiKey=<CLOUD_STACK_API_KEY>&command=createTags&resourceIds=fe5441e4-8fd2-414e-a2d1-eb2aab1108ec&resourceType=Network&response=json&signature=JDvENSGhv00hzG9nGX47ZDesXwA=&tags%5B0%5D%5B.key%5D=speed%20%5Blab%5D&tags%5B0%5D%5B.name%5D=speed%20%5Blab%5D&tags%5B0%5D%5B.value%5D=real%20fast!
125
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=createTags&resourceIds=18772181-9674-4a30-81e7-99ebb6a5baed&resourceType=Network&response=json&signature=xFXocwxqx4V1VH1EGVtjwdGZ0Yw=&tags%5B0%5D%5B%7D.key%5D=speed%20%5Blab%5D&tags%5B0%5D%5B%7D.name%5D=speed%20%5Blab%5D&tags%5B0%5D%5B%7D.value%5D=real%20fast!
126
126
  body:
127
127
  encoding: US-ASCII
128
128
  string: ''
129
129
  headers:
130
130
  User-Agent:
131
- - Faraday v0.8.9
131
+ - Faraday v0.8.8
132
+ Accept-Encoding:
133
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
134
+ Accept:
135
+ - '*/*'
136
+ response:
137
+ status:
138
+ code: 401
139
+ message: Unauthorized
140
+ headers:
141
+ Content-Type:
142
+ - text/javascript; charset=UTF-8
143
+ Content-Length:
144
+ - '131'
145
+ Server:
146
+ - Jetty(6.1.26)
147
+ body:
148
+ encoding: UTF-8
149
+ string: '{ "createtagsresponse" : {"uuidList":[],"errorcode":401,"errortext":"unable
150
+ to verify user credentials and/or request signature"} }'
151
+ http_version:
152
+ recorded_at: Thu, 19 Dec 2013 17:34:44 GMT
153
+ - request:
154
+ method: get
155
+ uri: <CLOUD_STACK_URL>?apiKey=<CLOUD_STACK_API_KEY>&command=createTags&resourceIds=18772181-9674-4a30-81e7-99ebb6a5baed&resourceType=Network&response=json&signature=IqPennOpZ2NWFlJIBomJG9Ys9Zg=&tags%5B0%5D%5B.key%5D=speed%20%5Blab%5D&tags%5B0%5D%5B.name%5D=speed%20%5Blab%5D&tags%5B0%5D%5B.value%5D=real%20fast!
156
+ body:
157
+ encoding: US-ASCII
158
+ string: ''
159
+ headers:
160
+ User-Agent:
161
+ - Faraday v0.8.8
132
162
  Accept-Encoding:
133
163
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
134
164
  Accept:
@@ -146,8 +176,8 @@ http_interactions:
146
176
  - Jetty(6.1.26)
147
177
  body:
148
178
  encoding: UTF-8
149
- string: '{ "createtagsresponse" : {"jobid":"7b8031e9-71b6-4281-8b04-67bc2a5035bb"}
179
+ string: '{ "createtagsresponse" : {"jobid":"7f37bba8-dd8e-4ba2-b5a4-bb97f3cf0cab"}
150
180
  }'
151
181
  http_version:
152
- recorded_at: Mon, 24 Nov 2014 18:07:26 GMT
153
- recorded_with: VCR 2.9.3
182
+ recorded_at: Thu, 19 Dec 2013 17:42:02 GMT
183
+ recorded_with: VCR 2.8.0