aviator 0.0.2 → 0.0.3

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 (71) hide show
  1. data/README.md +9 -1
  2. data/aviator.gemspec +1 -1
  3. data/bin/aviator +6 -86
  4. data/lib/aviator/core/cli/describer.rb +95 -0
  5. data/lib/aviator/core/cli.rb +1 -0
  6. data/lib/aviator/core/request.rb +62 -65
  7. data/lib/aviator/core/service.rb +26 -41
  8. data/lib/aviator/core/session.rb +7 -0
  9. data/lib/aviator/core.rb +1 -0
  10. data/lib/aviator/openstack/compute/v2/public/list_images.rb +51 -42
  11. data/lib/aviator/openstack/compute/v2/public/list_servers.rb +58 -0
  12. data/lib/aviator/openstack/identity/v2/admin/create_tenant.rb +43 -32
  13. data/lib/aviator/openstack/identity/v2/admin/list_tenants.rb +49 -38
  14. data/lib/aviator/openstack/identity/v2/public/create_token.rb +53 -47
  15. data/lib/aviator/openstack/identity/v2/public/list_tenants.rb +36 -26
  16. data/lib/aviator/version.rb +1 -1
  17. data/lib/aviator.rb +1 -0
  18. data/test/aviator/core/cli/describer_test.rb +140 -0
  19. data/test/aviator/core/request_test.rb +132 -157
  20. data/test/aviator/core/service_test.rb +49 -26
  21. data/test/aviator/core/session_test.rb +29 -0
  22. data/test/aviator/openstack/compute/v2/public/list_images_test.rb +16 -18
  23. data/test/aviator/openstack/compute/v2/public/list_servers_test.rb +178 -0
  24. data/test/aviator/openstack/identity/v2/admin/create_tenant_test.rb +10 -12
  25. data/test/aviator/openstack/identity/v2/public/create_token_test.rb +12 -14
  26. data/test/cassettes/core/service/i_default_session_data_/sets_the_service_s_default_session_data.yml +1 -1
  27. data/test/cassettes/core/service/i_request/accepts_an_endpoint_type_option_for_selecting_a_specific_request.yml +1 -1
  28. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_bootstrapped_session_data.yml +1 -1
  29. data/test/cassettes/core/service/i_request/can_find_the_correct_request_based_on_non-bootstrapped_session_data.yml +1 -1
  30. data/test/cassettes/core/service/i_request/can_find_the_correct_request_if_api_version_is_not_defined_but_can_be_inferred_from_host_uri.yml +1 -1
  31. data/test/cassettes/core/service/i_request/uses_the_default_session_data_if_session_data_is_not_provided.yml +1 -1
  32. data/test/cassettes/core/session/c_load/creates_a_new_instance_from_the_given_session_dump.yml +1 -1
  33. data/test/cassettes/core/session/c_load/uses_the_loaded_auth_info_for_its_services.yml +1 -1
  34. data/test/cassettes/core/session/c_new/directs_log_entries_to_the_given_log_file.yml +1 -1
  35. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_indicated_in_the_config_file.yml +1 -1
  36. data/test/cassettes/core/session/i_authenticate/authenticates_against_the_auth_service_using_the_credentials_in_the_given_block.yml +1 -1
  37. data/test/cassettes/core/session/i_authenticate/updates_the_session_data_of_its_service_objects.yml +2 -2
  38. data/test/cassettes/core/session/i_dump/serializes_the_session_data_for_caching.yml +1 -1
  39. data/test/cassettes/core/session/i_load/returns_itself.yml +63 -0
  40. data/test/cassettes/core/session/i_load/updates_the_session_data_of_its_service_objects.yml +123 -0
  41. data/test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml +1 -1
  42. data/test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml +1 -1
  43. data/test/cassettes/core/session/i_xxx_service/returns_an_instance_of_the_indicated_service.yml +1 -1
  44. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml +1 -1
  45. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_invalid.yml +1 -1
  46. data/test/cassettes/openstack/compute/v2/public/list_images/leads_to_a_valid_response_when_parameters_are_valid.yml +1 -1
  47. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body.yml +1 -1
  48. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_body_.yml +1 -1
  49. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers.yml +1 -1
  50. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_headers_.yml +1 -1
  51. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_http_method_.yml +63 -0
  52. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url.yml +1 -1
  53. data/test/cassettes/openstack/compute/v2/public/list_images/returns_the_correct_value_for_url_.yml +1 -1
  54. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_no_parameters_are_provided.yml +101 -0
  55. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_parameters_are_invalid.yml +95 -0
  56. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_parameters_are_valid.yml +109 -0
  57. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_body_.yml +62 -0
  58. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_headers_.yml +62 -0
  59. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_http_method_.yml +62 -0
  60. data/test/cassettes/openstack/compute/v2/public/list_servers/returns_the_correct_value_for_url_.yml +62 -0
  61. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_invalid.yml +1 -1
  62. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_params_are_valid.yml +1 -1
  63. data/test/cassettes/openstack/identity/v2/admin/create_tenant/leads_to_a_valid_response_when_provided_with_invalid_params.yml +1 -1
  64. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_parameters_are_valid.yml +1 -1
  65. data/test/cassettes/openstack/identity/v2/public/create_token/leads_to_a_valid_response_when_provided_with_a_token.yml +2 -2
  66. data/test/support/{openstack_request_test_helper.rb → request_helper.rb} +21 -2
  67. data/test/support/test_base_class.rb +1 -1
  68. data/test/support/test_reporter.rb +4 -2
  69. data/test/support/vcr_setup.rb +4 -0
  70. data/test/test_helper.rb +5 -1
  71. metadata +38 -10
@@ -32,34 +32,32 @@ class Aviator::Test
32
32
 
33
33
 
34
34
  def klass
35
- path = helper.request_path('compute', 'v2', 'public', 'list_images.rb')
36
- klass, request_name = Aviator::Service::RequestBuilder.build(path)
37
- klass
35
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'list_images.rb')
38
36
  end
39
37
 
40
38
 
41
- validate :anonymous? do
39
+ validate_attr :anonymous? do
42
40
  klass.anonymous?.must_equal false
43
41
  end
44
42
 
45
43
 
46
- validate :api_version do
44
+ validate_attr :api_version do
47
45
  klass.api_version.must_equal :v2
48
46
  end
49
47
 
50
48
 
51
- validate :body do
49
+ validate_attr :body do
52
50
  klass.body?.must_equal false
53
51
  create_request.body?.must_equal false
54
52
  end
55
53
 
56
54
 
57
- validate :endpoint_type do
55
+ validate_attr :endpoint_type do
58
56
  klass.endpoint_type.must_equal :public
59
57
  end
60
58
 
61
59
 
62
- validate :headers do
60
+ validate_attr :headers do
63
61
  session_data = new_session_data
64
62
 
65
63
  headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
@@ -70,12 +68,12 @@ class Aviator::Test
70
68
  end
71
69
 
72
70
 
73
- validate :http_method do
74
- klass.http_method.must_equal :get
71
+ validate_attr :http_method do
72
+ create_request.http_method.must_equal :get
75
73
  end
76
74
 
77
75
 
78
- validate :optional_params do
76
+ validate_attr :optional_params do
79
77
  klass.optional_params.must_equal [
80
78
  :details,
81
79
  :server,
@@ -89,12 +87,12 @@ class Aviator::Test
89
87
  end
90
88
 
91
89
 
92
- validate :required_params do
90
+ validate_attr :required_params do
93
91
  klass.required_params.must_equal []
94
92
  end
95
93
 
96
94
 
97
- validate :url do
95
+ validate_attr :url do
98
96
  session_data = new_session_data
99
97
  service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
100
98
  url = "#{ service_spec[:endpoints][0][:publicURL] }/images"
@@ -105,13 +103,13 @@ class Aviator::Test
105
103
  [ :status, 'ACTIVE' ],
106
104
  [ :type, 'application/vnd.openstack.image' ]
107
105
  ]
108
-
106
+
109
107
  url += "/detail" if params.first[1]
110
108
 
111
109
  filters = []
112
-
110
+
113
111
  params[1, params.length-1].each { |pair| filters << "#{ pair[0] }=#{ pair[1] }" }
114
-
112
+
115
113
  url += "?#{ filters.join('&') }" unless filters.empty?
116
114
 
117
115
  request = klass.new(session_data) do |p|
@@ -154,8 +152,8 @@ class Aviator::Test
154
152
  response.body[:images].length.must_equal 0
155
153
  response.headers.wont_be_nil
156
154
  end
157
-
158
-
155
+
156
+
159
157
  validate_response 'parameters are valid' do
160
158
  service = Aviator::Service.new(
161
159
  provider: 'openstack',
@@ -0,0 +1,178 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/list_servers' do
6
+
7
+ def create_request(session_data = new_session_data)
8
+ klass.new(session_data)
9
+ end
10
+
11
+
12
+ def new_session_data
13
+ service = Aviator::Service.new(
14
+ provider: Environment.openstack_admin[:provider],
15
+ service: Environment.openstack_admin[:auth_service][:name]
16
+ )
17
+
18
+ bootstrap = RequestHelper.admin_bootstrap_session_data
19
+
20
+ response = service.request :create_token, session_data: bootstrap do |params|
21
+ auth_credentials = Environment.openstack_admin[:auth_credentials]
22
+ auth_credentials.each { |key, value| params[key] = auth_credentials[key] }
23
+ end
24
+
25
+ response.body
26
+ end
27
+
28
+
29
+ def helper
30
+ Aviator::Test::RequestHelper
31
+ end
32
+
33
+
34
+ def klass
35
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'list_servers.rb')
36
+ end
37
+
38
+
39
+ validate_attr :anonymous? do
40
+ klass.anonymous?.must_equal false
41
+ end
42
+
43
+
44
+ validate_attr :api_version do
45
+ klass.api_version.must_equal :v2
46
+ end
47
+
48
+
49
+ validate_attr :body do
50
+ klass.body?.must_equal false
51
+ create_request.body?.must_equal false
52
+ end
53
+
54
+
55
+ validate_attr :endpoint_type do
56
+ klass.endpoint_type.must_equal :public
57
+ end
58
+
59
+
60
+ validate_attr :headers do
61
+ session_data = new_session_data
62
+
63
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
64
+
65
+ request = create_request(session_data)
66
+
67
+ request.headers.must_equal headers
68
+ end
69
+
70
+
71
+ validate_attr :http_method do
72
+ create_request.http_method.must_equal :get
73
+ end
74
+
75
+
76
+ validate_attr :optional_params do
77
+ klass.optional_params.must_equal [
78
+ :details,
79
+ :flavor,
80
+ :image,
81
+ :limit,
82
+ :marker,
83
+ :server,
84
+ :status,
85
+ 'changes-since'
86
+ ]
87
+ end
88
+
89
+
90
+ validate_attr :required_params do
91
+ klass.required_params.must_equal []
92
+ end
93
+
94
+
95
+ validate_attr :url do
96
+ session_data = new_session_data
97
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
98
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers"
99
+
100
+ params = [
101
+ [ :details, false ],
102
+ [ :flavor, 'm1.small' ],
103
+ [ :image, 'cirros-0.3.1-x86_64-uec-ramdisk' ],
104
+ [ :status, 'ACTIVE' ]
105
+ ]
106
+
107
+ url += "/detail" if params.first[1]
108
+
109
+ filters = []
110
+
111
+ params[1, params.length-1].each { |pair| filters << "#{ pair[0] }=#{ pair[1] }" }
112
+
113
+ url += "?#{ filters.join('&') }" unless filters.empty?
114
+
115
+ request = klass.new(session_data) do |p|
116
+ params.each { |pair| p[pair[0]] = pair[1] }
117
+ end
118
+
119
+
120
+ request.url.must_equal url
121
+ end
122
+
123
+
124
+ validate_response 'no parameters are provided' do
125
+ service = Aviator::Service.new(
126
+ provider: 'openstack',
127
+ service: 'compute',
128
+ default_session_data: new_session_data
129
+ )
130
+
131
+ response = service.request :list_servers
132
+
133
+ response.status.must_equal 200
134
+ response.body.wont_be_nil
135
+ response.body[:servers].length.wont_equal 0
136
+ response.headers.wont_be_nil
137
+ end
138
+
139
+
140
+ validate_response 'parameters are invalid' do
141
+ service = Aviator::Service.new(
142
+ provider: 'openstack',
143
+ service: 'compute',
144
+ default_session_data: new_session_data
145
+ )
146
+
147
+ response = service.request :list_servers do |params|
148
+ params[:image] = "nonexistentimagenameherpderp"
149
+ end
150
+
151
+ response.status.must_equal 200
152
+ response.body.wont_be_nil
153
+ response.body[:servers].length.must_equal 0
154
+ response.headers.wont_be_nil
155
+ end
156
+
157
+
158
+ validate_response 'parameters are valid' do
159
+ service = Aviator::Service.new(
160
+ provider: 'openstack',
161
+ service: 'compute',
162
+ default_session_data: new_session_data
163
+ )
164
+
165
+ response = service.request :list_servers do |params|
166
+ params[:details] = true
167
+ params[:image] = 'c95d4992-24b1-4c9a-93cb-5d2935503148'
168
+ end
169
+
170
+ response.status.must_equal 200
171
+ response.body.wont_be_nil
172
+ response.body[:servers].length.must_equal 1
173
+ response.headers.wont_be_nil
174
+ end
175
+
176
+ end
177
+
178
+ end
@@ -36,23 +36,21 @@ class Aviator::Test
36
36
 
37
37
 
38
38
  def klass
39
- path = helper.request_path('identity', 'v2', 'admin', 'create_tenant.rb')
40
- klass, request_name = Aviator::Service::RequestBuilder.build(path)
41
- klass
39
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'create_tenant.rb')
42
40
  end
43
41
 
44
42
 
45
- validate :api_version do
43
+ validate_attr :api_version do
46
44
  klass.api_version.must_equal :v2
47
45
  end
48
46
 
49
47
 
50
- validate :anonymous? do
48
+ validate_attr :anonymous? do
51
49
  klass.anonymous?.must_equal false
52
50
  end
53
51
 
54
52
 
55
- validate :body do
53
+ validate_attr :body do
56
54
  params = {
57
55
  name: 'Project',
58
56
  description: 'My Project',
@@ -73,12 +71,12 @@ class Aviator::Test
73
71
  end
74
72
 
75
73
 
76
- validate :endpoint_type do
74
+ validate_attr :endpoint_type do
77
75
  klass.endpoint_type.must_equal :admin
78
76
  end
79
77
 
80
78
 
81
- validate :headers do
79
+ validate_attr :headers do
82
80
  headers = { 'X-Auth-Token' => helper.admin_session_data[:access][:token][:id] }
83
81
 
84
82
  request = create_request
@@ -87,17 +85,17 @@ class Aviator::Test
87
85
  end
88
86
 
89
87
 
90
- validate :http_method do
91
- klass.http_method.must_equal :post
88
+ validate_attr :http_method do
89
+ create_request.http_method.must_equal :post
92
90
  end
93
91
 
94
92
 
95
- validate :required_params do
93
+ validate_attr :required_params do
96
94
  klass.required_params.must_equal [:name, :description, :enabled]
97
95
  end
98
96
 
99
97
 
100
- validate :url do
98
+ validate_attr :url do
101
99
  session_data = helper.admin_session_data
102
100
  service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
103
101
  url = "#{ service_spec[:endpoints][0][:adminURL] }/tenants"
@@ -18,23 +18,21 @@ class Aviator::Test
18
18
 
19
19
 
20
20
  def klass
21
- path = helper.request_path('identity', 'v2', 'public', 'create_token.rb')
22
- klass, request_name = Aviator::Service::RequestBuilder.build(path)
23
- klass
21
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'public', 'create_token.rb')
24
22
  end
25
23
 
26
24
 
27
- validate :anonymous? do
25
+ validate_attr :anonymous? do
28
26
  klass.anonymous?.must_equal true
29
27
  end
30
28
 
31
29
 
32
- validate :api_version do
30
+ validate_attr :api_version do
33
31
  klass.api_version.must_equal :v2
34
32
  end
35
33
 
36
34
 
37
- validate :body do
35
+ validate_attr :body do
38
36
  p = {
39
37
  auth: {
40
38
  passwordCredentials: {
@@ -48,33 +46,33 @@ class Aviator::Test
48
46
  end
49
47
 
50
48
 
51
- validate :endpoint_type do
49
+ validate_attr :endpoint_type do
52
50
  klass.endpoint_type.must_equal :public
53
51
  end
54
52
 
55
53
 
56
- validate :headers do
54
+ validate_attr :headers do
57
55
  create_request.headers?.must_equal false
58
56
  end
59
57
 
60
58
 
61
- validate :http_method do
62
- klass.http_method.must_equal :post
59
+ validate_attr :http_method do
60
+ create_request.http_method.must_equal :post
63
61
  end
64
62
 
65
63
 
66
64
 
67
- validate :optional_params do
65
+ validate_attr :optional_params do
68
66
  klass.optional_params.must_equal [:username, :password, :tokenId, :tenantName, :tenantId]
69
67
  end
70
68
 
71
69
 
72
- validate :required_params do
70
+ validate_attr :required_params do
73
71
  klass.required_params.must_equal []
74
72
  end
75
73
 
76
74
 
77
- validate :url do
75
+ validate_attr :url do
78
76
  session_data = helper.admin_bootstrap_session_data
79
77
  url = "#{ session_data[:auth_service][:host_uri] }/v2.0/tokens"
80
78
 
@@ -82,7 +80,7 @@ class Aviator::Test
82
80
  end
83
81
 
84
82
 
85
- validate :url, 'when the host uri contains the api version' do
83
+ validate_attr :url, 'when the host uri contains the api version' do
86
84
  host_uri = 'http://x.y.z:5000/v2.0'
87
85
 
88
86
  request = klass.new({ auth_service: { host_uri: host_uri } }) do |params|
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"}}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"}}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -65,7 +65,7 @@ http_interactions:
65
65
  uri: <HOST_URI>:5000/v2.0/tokens
66
66
  body:
67
67
  encoding: UTF-8
68
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
68
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
69
69
  headers:
70
70
  Content-Type:
71
71
  - application/json
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: <HOST_URI>:5000/v2.0/tokens
6
6
  body:
7
7
  encoding: UTF-8
8
- string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"<PASSWORD>"},"tenantName":"admin"}}'
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
9
  headers:
10
10
  Content-Type:
11
11
  - application/json
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<USERNAME>","password":"<PASSWORD>"},"tenantName":"<TENANT>"}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ User-Agent:
13
+ - Faraday v0.8.8
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ vary:
20
+ - X-Auth-Token
21
+ content-type:
22
+ - application/json
23
+ content-length:
24
+ - '2648'
25
+ date:
26
+ - Mon, 02 Sep 2013 17:53:35 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-09-02T17:53:35.649618",
32
+ "expires": "2013-09-03T17:53:35Z", "id": "3a562100f8d448d39d7a18142bcb9d31",
33
+ "tenant": {"description": null, "enabled": true, "id": "3cab25130620477b8b03f1bfa8741603",
34
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
35
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603",
36
+ "id": "3b72a66bf2f0491bb8dba827cade0d48", "publicURL": "http://192.168.56.11:8774/v2/3cab25130620477b8b03f1bfa8741603"}],
37
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
38
+ "http://192.168.56.11:3333", "region": "RegionOne", "internalURL": "http://192.168.56.11:3333",
39
+ "id": "482f749b370c40eab8788d6d0bc47f48", "publicURL": "http://192.168.56.11:3333"}],
40
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
41
+ "http://192.168.56.11:9292", "region": "RegionOne", "internalURL": "http://192.168.56.11:9292",
42
+ "id": "0cd5d5d5a0c24721a0392b47c89e3640", "publicURL": "http://192.168.56.11:9292"}],
43
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
44
+ "http://192.168.56.11:8777", "region": "RegionOne", "internalURL": "http://192.168.56.11:8777",
45
+ "id": "4eb4edec1d2647bfb8ba4f9a5757169d", "publicURL": "http://192.168.56.11:8777"}],
46
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
47
+ [{"adminURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
48
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603",
49
+ "id": "009e8a41953d439f845b2a0c0dc28b73", "publicURL": "http://192.168.56.11:8776/v1/3cab25130620477b8b03f1bfa8741603"}],
50
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
51
+ [{"adminURL": "http://192.168.56.11:8773/services/Admin", "region": "RegionOne",
52
+ "internalURL": "http://192.168.56.11:8773/services/Cloud", "id": "6820836ec6834548bf7b54da0271dded",
53
+ "publicURL": "http://192.168.56.11:8773/services/Cloud"}], "endpoints_links":
54
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.56.11:35357/v2.0",
55
+ "region": "RegionOne", "internalURL": "http://192.168.56.11:5000/v2.0", "id":
56
+ "24a95f51f67949e784971e97463ee4d8", "publicURL": "http://192.168.56.11:5000/v2.0"}],
57
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
58
+ "admin", "roles_links": [], "id": "cbbcc4f7aef6435fa2da7e5f0b2f1e97", "roles":
59
+ [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles":
60
+ ["01a81f2dbb3441f1aaa8fe68a7c6f546"]}}}'
61
+ http_version:
62
+ recorded_at: Tue, 03 Sep 2013 07:59:33 GMT
63
+ recorded_with: VCR 2.5.0