aviator 0.2.2 → 0.3.0

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 (19) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aviator/openstack/compute/requests/v2/public/start_server.rb +28 -0
  3. data/lib/aviator/openstack/compute/requests/v2/public/stop_server.rb +28 -0
  4. data/lib/aviator/version.rb +1 -1
  5. data/test/aviator/openstack/compute/requests/v2/public/start_server_test.rb +127 -0
  6. data/test/aviator/openstack/compute/requests/v2/public/stop_server_test.rb +125 -0
  7. data/test/cassettes/openstack/compute/requests/v2/public/start_server/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +99 -0
  8. data/test/cassettes/openstack/compute/requests/v2/public/start_server/leads_to_a_valid_response_when_valid_params_are_provided.yml +132 -0
  9. data/test/cassettes/openstack/compute/requests/v2/public/start_server/returns_the_correct_value_for_body_.yml +65 -0
  10. data/test/cassettes/openstack/compute/requests/v2/public/start_server/returns_the_correct_value_for_headers_.yml +65 -0
  11. data/test/cassettes/openstack/compute/requests/v2/public/start_server/returns_the_correct_value_for_http_method_.yml +65 -0
  12. data/test/cassettes/openstack/compute/requests/v2/public/start_server/returns_the_correct_value_for_url_.yml +65 -0
  13. data/test/cassettes/openstack/compute/requests/v2/public/stop_server/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +99 -0
  14. data/test/cassettes/openstack/compute/requests/v2/public/stop_server/leads_to_a_valid_response_when_valid_params_are_provided.yml +132 -0
  15. data/test/cassettes/openstack/compute/requests/v2/public/stop_server/returns_the_correct_value_for_body_.yml +65 -0
  16. data/test/cassettes/openstack/compute/requests/v2/public/stop_server/returns_the_correct_value_for_headers_.yml +65 -0
  17. data/test/cassettes/openstack/compute/requests/v2/public/stop_server/returns_the_correct_value_for_http_method_.yml +65 -0
  18. data/test/cassettes/openstack/compute/requests/v2/public/stop_server/returns_the_correct_value_for_url_.yml +65 -0
  19. metadata +32 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e05d6303dec010925adaadef7852044aec4dbc0
4
- data.tar.gz: 76d05e1271d60e2040ed6e752c79d8641556ab1a
3
+ metadata.gz: 4add1dd8d4a03f788ba34a3620c7a0bbd14edf45
4
+ data.tar.gz: a9c19cc6493120f6f82c524ab6f03184e2f4efe8
5
5
  SHA512:
6
- metadata.gz: c2bae7d16b1364ee57d72c69d2e3449419315cd0702c9ab0fb2ae1a38f78f2025624c8b65b61faa1c22348848b67ad7588826c49a0f742a19b4ab260d311ae9d
7
- data.tar.gz: 3e586d5770779da16528ff1a7ed924318c2a71bd5e1146afa4f079889439b91f14da4e4973ce56a54d8415bd9ebc2f285d9458b5487bce5a01f3aa575e1da2f2
6
+ metadata.gz: 18bd57b05470eeae1adbb4e91bdb8e84d0d5974ca744286fcf86ef9a4303aa2fb91cdcd796a7fd8d41a78c4398ac885339490fc2d5fe86d5965a7c1f04a989aa
7
+ data.tar.gz: 27c5c9c8f4e1be7d86260f5aee1aec028dac77eff86df268081886093857da3b810fc79de3ad9b27a26e9faf3fadccb3055801cb526f437160c28dfb5af3ff33
@@ -0,0 +1,28 @@
1
+ module Aviator
2
+
3
+ define_request :start_server, :inherit => [:openstack, :common, :v2, :public, :base] do
4
+
5
+ meta :service, :compute
6
+
7
+ link 'documentation',
8
+ 'http://developer.openstack.org/api-ref-compute-v2-ext.html#os-server-start-stop'
9
+
10
+ param :id, :required => true
11
+
12
+ def body
13
+ { 'os-start' => nil }
14
+ end
15
+
16
+ def headers
17
+ super
18
+ end
19
+
20
+ def http_method
21
+ :post
22
+ end
23
+
24
+ def url
25
+ "#{ base_url }/servers/#{ params[:id] }/action"
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Aviator
2
+
3
+ define_request :stop_server, :inherit => [:openstack, :common, :v2, :public, :base] do
4
+
5
+ meta :service, :compute
6
+
7
+ link 'documentation',
8
+ 'http://developer.openstack.org/api-ref-compute-v2-ext.html#os-server-start-stop'
9
+
10
+ param :id, :required => true
11
+
12
+ def body
13
+ { 'os-stop' => nil }
14
+ end
15
+
16
+ def headers
17
+ super
18
+ end
19
+
20
+ def http_method
21
+ :post
22
+ end
23
+
24
+ def url
25
+ "#{ base_url }/servers/#{ params[:id] }/action"
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module Aviator
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/requests/v2/public/start_server' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:id] = 0
10
+ end
11
+
12
+ klass.new(session_data, &block)
13
+ end
14
+
15
+
16
+ def get_session_data
17
+ session.send :auth_response
18
+ end
19
+
20
+
21
+ def helper
22
+ Aviator::Test::RequestHelper
23
+ end
24
+
25
+
26
+ def klass
27
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'start_server.rb')
28
+ end
29
+
30
+
31
+ def session
32
+ unless @session
33
+ @session = Aviator::Session.new(
34
+ :config_file => Environment.path,
35
+ :environment => 'openstack_member'
36
+ )
37
+ @session.authenticate
38
+ end
39
+
40
+ @session
41
+ end
42
+
43
+
44
+ validate_attr :anonymous? do
45
+ klass.anonymous?.must_equal false
46
+ end
47
+
48
+
49
+ validate_attr :api_version do
50
+ klass.api_version.must_equal :v2
51
+ end
52
+
53
+
54
+ validate_attr :body do
55
+ request = create_request
56
+
57
+ klass.body?.must_equal true
58
+ request.body?.must_equal true
59
+ request.body.wont_be_nil
60
+ end
61
+
62
+
63
+ validate_attr :endpoint_type do
64
+ klass.endpoint_type.must_equal :public
65
+ end
66
+
67
+
68
+ validate_attr :headers do
69
+ headers = { 'X-Auth-Token' => get_session_data[:body][:access][:token][:id] }
70
+
71
+ request = create_request
72
+
73
+ request.headers.must_equal headers
74
+ end
75
+
76
+
77
+ validate_attr :http_method do
78
+ create_request.http_method.must_equal :post
79
+ end
80
+
81
+ validate_attr :required_params do
82
+ klass.required_params.must_equal [:id]
83
+ end
84
+
85
+
86
+ validate_attr :url do
87
+ service_spec = get_session_data[:body][:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
88
+ server_id = '105b09f0b6500d36168480ad84'
89
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/action"
90
+
91
+ request = create_request do |params|
92
+ params[:id] = server_id
93
+ end
94
+
95
+ request.url.must_equal url
96
+ end
97
+
98
+
99
+ validate_response 'valid params are provided' do
100
+ server = session.compute_service.request(:list_servers).body[:servers].first
101
+ server_id = server[:id]
102
+
103
+ response = session.compute_service.request :start_server do |params|
104
+ params[:id] = server_id
105
+ end
106
+
107
+ response.status.must_equal 202
108
+ response.headers.wont_be_nil
109
+ end
110
+
111
+
112
+ validate_response 'invalid server id is provided' do
113
+ server_id = 'abogusserveridthatdoesnotexist'
114
+
115
+ response = session.compute_service.request :start_server do |params|
116
+ params[:id] = server_id
117
+ end
118
+
119
+ response.status.must_equal 404
120
+ response.body.wont_be_nil
121
+ response.headers.wont_be_nil
122
+ end
123
+
124
+
125
+ end
126
+
127
+ end
@@ -0,0 +1,125 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/requests/v2/public/stop_server' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda { |params| params[:id] = 0 }
9
+ klass.new(session_data, &block)
10
+ end
11
+
12
+
13
+ def get_session_data
14
+ session.send :auth_response
15
+ end
16
+
17
+
18
+ def helper
19
+ Aviator::Test::RequestHelper
20
+ end
21
+
22
+
23
+ def klass
24
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'stop_server.rb')
25
+ end
26
+
27
+
28
+ def session
29
+ unless @session
30
+ @session = Aviator::Session.new(
31
+ :config_file => Environment.path,
32
+ :environment => 'openstack_member'
33
+ )
34
+ @session.authenticate
35
+ end
36
+
37
+ @session
38
+ end
39
+
40
+
41
+ validate_attr :anonymous? do
42
+ klass.anonymous?.must_equal false
43
+ end
44
+
45
+
46
+ validate_attr :api_version do
47
+ klass.api_version.must_equal :v2
48
+ end
49
+
50
+
51
+ validate_attr :body do
52
+ request = create_request
53
+
54
+ klass.body?.must_equal true
55
+ request.body?.must_equal true
56
+ request.body.wont_be_nil
57
+ end
58
+
59
+
60
+ validate_attr :endpoint_type do
61
+ klass.endpoint_type.must_equal :public
62
+ end
63
+
64
+
65
+ validate_attr :headers do
66
+ headers = { 'X-Auth-Token' => get_session_data[:body][:access][:token][:id] }
67
+
68
+ request = create_request
69
+
70
+ request.headers.must_equal headers
71
+ end
72
+
73
+
74
+ validate_attr :http_method do
75
+ create_request.http_method.must_equal :post
76
+ end
77
+
78
+
79
+ validate_attr :required_params do
80
+ klass.required_params.must_equal [:id]
81
+ end
82
+
83
+
84
+ validate_attr :url do
85
+ service_spec = get_session_data[:body][:access][:serviceCatalog].find{ |s| s[:type] == 'compute' }
86
+ server_id = 'sampleId'
87
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/action"
88
+
89
+ request = create_request do |params|
90
+ params[:id] = server_id
91
+ end
92
+
93
+ request.url.must_equal url
94
+ end
95
+
96
+
97
+ validate_response 'valid params are provided' do
98
+ service = session.compute_service
99
+ server = service.request(:list_servers).body[:servers].first
100
+
101
+ response = service.request :stop_server do |params|
102
+ params[:id] = server[:id]
103
+ end
104
+
105
+ response.status.must_equal 202
106
+ response.headers.wont_be_nil
107
+ end
108
+
109
+
110
+ validate_response 'invalid server id is provided' do
111
+ server_id = 'abogusserveridthatdoesnotexist'
112
+
113
+ response = session.compute_service.request :stop_server do |params|
114
+ params[:id] = server_id
115
+ end
116
+
117
+ response.status.must_equal 404
118
+ response.body.wont_be_nil
119
+ response.headers.wont_be_nil
120
+ end
121
+
122
+
123
+ end
124
+
125
+ end
@@ -0,0 +1,99 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
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
+ - '2677'
25
+ date:
26
+ - Wed, 25 Sep 2013 01:50:14 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-09-25T01:50:14.325097",
32
+ "expires": "2013-09-26T01:50:14Z", "id": "bfeaf3a212f44ca89e374068184fa8ba",
33
+ "tenant": {"description": "", "enabled": true, "id": "87b582d56d3f4ed19a25c919bb59a6f0",
34
+ "name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
35
+ [{"adminURL": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0",
36
+ "region": "RegionOne", "internalURL": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0",
37
+ "id": "1ee1c2c29f8640ab9c3f8654209873f6", "publicURL": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0"}],
38
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
39
+ "http://127.0.0.1:3333", "region": "RegionOne", "internalURL": "http://127.0.0.1:3333",
40
+ "id": "3cc6591515c24569bc5342bc82159a77", "publicURL": "http://127.0.0.1:3333"}],
41
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
42
+ "http://127.0.0.1:9292", "region": "RegionOne", "internalURL": "http://127.0.0.1:9292",
43
+ "id": "6842e55991f14f66b1ccf7c924d83ca6", "publicURL": "http://127.0.0.1:9292"}],
44
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
45
+ "http://127.0.0.1:8777", "region": "RegionOne", "internalURL": "http://127.0.0.1:8777",
46
+ "id": "1edf8d85bb7047beb66c7630b04b01e6", "publicURL": "http://127.0.0.1:8777"}],
47
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
48
+ [{"adminURL": "http://127.0.0.1:8776/v1/87b582d56d3f4ed19a25c919bb59a6f0",
49
+ "region": "RegionOne", "internalURL": "http://127.0.0.1:8776/v1/87b582d56d3f4ed19a25c919bb59a6f0",
50
+ "id": "301c46cc88384348a5415d478162d51e", "publicURL": "http://127.0.0.1:8776/v1/87b582d56d3f4ed19a25c919bb59a6f0"}],
51
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
52
+ [{"adminURL": "http://127.0.0.1:8773/services/Admin", "region": "RegionOne",
53
+ "internalURL": "http://127.0.0.1:8773/services/Cloud", "id": "3c91fce7434e4a798e8093841d09c6cc",
54
+ "publicURL": "http://127.0.0.1:8773/services/Cloud"}], "endpoints_links":
55
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://127.0.0.1:35357/v2.0",
56
+ "region": "RegionOne", "internalURL": "http://127.0.0.1:5000/v2.0", "id":
57
+ "836cef616b644e2da8b0f39dd1aa78e1", "publicURL": "http://127.0.0.1:5000/v2.0"}],
58
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
59
+ "<OPENSTACK_MEMBER_USERNAME>", "roles_links": [], "id": "cbdd1e36bf1d4bceab9896f47c0e5a9b",
60
+ "roles": [{"name": "_member_"}, {"name": "project_manager"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
61
+ "metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
62
+ "0877846b7e534fc3ae0e9b0bb226343d"]}}}'
63
+ http_version:
64
+ recorded_at: Wed, 25 Sep 2013 01:50:14 GMT
65
+ - request:
66
+ method: post
67
+ uri: http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0/servers/abogusserveridthatdoesnotexist/action
68
+ body:
69
+ encoding: UTF-8
70
+ string: ! '{"os-start":null}'
71
+ headers:
72
+ Content-Type:
73
+ - application/json
74
+ User-Agent:
75
+ - Faraday v0.8.8
76
+ X-Auth-Token:
77
+ - bfeaf3a212f44ca89e374068184fa8ba
78
+ response:
79
+ status:
80
+ code: 404
81
+ message:
82
+ headers:
83
+ content-length:
84
+ - '73'
85
+ content-type:
86
+ - application/json; charset=UTF-8
87
+ x-compute-request-id:
88
+ - req-034637de-a553-4aad-a63f-b8d369accc0f
89
+ date:
90
+ - Wed, 25 Sep 2013 01:50:14 GMT
91
+ connection:
92
+ - close
93
+ body:
94
+ encoding: US-ASCII
95
+ string: ! '{"itemNotFound": {"message": "Instance could not be found", "code":
96
+ 404}}'
97
+ http_version:
98
+ recorded_at: Wed, 25 Sep 2013 01:50:14 GMT
99
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,132 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
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
+ - '2677'
25
+ date:
26
+ - Wed, 25 Sep 2013 01:50:15 GMT
27
+ connection:
28
+ - close
29
+ body:
30
+ encoding: US-ASCII
31
+ string: ! '{"access": {"token": {"issued_at": "2013-09-25T01:50:15.565151",
32
+ "expires": "2013-09-26T01:50:15Z", "id": "0f2de4a206b1470189161fc918909fc8",
33
+ "tenant": {"description": "", "enabled": true, "id": "87b582d56d3f4ed19a25c919bb59a6f0",
34
+ "name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
35
+ [{"adminURL": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0",
36
+ "region": "RegionOne", "internalURL": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0",
37
+ "id": "1ee1c2c29f8640ab9c3f8654209873f6", "publicURL": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0"}],
38
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
39
+ "http://127.0.0.1:3333", "region": "RegionOne", "internalURL": "http://127.0.0.1:3333",
40
+ "id": "3cc6591515c24569bc5342bc82159a77", "publicURL": "http://127.0.0.1:3333"}],
41
+ "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
42
+ "http://127.0.0.1:9292", "region": "RegionOne", "internalURL": "http://127.0.0.1:9292",
43
+ "id": "6842e55991f14f66b1ccf7c924d83ca6", "publicURL": "http://127.0.0.1:9292"}],
44
+ "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
45
+ "http://127.0.0.1:8777", "region": "RegionOne", "internalURL": "http://127.0.0.1:8777",
46
+ "id": "1edf8d85bb7047beb66c7630b04b01e6", "publicURL": "http://127.0.0.1:8777"}],
47
+ "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
48
+ [{"adminURL": "http://127.0.0.1:8776/v1/87b582d56d3f4ed19a25c919bb59a6f0",
49
+ "region": "RegionOne", "internalURL": "http://127.0.0.1:8776/v1/87b582d56d3f4ed19a25c919bb59a6f0",
50
+ "id": "301c46cc88384348a5415d478162d51e", "publicURL": "http://127.0.0.1:8776/v1/87b582d56d3f4ed19a25c919bb59a6f0"}],
51
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
52
+ [{"adminURL": "http://127.0.0.1:8773/services/Admin", "region": "RegionOne",
53
+ "internalURL": "http://127.0.0.1:8773/services/Cloud", "id": "3c91fce7434e4a798e8093841d09c6cc",
54
+ "publicURL": "http://127.0.0.1:8773/services/Cloud"}], "endpoints_links":
55
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://127.0.0.1:35357/v2.0",
56
+ "region": "RegionOne", "internalURL": "http://127.0.0.1:5000/v2.0", "id":
57
+ "836cef616b644e2da8b0f39dd1aa78e1", "publicURL": "http://127.0.0.1:5000/v2.0"}],
58
+ "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
59
+ "<OPENSTACK_MEMBER_USERNAME>", "roles_links": [], "id": "cbdd1e36bf1d4bceab9896f47c0e5a9b",
60
+ "roles": [{"name": "_member_"}, {"name": "project_manager"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
61
+ "metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
62
+ "0877846b7e534fc3ae0e9b0bb226343d"]}}}'
63
+ http_version:
64
+ recorded_at: Wed, 25 Sep 2013 01:50:15 GMT
65
+ - request:
66
+ method: get
67
+ uri: http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0/servers
68
+ body:
69
+ encoding: US-ASCII
70
+ string: ''
71
+ headers:
72
+ Content-Type:
73
+ - application/json
74
+ User-Agent:
75
+ - Faraday v0.8.8
76
+ X-Auth-Token:
77
+ - 0f2de4a206b1470189161fc918909fc8
78
+ response:
79
+ status:
80
+ code: 200
81
+ message:
82
+ headers:
83
+ x-compute-request-id:
84
+ - req-cd8c8338-a6bd-4dcc-8eec-3f445ccf4a32
85
+ content-type:
86
+ - application/json
87
+ content-length:
88
+ - '360'
89
+ date:
90
+ - Wed, 25 Sep 2013 01:50:15 GMT
91
+ connection:
92
+ - close
93
+ body:
94
+ encoding: US-ASCII
95
+ string: ! '{"servers": [{"id": "9e43634d-71bf-4e04-97b3-783ce9e6d4bc", "links":
96
+ [{"href": "http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0/servers/9e43634d-71bf-4e04-97b3-783ce9e6d4bc",
97
+ "rel": "self"}, {"href": "http://127.0.0.1:8774/87b582d56d3f4ed19a25c919bb59a6f0/servers/9e43634d-71bf-4e04-97b3-783ce9e6d4bc",
98
+ "rel": "bookmark"}], "name": "test-instance"}]}'
99
+ http_version:
100
+ recorded_at: Wed, 25 Sep 2013 01:50:15 GMT
101
+ - request:
102
+ method: post
103
+ uri: http://127.0.0.1:8774/v2/87b582d56d3f4ed19a25c919bb59a6f0/servers/9e43634d-71bf-4e04-97b3-783ce9e6d4bc/action
104
+ body:
105
+ encoding: UTF-8
106
+ string: ! '{"os-start":null}'
107
+ headers:
108
+ Content-Type:
109
+ - application/json
110
+ User-Agent:
111
+ - Faraday v0.8.8
112
+ X-Auth-Token:
113
+ - 0f2de4a206b1470189161fc918909fc8
114
+ response:
115
+ status:
116
+ code: 202
117
+ message:
118
+ headers:
119
+ content-type:
120
+ - text/html; charset=UTF-8
121
+ content-length:
122
+ - '0'
123
+ date:
124
+ - Wed, 25 Sep 2013 01:50:15 GMT
125
+ connection:
126
+ - close
127
+ body:
128
+ encoding: US-ASCII
129
+ string: ''
130
+ http_version:
131
+ recorded_at: Wed, 25 Sep 2013 01:50:15 GMT
132
+ recorded_with: VCR 2.5.0