Merge branch 'feature/volume_all_tenants'

This implements the all_tenants feature for querying
the volume service to get all volumes from all tenants.
This commit is contained in:
Mark Maglana
2014-01-13 13:04:17 -08:00
13 changed files with 876 additions and 25 deletions

View File

@@ -25,7 +25,6 @@ Gem::Specification.new do |spec|
spec.add_dependency 'terminal-table', '>= 1.4.5'
spec.add_development_dependency "bundler", "~> 1.3"
spec.add_development_dependency "rake"
spec.add_development_dependency 'rb-fsevent', '~> 0.9.0'
spec.add_development_dependency 'guard', '~> 1.8.0'
spec.add_development_dependency 'guard-rake', '~> 0.0.0'

View File

@@ -0,0 +1,45 @@
module Aviator
define_request :list_public_images, inherit: [:openstack, :common, :v2, :public, :base] do
meta :service, :image
meta :api_version, :v1
link 'documentation', 'http://docs.openstack.org/api/openstack-image-service/1.1/content/requesting-a-list-of-public-vm-images.html'
param :name, required: false
param :container_format, required: false
param :disk_format, required: false
param :status, required: false
param :size_min, required: false
param :size_max, required: false
param :sort_key, required: false
param :sort_dir, required: false
def headers
super
end
def http_method
:get
end
def url
uri = URI(base_url)
url = "#{ uri.scheme }://#{ uri.host }:#{ uri.port.to_s }/v1/images"
filters = []
optional_params.each do |param_name|
filters << "#{ param_name }=#{ params[param_name] }" if params[param_name]
end
url += "?#{ filters.join('&') }" unless filters.empty?
url
end
end
end

View File

@@ -24,7 +24,7 @@ module Aviator
}
}
[:availability_zone, :metadata].each do |key|
optional_params.each do |key|
p[:volume][key] = params[key] if params[key]
end

View File

@@ -7,6 +7,7 @@ module Aviator
link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/GET_getVolumesSimple_v1__tenant_id__volumes_v1__tenant_id__volumes.html'
param :all_tenants, required: false
param :details, required: false
param :status, required: false
param :availability_zone, required: false
@@ -29,7 +30,17 @@ module Aviator
def url
str = "#{ base_url }/volumes"
str += "/detail" if params[:details]
str += params_to_querystring(optional_params + required_params - [:details])
filters = []
(optional_params + required_params - [:details]).each do |param_name|
value = param_name == :all_tenants && params[param_name] ? 1 : params[param_name]
filters << "#{ param_name }=#{ value }" if value
end
str += "?#{ filters.join('&') }" unless filters.empty?
str
end
end

View File

@@ -0,0 +1,145 @@
require 'test_helper'
class Aviator::Test
describe 'aviator/openstack/image/v1/public/list_public_images' do
def create_request(session_data = get_session_data, &block)
klass.new(session_data, &block)
end
def session
unless @session
@session = Aviator::Session.new(
config_file: Environment.path,
environment: 'openstack_member'
)
@session.authenticate
end
@session
end
def get_session_data
session.send :auth_info
end
def helper
Aviator::Test::RequestHelper
end
def session
unless @session
@session = Aviator::Session.new(
config_file: Environment.path,
environment: 'openstack_member'
)
@session.authenticate
end
@session
end
def helper
Aviator::Test::RequestHelper
end
def klass
@klass ||= helper.load_request('openstack', 'image', 'v1', 'public', 'list_public_images.rb')
end
validate_attr :anonymous? do
klass.anonymous?.must_equal false
end
validate_attr :api_version do
klass.api_version.must_equal :v1
end
validate_attr :body do
klass.body?.must_equal false
create_request.body?.must_equal false
end
validate_attr :endpoint_type do
klass.endpoint_type.must_equal :public
end
validate_attr :headers do
headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
request = create_request
request.headers.must_equal headers
end
validate_attr :optional_params do
klass.optional_params.must_equal [
:name,
:container_format,
:disk_format,
:status,
:size_min,
:size_max,
:sort_key,
:sort_dir
]
end
validate_attr :required_params do
klass.required_params.must_equal []
end
validate_attr :http_method do
create_request.http_method.must_equal :get
end
validate_response 'no parameters are provided' do
response = session.image_service.request :list_public_images
response.status.must_equal 200
response.body.wont_be_nil
response.body[:images].length.wont_equal 0
response.headers.wont_be_nil
end
validate_response 'filtering with matches' do
response = session.image_service.request :list_public_images do |p|
p[:name] = '64Bit Ubuntu 12.04'
end
response.status.must_equal 200
response.body.wont_be_nil
response.body[:images].length.must_equal 1
response.headers.wont_be_nil
end
validate_response 'filtering with no matches' do
response = session.image_service.request :list_public_images do |p|
p[:name] = 'does-not-match-any-image'
end
response.status.must_equal 200
response.body.wont_be_nil
response.body[:images].length.must_equal 0
response.headers.wont_be_nil
end
end
end

View File

@@ -4,26 +4,40 @@ class Aviator::Test
describe 'aviator/openstack/volume/v1/public/list_volumes' do
def admin_session
unless @admin_session
@admin_session = Aviator::Session.new(
config_file: Environment.path,
environment: 'openstack_admin'
)
@admin_session.authenticate
end
@admin_session
end
def create_request(session_data = get_session_data, &block)
klass.new(session_data, &block)
end
def session
unless @session
@session = Aviator::Session.new(
def member_session
unless @member_session
@member_session = Aviator::Session.new(
config_file: Environment.path,
environment: 'openstack_member'
)
@session.authenticate
@member_session.authenticate
end
@session
@member_session
end
def get_session_data
session.send :auth_info
member_session.send :auth_info
end
@@ -31,18 +45,6 @@ class Aviator::Test
Aviator::Test::RequestHelper
end
def session
unless @session
@session = Aviator::Session.new(
config_file: Environment.path,
environment: 'openstack_member'
)
@session.authenticate
end
@session
end
def helper
Aviator::Test::RequestHelper
@@ -53,14 +55,16 @@ class Aviator::Test
@klass ||= helper.load_request('openstack', 'volume', 'v1', 'public', 'list_volumes.rb')
end
def create_volume
session.volume_service.request :create_volume do |params|
member_session.volume_service.request :create_volume do |params|
params[:display_name] = 'Aviator Volume Test Name'
params[:display_description] = 'Aviator Volume Test Description'
params[:size] = '1'
end
end
validate_attr :anonymous? do
klass.anonymous?.must_equal false
end
@@ -90,8 +94,10 @@ class Aviator::Test
request.headers.must_equal headers
end
validate_attr :optional_params do
klass.optional_params.must_equal [
:all_tenants,
:details,
:status,
:availability_zone,
@@ -114,10 +120,24 @@ class Aviator::Test
create_request.http_method.must_equal :get
end
validate_response 'all_tenants param is true' do
# Manually create the volumes in more than one tenant for now
control_response = admin_session.volume_service.request :list_volumes
all_tenants_response = admin_session.volume_service.request :list_volumes do |params|
params[:all_tenants] = true
end
all_tenants_response.body[:volumes].length.must_be :>, control_response.body[:volumes].length
end
validate_response 'no parameters are provided' do
create_volume
response = session.volume_service.request :list_volumes
response = member_session.volume_service.request :list_volumes
response.status.must_equal 200
response.body.wont_be_nil
@@ -125,10 +145,11 @@ class Aviator::Test
response.headers.wont_be_nil
end
validate_response 'parameters are valid' do
create_volume
response = session.volume_service.request :list_volumes do |params|
response = member_session.volume_service.request :list_volumes do |params|
params[:details] = true
params[:display_name] = 'Aviator Volume Test Name'
end
@@ -140,8 +161,9 @@ class Aviator::Test
response.headers.wont_be_nil
end
validate_response 'parameters are invalid' do
response = session.volume_service.request :list_volumes do |params|
response = member_session.volume_service.request :list_volumes do |params|
params[:display_name] = "derpderp"
end
@@ -150,5 +172,8 @@ class Aviator::Test
response.body[:volumes].length.must_equal 0
response.headers.wont_be_nil
end
end
end

View File

@@ -0,0 +1,99 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2697'
date:
- Tue, 17 Dec 2013 08:29:28 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2013-12-17T08:29:28.932221",
"expires": "2013-12-17T14:29:28Z", "id": "0eae8a2cc0be437790c58dc6397e7cb2",
"tenant": {"description": "for aviator tests", "enabled": true, "id": "a528b6d6af894f9babb4f1b02154ee3e",
"name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"id": "83a5fdd3477942d08ee03ea09ac0ae90", "publicURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:9292", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:9292", "id": "76042ed1db23403c985c77961a23de0b",
"publicURL": "http://mc.la-1-3.morphlabs.net:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://mc.la-1-3.morphlabs.net:8777",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8777",
"id": "6f707de4c79249bf9b421d0288fab17c", "publicURL": "http://mc.la-1-3.morphlabs.net:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"id": "0b957378d43f44b6a46e744c151bb6d5", "publicURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "volume", "name": "nova_volume"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8773/services/Admin", "region":
"RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud",
"id": "1818d07e119f405f83ae194df42b4fca", "publicURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud"}],
"endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:35357/v2.0", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:5000/v2.0", "id": "5546a130cbb54ba4a403f62ed5ebd1f4",
"publicURL": "http://mc.la-1-3.morphlabs.net:5000/v2.0"}], "endpoints_links":
[], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
"roles_links": [], "id": "8a0962b47db14d7882abe7fb607e40a8", "roles": [{"name":
"_member_"}, {"name": "Member"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"aa85ee926c174ed2a09912aa730e1fb5"]}}}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:29:38 GMT
- request:
method: get
uri: http://mc.la-1-3.morphlabs.net:9292/v1/images?name=64Bit+Ubuntu+12.04
body:
encoding: US-ASCII
string: ''
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
X-Auth-Token:
- 0eae8a2cc0be437790c58dc6397e7cb2
response:
status:
code: 200
message:
headers:
content-type:
- application/json; charset=UTF-8
content-length:
- '208'
x-openstack-request-id:
- req-6ed13495-1325-42ad-9bc0-d3ce76803520
date:
- Tue, 17 Dec 2013 08:29:30 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"images": [{"name": "64Bit Ubuntu 12.04", "container_format": "ovf",
"disk_format": "qcow2", "checksum": "43d3a9e8bcd6c44366ac4634b8a28648", "id":
"3d520022-c1c8-439a-a96d-bfe8a0149846", "size": 252116992}]}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:29:39 GMT
recorded_with: VCR 2.5.0

View File

@@ -0,0 +1,97 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2697'
date:
- Tue, 17 Dec 2013 08:28:42 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2013-12-17T08:28:42.605252",
"expires": "2013-12-17T14:28:42Z", "id": "138a5fb7023c40749f00a28dd8677a2d",
"tenant": {"description": "for aviator tests", "enabled": true, "id": "a528b6d6af894f9babb4f1b02154ee3e",
"name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"id": "83a5fdd3477942d08ee03ea09ac0ae90", "publicURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:9292", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:9292", "id": "76042ed1db23403c985c77961a23de0b",
"publicURL": "http://mc.la-1-3.morphlabs.net:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://mc.la-1-3.morphlabs.net:8777",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8777",
"id": "6f707de4c79249bf9b421d0288fab17c", "publicURL": "http://mc.la-1-3.morphlabs.net:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"id": "0b957378d43f44b6a46e744c151bb6d5", "publicURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "volume", "name": "nova_volume"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8773/services/Admin", "region":
"RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud",
"id": "1818d07e119f405f83ae194df42b4fca", "publicURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud"}],
"endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:35357/v2.0", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:5000/v2.0", "id": "5546a130cbb54ba4a403f62ed5ebd1f4",
"publicURL": "http://mc.la-1-3.morphlabs.net:5000/v2.0"}], "endpoints_links":
[], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
"roles_links": [], "id": "8a0962b47db14d7882abe7fb607e40a8", "roles": [{"name":
"_member_"}, {"name": "Member"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"aa85ee926c174ed2a09912aa730e1fb5"]}}}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:28:52 GMT
- request:
method: get
uri: http://mc.la-1-3.morphlabs.net:9292/v1/images?name=does-not-match-any-image
body:
encoding: US-ASCII
string: ''
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
X-Auth-Token:
- 138a5fb7023c40749f00a28dd8677a2d
response:
status:
code: 200
message:
headers:
content-type:
- application/json; charset=UTF-8
content-length:
- '14'
x-openstack-request-id:
- req-03d772d2-2abb-464e-bab1-a7d297affb6c
date:
- Tue, 17 Dec 2013 08:28:44 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"images": []}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:28:53 GMT
recorded_with: VCR 2.5.0

View File

@@ -0,0 +1,99 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2697'
date:
- Tue, 17 Dec 2013 08:26:32 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2013-12-17T08:26:32.599056",
"expires": "2013-12-17T14:26:32Z", "id": "4f9e8b4dc4e04555ac33bd36e4e97a35",
"tenant": {"description": "for aviator tests", "enabled": true, "id": "a528b6d6af894f9babb4f1b02154ee3e",
"name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"id": "83a5fdd3477942d08ee03ea09ac0ae90", "publicURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:9292", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:9292", "id": "76042ed1db23403c985c77961a23de0b",
"publicURL": "http://mc.la-1-3.morphlabs.net:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://mc.la-1-3.morphlabs.net:8777",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8777",
"id": "6f707de4c79249bf9b421d0288fab17c", "publicURL": "http://mc.la-1-3.morphlabs.net:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"id": "0b957378d43f44b6a46e744c151bb6d5", "publicURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "volume", "name": "nova_volume"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8773/services/Admin", "region":
"RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud",
"id": "1818d07e119f405f83ae194df42b4fca", "publicURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud"}],
"endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:35357/v2.0", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:5000/v2.0", "id": "5546a130cbb54ba4a403f62ed5ebd1f4",
"publicURL": "http://mc.la-1-3.morphlabs.net:5000/v2.0"}], "endpoints_links":
[], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
"roles_links": [], "id": "8a0962b47db14d7882abe7fb607e40a8", "roles": [{"name":
"_member_"}, {"name": "Member"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"aa85ee926c174ed2a09912aa730e1fb5"]}}}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:26:42 GMT
- request:
method: get
uri: http://mc.la-1-3.morphlabs.net:9292/v1/images
body:
encoding: US-ASCII
string: ''
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
X-Auth-Token:
- 4f9e8b4dc4e04555ac33bd36e4e97a35
response:
status:
code: 200
message:
headers:
content-type:
- application/json; charset=UTF-8
content-length:
- '208'
x-openstack-request-id:
- req-fd5ee3b2-f0ca-4987-8ec7-439fcda8a7ee
date:
- Tue, 17 Dec 2013 08:26:33 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"images": [{"name": "64Bit Ubuntu 12.04", "container_format": "ovf",
"disk_format": "qcow2", "checksum": "43d3a9e8bcd6c44366ac4634b8a28648", "id":
"3d520022-c1c8-439a-a96d-bfe8a0149846", "size": 252116992}]}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:26:43 GMT
recorded_with: VCR 2.5.0

View File

@@ -0,0 +1,64 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2697'
date:
- Tue, 17 Dec 2013 08:26:30 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2013-12-17T08:26:30.873386",
"expires": "2013-12-17T14:26:30Z", "id": "bbd6ac6f423e4d4683b34e1acd92558d",
"tenant": {"description": "for aviator tests", "enabled": true, "id": "a528b6d6af894f9babb4f1b02154ee3e",
"name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"id": "83a5fdd3477942d08ee03ea09ac0ae90", "publicURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:9292", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:9292", "id": "76042ed1db23403c985c77961a23de0b",
"publicURL": "http://mc.la-1-3.morphlabs.net:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://mc.la-1-3.morphlabs.net:8777",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8777",
"id": "6f707de4c79249bf9b421d0288fab17c", "publicURL": "http://mc.la-1-3.morphlabs.net:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"id": "0b957378d43f44b6a46e744c151bb6d5", "publicURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "volume", "name": "nova_volume"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8773/services/Admin", "region":
"RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud",
"id": "1818d07e119f405f83ae194df42b4fca", "publicURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud"}],
"endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:35357/v2.0", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:5000/v2.0", "id": "5546a130cbb54ba4a403f62ed5ebd1f4",
"publicURL": "http://mc.la-1-3.morphlabs.net:5000/v2.0"}], "endpoints_links":
[], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
"roles_links": [], "id": "8a0962b47db14d7882abe7fb607e40a8", "roles": [{"name":
"_member_"}, {"name": "Member"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"aa85ee926c174ed2a09912aa730e1fb5"]}}}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:26:40 GMT
recorded_with: VCR 2.5.0

View File

@@ -0,0 +1,64 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2697'
date:
- Tue, 17 Dec 2013 08:26:31 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2013-12-17T08:26:31.790042",
"expires": "2013-12-17T14:26:31Z", "id": "802436bf36ed49b8af57a58c2d16031b",
"tenant": {"description": "for aviator tests", "enabled": true, "id": "a528b6d6af894f9babb4f1b02154ee3e",
"name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"id": "83a5fdd3477942d08ee03ea09ac0ae90", "publicURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:9292", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:9292", "id": "76042ed1db23403c985c77961a23de0b",
"publicURL": "http://mc.la-1-3.morphlabs.net:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://mc.la-1-3.morphlabs.net:8777",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8777",
"id": "6f707de4c79249bf9b421d0288fab17c", "publicURL": "http://mc.la-1-3.morphlabs.net:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"id": "0b957378d43f44b6a46e744c151bb6d5", "publicURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "volume", "name": "nova_volume"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8773/services/Admin", "region":
"RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud",
"id": "1818d07e119f405f83ae194df42b4fca", "publicURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud"}],
"endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:35357/v2.0", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:5000/v2.0", "id": "5546a130cbb54ba4a403f62ed5ebd1f4",
"publicURL": "http://mc.la-1-3.morphlabs.net:5000/v2.0"}], "endpoints_links":
[], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
"roles_links": [], "id": "8a0962b47db14d7882abe7fb607e40a8", "roles": [{"name":
"_member_"}, {"name": "Member"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"aa85ee926c174ed2a09912aa730e1fb5"]}}}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:26:41 GMT
recorded_with: VCR 2.5.0

View File

@@ -0,0 +1,64 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"},"tenantName":"<OPENSTACK_MEMBER_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2697'
date:
- Tue, 17 Dec 2013 08:26:34 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2013-12-17T08:26:34.276926",
"expires": "2013-12-17T14:26:34Z", "id": "1d4106dbb95a47188f385546f06aa1cb",
"tenant": {"description": "for aviator tests", "enabled": true, "id": "a528b6d6af894f9babb4f1b02154ee3e",
"name": "<OPENSTACK_MEMBER_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e",
"id": "83a5fdd3477942d08ee03ea09ac0ae90", "publicURL": "http://mc.la-1-3.morphlabs.net:8774/v2/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:9292", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:9292", "id": "76042ed1db23403c985c77961a23de0b",
"publicURL": "http://mc.la-1-3.morphlabs.net:9292"}], "endpoints_links": [],
"type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://mc.la-1-3.morphlabs.net:8777",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8777",
"id": "6f707de4c79249bf9b421d0288fab17c", "publicURL": "http://mc.la-1-3.morphlabs.net:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"region": "RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e",
"id": "0b957378d43f44b6a46e744c151bb6d5", "publicURL": "http://mc.la-1-3.morphlabs.net:8776/v1/a528b6d6af894f9babb4f1b02154ee3e"}],
"endpoints_links": [], "type": "volume", "name": "nova_volume"}, {"endpoints":
[{"adminURL": "http://mc.la-1-3.morphlabs.net:8773/services/Admin", "region":
"RegionOne", "internalURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud",
"id": "1818d07e119f405f83ae194df42b4fca", "publicURL": "http://mc.la-1-3.morphlabs.net:8773/services/Cloud"}],
"endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
"http://mc.la-1-3.morphlabs.net:35357/v2.0", "region": "RegionOne", "internalURL":
"http://mc.la-1-3.morphlabs.net:5000/v2.0", "id": "5546a130cbb54ba4a403f62ed5ebd1f4",
"publicURL": "http://mc.la-1-3.morphlabs.net:5000/v2.0"}], "endpoints_links":
[], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
"roles_links": [], "id": "8a0962b47db14d7882abe7fb607e40a8", "roles": [{"name":
"_member_"}, {"name": "Member"}], "name": "<OPENSTACK_MEMBER_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"aa85ee926c174ed2a09912aa730e1fb5"]}}}'
http_version:
recorded_at: Tue, 17 Dec 2013 08:26:44 GMT
recorded_with: VCR 2.5.0

View File

@@ -0,0 +1,139 @@
---
http_interactions:
- request:
method: post
uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
body:
encoding: UTF-8
string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
response:
status:
code: 200
message:
headers:
vary:
- X-Auth-Token
content-type:
- application/json
content-length:
- '2748'
date:
- Mon, 13 Jan 2014 19:50:40 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"access": {"token": {"issued_at": "2014-01-13T19:50:40.932648",
"expires": "2014-01-14T19:50:40Z", "id": "2eba17df3d9f4b588216d7d46ab7a190",
"tenant": {"description": "", "enabled": true, "id": "48aee3419d144bff8b52dfa9ecc77f56",
"name": "<OPENSTACK_ADMIN_TENANTNAME>"}}, "serviceCatalog": [{"endpoints":
[{"adminURL": "http://192.168.56.11:8774/v2/48aee3419d144bff8b52dfa9ecc77f56",
"region": "RegionOne", "internalURL": "http://192.168.56.11:8774/v2/48aee3419d144bff8b52dfa9ecc77f56",
"id": "385eff0d00e649f5ad4681886d76f997", "publicURL": "http://192.168.56.11:8774/v2/48aee3419d144bff8b52dfa9ecc77f56"}],
"endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
"http://192.168.56.11:3333", "region": "RegionOne", "internalURL": "http://192.168.56.11:3333",
"id": "0d4ab1f95c13456a9d7a3d027e76c964", "publicURL": "http://192.168.56.11:3333"}],
"endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL":
"http://192.168.56.11:9292", "region": "RegionOne", "internalURL": "http://192.168.56.11:9292",
"id": "0bdc5ce8ec68435ab750943d540904eb", "publicURL": "http://192.168.56.11:9292"}],
"endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
"http://192.168.56.11:8777", "region": "RegionOne", "internalURL": "http://192.168.56.11:8777",
"id": "9dbbda6e77ca43218cba4d9ed73ba1c1", "publicURL": "http://192.168.56.11:8777"}],
"endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
[{"adminURL": "http://192.168.56.11:8776/v1/48aee3419d144bff8b52dfa9ecc77f56",
"region": "RegionOne", "internalURL": "http://192.168.56.11:8776/v1/48aee3419d144bff8b52dfa9ecc77f56",
"id": "0d82a40198944f0eae9f159fa5f6a3a8", "publicURL": "http://192.168.56.11:8776/v1/48aee3419d144bff8b52dfa9ecc77f56"}],
"endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
[{"adminURL": "http://192.168.56.11:8773/services/Admin", "region": "RegionOne",
"internalURL": "http://192.168.56.11:8773/services/Cloud", "id": "2e9360daaf9841128035b4e3d9a4e134",
"publicURL": "http://192.168.56.11:8773/services/Cloud"}], "endpoints_links":
[], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.56.11:35357/v2.0",
"region": "RegionOne", "internalURL": "http://192.168.56.11:5000/v2.0", "id":
"554549b6bfc149e69570c225ba6883f6", "publicURL": "http://192.168.56.11:5000/v2.0"}],
"endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username":
"<OPENSTACK_ADMIN_USERNAME>", "roles_links": [], "id": "8672f6120b7a49ff9895ac72dc20c86f",
"roles": [{"name": "_member_"}, {"name": "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"},
"metadata": {"is_admin": 0, "roles": ["9fe2ff9ee4384b1894a90878d3e92bab",
"6be5442773c6459c917c0373bc58f6c4"]}}}'
http_version:
recorded_at: Mon, 13 Jan 2014 19:50:40 GMT
- request:
method: get
uri: http://192.168.56.11:8776/v1/48aee3419d144bff8b52dfa9ecc77f56/volumes
body:
encoding: US-ASCII
string: ''
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
X-Auth-Token:
- 2eba17df3d9f4b588216d7d46ab7a190
response:
status:
code: 200
message:
headers:
x-compute-request-id:
- req-b7d2453e-25b8-4e70-b451-8d25292f98a5
content-type:
- application/json
content-length:
- '15'
date:
- Mon, 13 Jan 2014 19:50:41 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"volumes": []}'
http_version:
recorded_at: Mon, 13 Jan 2014 19:50:40 GMT
- request:
method: get
uri: http://192.168.56.11:8776/v1/48aee3419d144bff8b52dfa9ecc77f56/volumes?all_tenants=1
body:
encoding: US-ASCII
string: ''
headers:
Content-Type:
- application/json
User-Agent:
- Faraday v0.8.8
X-Auth-Token:
- 2eba17df3d9f4b588216d7d46ab7a190
response:
status:
code: 200
message:
headers:
x-compute-request-id:
- req-9a7f5708-c04f-4f22-ba28-3271b8fe4a9a
content-type:
- application/json
content-length:
- '675'
date:
- Mon, 13 Jan 2014 19:50:41 GMT
connection:
- close
body:
encoding: US-ASCII
string: ! '{"volumes": [{"status": "available", "display_name": "admin_test",
"attachments": [], "availability_zone": "nova", "bootable": "false", "created_at":
"2014-01-13T19:34:36.000000", "display_description": "", "volume_type": "None",
"snapshot_id": null, "source_volid": null, "metadata": {}, "id": "73f88b98-480c-4a47-a660-65aeeb46559d",
"size": 1}, {"status": "available", "display_name": "Test", "attachments":
[], "availability_zone": "nova", "bootable": "false", "created_at": "2013-12-11T19:04:52.000000",
"display_description": "", "volume_type": "None", "snapshot_id": null, "source_volid":
null, "metadata": {}, "id": "225c700b-3f2f-4ee1-99f3-a61d749bdcff", "size":
1}]}'
http_version:
recorded_at: Mon, 13 Jan 2014 19:50:40 GMT
recorded_with: VCR 2.5.0