You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2012/08/27 14:57:18 UTC
[PATCH core 2/2] Added initial OpenStack unit tests
From: Michal Fojtik <mf...@redhat.com>
Signed-off-by: Michal fojtik <mf...@redhat.com>
---
server/Rakefile | 2 +-
server/tests/drivers/openstack/common.rb | 26 +
...001_must_throw_error_when_wrong_credentials.yml | 35 +
..._0002_must_return_list_of_hardware_profiles.yml | 223 ++++++
.../test_0002_must_return_list_of_images.yml | 415 ++++++++++
.../test_0002_must_return_list_of_instances.yml | 239 ++++++
.../test_0002_must_return_list_of_keys.yml | 197 +++++
.../test_0002_must_return_list_of_realms.yml | 205 +++++
...0003_must_allow_to_filter_hardware_profiles.yml | 188 +++++
.../test_0003_must_allow_to_filter_images.yml | 825 ++++++++++++++++++++
.../test_0003_must_allow_to_filter_instances.yml | 109 +++
.../test_0003_must_allow_to_filter_keys.yml | 197 +++++
.../test_0003_must_allow_to_filter_realms.yml | 205 +++++
...t_allow_to_retrieve_single_hardware_profile.yml | 188 +++++
...st_0004_must_allow_to_retrieve_single_image.yml | 413 ++++++++++
...0004_must_allow_to_retrieve_single_instance.yml | 109 +++
...test_0004_must_allow_to_retrieve_single_key.yml | 197 +++++
...st_0004_must_allow_to_retrieve_single_realm.yml | 205 +++++
...eate_and_destroy_an_instance-inst_launch-10.yml | 93 +++
...ust_allow_to_create_and_destroy_an_instance.yml | 152 ++++
...t_0005_must_allow_to_create_and_destroy_key.yml | 690 ++++++++++++++++
.../drivers/openstack/hardware_profiles_test.rb | 46 ++
server/tests/drivers/openstack/images_test.rb | 50 ++
server/tests/drivers/openstack/instances_test.rb | 66 ++
server/tests/drivers/openstack/keys_test.rb | 61 ++
server/tests/drivers/openstack/realms_test.rb | 46 ++
26 files changed, 5181 insertions(+), 1 deletion(-)
create mode 100644 server/tests/drivers/openstack/common.rb
create mode 100644 server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_wrong_credentials.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_hardware_profiles.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_images.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_instances.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_keys.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_realms.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_hardware_profiles.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_images.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_instances.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_keys.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_realms.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_hardware_profile.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_image.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_instance.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_key.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_realm.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance-inst_launch-10.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance.yml
create mode 100644 server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_key.yml
create mode 100644 server/tests/drivers/openstack/hardware_profiles_test.rb
create mode 100644 server/tests/drivers/openstack/images_test.rb
create mode 100644 server/tests/drivers/openstack/instances_test.rb
create mode 100644 server/tests/drivers/openstack/keys_test.rb
create mode 100644 server/tests/drivers/openstack/realms_test.rb
diff --git a/server/Rakefile b/server/Rakefile
index f38b05e..617b16b 100644
--- a/server/Rakefile
+++ b/server/Rakefile
@@ -116,7 +116,7 @@ task :routes do
end
end
-DRIVERS = [:mock, :ec2, :rhevm, :google, :gogrid]
+DRIVERS = [:mock, :ec2, :rhevm, :google, :gogrid, :openstack]
desc 'Run all tests'
task :test do
diff --git a/server/tests/drivers/openstack/common.rb b/server/tests/drivers/openstack/common.rb
new file mode 100644
index 0000000..a452cc2
--- /dev/null
+++ b/server/tests/drivers/openstack/common.rb
@@ -0,0 +1,26 @@
+require 'openstack'
+require 'vcr'
+
+def credentials
+ {
+ :user => 'admin+admin',
+ :password => 'password',
+ :provider => 'http://10.34.32.211:5000/v2.0'
+ }
+end
+
+def openstack_image_id
+ 'bf7ce59a-d9f9-45d4-9313-f45b16436602'
+end
+
+unless Time.respond_to? :be
+ require_relative '../../test_helper.rb'
+end
+
+VCR.configure do |c|
+ # NOTE: Empty this directory before re-recording
+ c.cassette_library_dir = File.join(File.dirname(__FILE__), 'fixtures')
+ c.hook_into :webmock
+ # Set this to :new_episodes when you want to 're-record'
+ c.default_cassette_options = { :record => :new_episodes }
+end
diff --git a/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_wrong_credentials.yml b/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_wrong_credentials.yml
new file mode 100644
index 0000000..8124c17
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_wrong_credentials.yml
@@ -0,0 +1,35 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"unknown","password":"wrong"},"tenantName":"wrong"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 401
+ message: Not Authorized
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '89'
+ Date:
+ - Mon, 27 Aug 2012 16:15:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"error": {"message": "Invalid user / password", "code": 401, "title":
+ "Not Authorized"}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_hardware_profiles.yml b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_hardware_profiles.yml
new file mode 100644
index 0000000..8c28c01
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_hardware_profiles.yml
@@ -0,0 +1,223 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:33Z", "id": "f8b3945d217945818abf0e3e280a2506",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - f8b3945d217945818abf0e3e280a2506
+ X-Storage-Token:
+ - f8b3945d217945818abf0e3e280a2506
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-a2825759-60c6-462e-8b38-dff28f2d2095
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:33Z", "id": "c15f642a54a148529eef8da828ce334c",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - c15f642a54a148529eef8da828ce334c
+ X-Storage-Token:
+ - c15f642a54a148529eef8da828ce334c
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-0c1023a4-140a-491f-ae36-ce7d42a1a82c
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_images.yml b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_images.yml
new file mode 100644
index 0000000..62f82a1
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_images.yml
@@ -0,0 +1,415 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:27Z", "id": "0345b893a9e34d44b5714cfe749564bf",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:27Z", "id": "dbbfac2b279848aba9ccbff62058b43d",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - dbbfac2b279848aba9ccbff62058b43d
+ X-Storage-Token:
+ - dbbfac2b279848aba9ccbff62058b43d
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-4be081ef-75b4-4571-9455-b8610c0b3999
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 0345b893a9e34d44b5714cfe749564bf
+ X-Storage-Token:
+ - 0345b893a9e34d44b5714cfe749564bf
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-cde495e8-6a06-4e93-ab9c-2197ffbffb63
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '688'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"images": [{"status": "ACTIVE", "updated": "2012-08-24T15:51:45Z",
+ "name": "f16-jeos", "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}, {"href": "http://10.34.32.211:9292/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "type": "application/vnd.openstack.image", "rel": "alternate"}], "created":
+ "2012-08-24T15:41:42Z", "progress": 100, "minRam": 0, "minDisk": 0, "id":
+ "bf7ce59a-d9f9-45d4-9313-f45b16436602", "metadata": {}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:28Z", "id": "32b0e8c84902405384486ba89407d529",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:28Z", "id": "54a9790141b74e8b88ff4fa0a5a77bd2",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 54a9790141b74e8b88ff4fa0a5a77bd2
+ X-Storage-Token:
+ - 54a9790141b74e8b88ff4fa0a5a77bd2
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-759b2e01-eff9-4e6c-9c46-51b28f6aa973
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 32b0e8c84902405384486ba89407d529
+ X-Storage-Token:
+ - 32b0e8c84902405384486ba89407d529
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-6ac1cfc4-e515-42a7-a33f-b9bc171a2dfd
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '688'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"images": [{"status": "ACTIVE", "updated": "2012-08-24T15:51:45Z",
+ "name": "f16-jeos", "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}, {"href": "http://10.34.32.211:9292/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "type": "application/vnd.openstack.image", "rel": "alternate"}], "created":
+ "2012-08-24T15:41:42Z", "progress": 100, "minRam": 0, "minDisk": 0, "id":
+ "bf7ce59a-d9f9-45d4-9313-f45b16436602", "metadata": {}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_instances.yml b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_instances.yml
new file mode 100644
index 0000000..61e7761
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_instances.yml
@@ -0,0 +1,239 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:17:33Z", "id": "3d86c2c60db740048679f407ce56b8dc",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 3d86c2c60db740048679f407ce56b8dc
+ X-Storage-Token:
+ - 3d86c2c60db740048679f407ce56b8dc
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-12f4d254-1dca-4f59-95f8-5358f5ab2dce
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '2824'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"servers": [{"OS-EXT-STS:task_state": null, "addresses": {"demonet":
+ [{"version": 4, "addr": "10.0.0.7"}]}, "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/632f0a99-7c2d-4624-afaf-b9d2421279bc",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/632f0a99-7c2d-4624-afaf-b9d2421279bc",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-00000011", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "632f0a99-7c2d-4624-afaf-b9d2421279bc", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive":
+ "", "status": "ACTIVE", "updated": "2012-08-27T15:44:08Z", "hostId": "13942eef5ee69ea6fabcd918042084b1ec915973056bb1b497b43dfa",
+ "OS-EXT-SRV-ATTR:host": "openstack-01.lab.eng.brq.redhat.com", "key_name":
+ "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "name": "server2012-08-27
+ 13:55:22 +0200", "created": "2012-08-27T15:44:04Z", "tenant_id": "e827289fd66f4effb5b9b5012282fdb7",
+ "metadata": {}}, {"OS-EXT-STS:task_state": null, "addresses": {"demonet":
+ [{"version": 4, "addr": "10.0.0.2"}]}, "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-0000000c", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "fef00348-9991-404c-b0d4-655d18f84345", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive":
+ "", "status": "ACTIVE", "updated": "2012-08-27T15:27:16Z", "hostId": "13942eef5ee69ea6fabcd918042084b1ec915973056bb1b497b43dfa",
+ "OS-EXT-SRV-ATTR:host": "openstack-01.lab.eng.brq.redhat.com", "key_name":
+ "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "name": "test-3", "created":
+ "2012-08-27T15:27:12Z", "tenant_id": "e827289fd66f4effb5b9b5012282fdb7", "metadata":
+ {}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:17:33Z", "id": "cd515949e1314be9b29cc84d92f282b4",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - cd515949e1314be9b29cc84d92f282b4
+ X-Storage-Token:
+ - cd515949e1314be9b29cc84d92f282b4
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-8b6053a6-6fbc-4c56-a6ae-d09fc553fa0e
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '2824'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"servers": [{"OS-EXT-STS:task_state": null, "addresses": {"demonet":
+ [{"version": 4, "addr": "10.0.0.7"}]}, "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/632f0a99-7c2d-4624-afaf-b9d2421279bc",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/632f0a99-7c2d-4624-afaf-b9d2421279bc",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-00000011", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "632f0a99-7c2d-4624-afaf-b9d2421279bc", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive":
+ "", "status": "ACTIVE", "updated": "2012-08-27T15:44:08Z", "hostId": "13942eef5ee69ea6fabcd918042084b1ec915973056bb1b497b43dfa",
+ "OS-EXT-SRV-ATTR:host": "openstack-01.lab.eng.brq.redhat.com", "key_name":
+ "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "name": "server2012-08-27
+ 13:55:22 +0200", "created": "2012-08-27T15:44:04Z", "tenant_id": "e827289fd66f4effb5b9b5012282fdb7",
+ "metadata": {}}, {"OS-EXT-STS:task_state": null, "addresses": {"demonet":
+ [{"version": 4, "addr": "10.0.0.2"}]}, "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-0000000c", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "fef00348-9991-404c-b0d4-655d18f84345", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive":
+ "", "status": "ACTIVE", "updated": "2012-08-27T15:27:16Z", "hostId": "13942eef5ee69ea6fabcd918042084b1ec915973056bb1b497b43dfa",
+ "OS-EXT-SRV-ATTR:host": "openstack-01.lab.eng.brq.redhat.com", "key_name":
+ "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "name": "test-3", "created":
+ "2012-08-27T15:27:12Z", "tenant_id": "e827289fd66f4effb5b9b5012282fdb7", "metadata":
+ {}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_keys.yml b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_keys.yml
new file mode 100644
index 0000000..6ce7ea7
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_keys.yml
@@ -0,0 +1,197 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:39Z", "id": "0e68e226f6b946798f4915fc86857fe0",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 0e68e226f6b946798f4915fc86857fe0
+ X-Storage-Token:
+ - 0e68e226f6b946798f4915fc86857fe0
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-d46958de-0035-4d87-b06e-18915e3da8fd
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '756'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypairs": [{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLRqcGJtIWRsRlm9E+BAX1YThZc8y2zdXUF9KY3R1e8sWGnDjBIS91WWliaIgP8CrSMfFEWSzUJbyqrsBui4E0JDP04vcS5W0ioY/BmJD99nRaRncS+KKHChUuVMIjQ6cn+hI76OgfpPqM3GNgkxl2grW2arwXrzWRJ2tEP6QnlQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test1", "fingerprint":
+ "9a:be:87:83:75:ae:06:0e:b7:c4:19:be:f7:52:bd:a8"}}, {"keypair": {"public_key":
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDQq0Nu2t2KLs7AQLIUHX6x94tx6sacAXSgkHvlVJLM9HHHPMFlXeerYEeaPSC/vS7mwl0bXNN/ETXRpJ5Thd6BAnLDEAJcvrm63NHeJ4axvALzs6mQyndAu7UpFrK3nEaDPKgZPnEAKCUvBD+vLoySWilaNWGxsVH5kFpbT+73NQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test2", "fingerprint":
+ "cc:1d:51:aa:d7:dd:b7:07:ec:3b:3c:0c:1a:0c:04:c5"}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:39Z", "id": "53d0cb9cfb1e499ca0ded559e07b5aaa",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 53d0cb9cfb1e499ca0ded559e07b5aaa
+ X-Storage-Token:
+ - 53d0cb9cfb1e499ca0ded559e07b5aaa
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-0fb19aca-2b82-419a-b5c7-8eef53784a1d
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '756'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypairs": [{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLRqcGJtIWRsRlm9E+BAX1YThZc8y2zdXUF9KY3R1e8sWGnDjBIS91WWliaIgP8CrSMfFEWSzUJbyqrsBui4E0JDP04vcS5W0ioY/BmJD99nRaRncS+KKHChUuVMIjQ6cn+hI76OgfpPqM3GNgkxl2grW2arwXrzWRJ2tEP6QnlQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test1", "fingerprint":
+ "9a:be:87:83:75:ae:06:0e:b7:c4:19:be:f7:52:bd:a8"}}, {"keypair": {"public_key":
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDQq0Nu2t2KLs7AQLIUHX6x94tx6sacAXSgkHvlVJLM9HHHPMFlXeerYEeaPSC/vS7mwl0bXNN/ETXRpJ5Thd6BAnLDEAJcvrm63NHeJ4axvALzs6mQyndAu7UpFrK3nEaDPKgZPnEAKCUvBD+vLoySWilaNWGxsVH5kFpbT+73NQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test2", "fingerprint":
+ "cc:1d:51:aa:d7:dd:b7:07:ec:3b:3c:0c:1a:0c:04:c5"}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_realms.yml b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_realms.yml
new file mode 100644
index 0000000..b3eaf18
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_realms.yml
@@ -0,0 +1,205 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:15:34Z", "id": "e92cde551ebf403c9824440f7edc47ca",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/limits
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - e92cde551ebf403c9824440f7edc47ca
+ X-Storage-Token:
+ - e92cde551ebf403c9824440f7edc47ca
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-6baf6807-52cd-4a74-b0a5-04aeff385b3e
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '900'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"limits": {"rate": [{"regex": ".*", "limit": [{"next-available":
+ "2012-08-27T15:44:04Z", "unit": "MINUTE", "verb": "POST", "remaining": 9,
+ "value": 10}, {"next-available": "2012-08-27T16:15:34Z", "unit": "MINUTE",
+ "verb": "PUT", "remaining": 10, "value": 10}, {"next-available": "2012-08-27T15:39:45Z",
+ "unit": "MINUTE", "verb": "DELETE", "remaining": 99, "value": 100}], "uri":
+ "*"}, {"regex": "^/servers", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "DAY", "verb": "POST", "remaining": 50, "value": 50}], "uri": "*/servers"},
+ {"regex": ".*changes-since.*", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "MINUTE", "verb": "GET", "remaining": 3, "value": 3}], "uri": "*changes-since*"}],
+ "absolute": {"maxServerMeta": 128, "maxPersonality": 5, "maxImageMeta": 128,
+ "maxPersonalitySize": 10240, "maxTotalCores": 20, "maxTotalInstances": 10,
+ "maxTotalRAMSize": 51200}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:15:34Z", "id": "6366d82b5dd04fee88c37bf950f24172",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/limits
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 6366d82b5dd04fee88c37bf950f24172
+ X-Storage-Token:
+ - 6366d82b5dd04fee88c37bf950f24172
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-96f38078-c22f-4fdf-a3f0-a2ec6bbb2212
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '900'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"limits": {"rate": [{"regex": ".*", "limit": [{"next-available":
+ "2012-08-27T15:44:04Z", "unit": "MINUTE", "verb": "POST", "remaining": 9,
+ "value": 10}, {"next-available": "2012-08-27T16:15:34Z", "unit": "MINUTE",
+ "verb": "PUT", "remaining": 10, "value": 10}, {"next-available": "2012-08-27T15:39:45Z",
+ "unit": "MINUTE", "verb": "DELETE", "remaining": 99, "value": 100}], "uri":
+ "*"}, {"regex": "^/servers", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "DAY", "verb": "POST", "remaining": 50, "value": 50}], "uri": "*/servers"},
+ {"regex": ".*changes-since.*", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "MINUTE", "verb": "GET", "remaining": 3, "value": 3}], "uri": "*changes-since*"}],
+ "absolute": {"maxServerMeta": 128, "maxPersonality": 5, "maxImageMeta": 128,
+ "maxPersonalitySize": 10240, "maxTotalCores": 20, "maxTotalInstances": 10,
+ "maxTotalRAMSize": 51200}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_hardware_profiles.yml b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_hardware_profiles.yml
new file mode 100644
index 0000000..fa860cc
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_hardware_profiles.yml
@@ -0,0 +1,188 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:33Z", "id": "acfe5cb6720045c4ba3a61bbc85fe08e",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - acfe5cb6720045c4ba3a61bbc85fe08e
+ X-Storage-Token:
+ - acfe5cb6720045c4ba3a61bbc85fe08e
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-108270e7-7fea-4cfe-82eb-76f1d733ac63
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '353'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavor": {"vcpus": 1, "disk": 0, "name": "m1.tiny", "links": [{"href":
+ "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:33Z", "id": "e3b855ebbafe41cb9e510cdcb79b1ad9",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/unknown
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - e3b855ebbafe41cb9e510cdcb79b1ad9
+ X-Storage-Token:
+ - e3b855ebbafe41cb9e510cdcb79b1ad9
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Content-Length:
+ - '78'
+ Content-Type:
+ - application/json; charset=UTF-8
+ X-Compute-Request-Id:
+ - req-173cf567-daf8-4ebf-9751-f472df4316e9
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"itemNotFound": {"message": "The resource could not be found.",
+ "code": 404}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_images.yml b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_images.yml
new file mode 100644
index 0000000..7aeb324
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_images.yml
@@ -0,0 +1,825 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:26 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:26Z", "id": "2cdc8562eed4480eaf404bf7719fc4d1",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:44 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:26 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:26Z", "id": "bdabcf1bb3104cb5968c4c4b24400b67",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:44 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - bdabcf1bb3104cb5968c4c4b24400b67
+ X-Storage-Token:
+ - bdabcf1bb3104cb5968c4c4b24400b67
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-e265ef32-452c-494a-a960-7408c096a1c7
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:26 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:44 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 2cdc8562eed4480eaf404bf7719fc4d1
+ X-Storage-Token:
+ - 2cdc8562eed4480eaf404bf7719fc4d1
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-0eb06258-b825-4052-a604-4c02a360bc7d
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '685'
+ Date:
+ - Mon, 27 Aug 2012 16:16:26 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"image": {"status": "ACTIVE", "updated": "2012-08-24T15:51:45Z",
+ "name": "f16-jeos", "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}, {"href": "http://10.34.32.211:9292/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "type": "application/vnd.openstack.image", "rel": "alternate"}], "created":
+ "2012-08-24T15:41:42Z", "progress": 100, "minRam": 0, "minDisk": 0, "id":
+ "bf7ce59a-d9f9-45d4-9313-f45b16436602", "metadata": {}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:44 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:26 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:26Z", "id": "c5f8836121b2418b96a3feb3eae5cf6e",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:26 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:26Z", "id": "2787674866c1448ab65b5915429e1208",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 2787674866c1448ab65b5915429e1208
+ X-Storage-Token:
+ - 2787674866c1448ab65b5915429e1208
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-5db489bc-cb62-4d8b-a92d-613e413425c8
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - c5f8836121b2418b96a3feb3eae5cf6e
+ X-Storage-Token:
+ - c5f8836121b2418b96a3feb3eae5cf6e
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-21ddef3c-a974-472b-bf30-5cc4702b5084
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '688'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"images": [{"status": "ACTIVE", "updated": "2012-08-24T15:51:45Z",
+ "name": "f16-jeos", "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}, {"href": "http://10.34.32.211:9292/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "type": "application/vnd.openstack.image", "rel": "alternate"}], "created":
+ "2012-08-24T15:41:42Z", "progress": 100, "minRam": 0, "minDisk": 0, "id":
+ "bf7ce59a-d9f9-45d4-9313-f45b16436602", "metadata": {}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:27Z", "id": "3cc0eefd97c344fdbeb8d4db06359fa0",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:27Z", "id": "f55967d736684f4bb13cdf019604e96d",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - f55967d736684f4bb13cdf019604e96d
+ X-Storage-Token:
+ - f55967d736684f4bb13cdf019604e96d
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-ba6f44bc-9626-4cc5-9b18-093abe696ec9
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 3cc0eefd97c344fdbeb8d4db06359fa0
+ X-Storage-Token:
+ - 3cc0eefd97c344fdbeb8d4db06359fa0
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-9fefe16f-8925-46a5-a2ff-23432205dd93
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '688'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"images": [{"status": "ACTIVE", "updated": "2012-08-24T15:51:45Z",
+ "name": "f16-jeos", "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}, {"href": "http://10.34.32.211:9292/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "type": "application/vnd.openstack.image", "rel": "alternate"}], "created":
+ "2012-08-24T15:41:42Z", "progress": 100, "minRam": 0, "minDisk": 0, "id":
+ "bf7ce59a-d9f9-45d4-9313-f45b16436602", "metadata": {}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:27Z", "id": "7c22b6e46a08419f95b2acf98262c8bb",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:27Z", "id": "cdf2d4d03b2e428e884183ffc6a48c4d",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - cdf2d4d03b2e428e884183ffc6a48c4d
+ X-Storage-Token:
+ - cdf2d4d03b2e428e884183ffc6a48c4d
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-768f3c48-83a0-4417-a692-61f86f6f9b3e
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/unknown
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 7c22b6e46a08419f95b2acf98262c8bb
+ X-Storage-Token:
+ - 7c22b6e46a08419f95b2acf98262c8bb
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Content-Length:
+ - '62'
+ Content-Type:
+ - application/json; charset=UTF-8
+ X-Compute-Request-Id:
+ - req-3840624b-109f-42bd-968e-0b09b7a51bcb
+ Date:
+ - Mon, 27 Aug 2012 16:16:27 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"itemNotFound": {"message": "Image not found.", "code": 404}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:45 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_instances.yml b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_instances.yml
new file mode 100644
index 0000000..1c475d9
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_instances.yml
@@ -0,0 +1,109 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:17:33Z", "id": "7fa6728dbb9349dabbf7da4b10a665a7",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 7fa6728dbb9349dabbf7da4b10a665a7
+ X-Storage-Token:
+ - 7fa6728dbb9349dabbf7da4b10a665a7
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-be0221ae-72b3-40cc-9ebc-fd70e8542735
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1403'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"server": {"OS-EXT-STS:task_state": null, "addresses": {"demonet":
+ [{"version": 4, "addr": "10.0.0.2"}]}, "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-0000000c", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "fef00348-9991-404c-b0d4-655d18f84345", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive":
+ "", "status": "ACTIVE", "updated": "2012-08-27T15:27:16Z", "hostId": "13942eef5ee69ea6fabcd918042084b1ec915973056bb1b497b43dfa",
+ "OS-EXT-SRV-ATTR:host": "openstack-01.lab.eng.brq.redhat.com", "key_name":
+ "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "name": "test-3", "created":
+ "2012-08-27T15:27:12Z", "tenant_id": "e827289fd66f4effb5b9b5012282fdb7", "metadata":
+ {}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_keys.yml b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_keys.yml
new file mode 100644
index 0000000..25f247f
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_keys.yml
@@ -0,0 +1,197 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:39Z", "id": "2d7eb883d34c4549835b12ab72fa4863",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 2d7eb883d34c4549835b12ab72fa4863
+ X-Storage-Token:
+ - 2d7eb883d34c4549835b12ab72fa4863
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-92d34996-f7b5-4254-9893-2dc4b196dd0b
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '756'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypairs": [{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLRqcGJtIWRsRlm9E+BAX1YThZc8y2zdXUF9KY3R1e8sWGnDjBIS91WWliaIgP8CrSMfFEWSzUJbyqrsBui4E0JDP04vcS5W0ioY/BmJD99nRaRncS+KKHChUuVMIjQ6cn+hI76OgfpPqM3GNgkxl2grW2arwXrzWRJ2tEP6QnlQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test1", "fingerprint":
+ "9a:be:87:83:75:ae:06:0e:b7:c4:19:be:f7:52:bd:a8"}}, {"keypair": {"public_key":
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDQq0Nu2t2KLs7AQLIUHX6x94tx6sacAXSgkHvlVJLM9HHHPMFlXeerYEeaPSC/vS7mwl0bXNN/ETXRpJ5Thd6BAnLDEAJcvrm63NHeJ4axvALzs6mQyndAu7UpFrK3nEaDPKgZPnEAKCUvBD+vLoySWilaNWGxsVH5kFpbT+73NQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test2", "fingerprint":
+ "cc:1d:51:aa:d7:dd:b7:07:ec:3b:3c:0c:1a:0c:04:c5"}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:39Z", "id": "1fab3d0817254f2fb3cf6070a5a95194",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 1fab3d0817254f2fb3cf6070a5a95194
+ X-Storage-Token:
+ - 1fab3d0817254f2fb3cf6070a5a95194
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-f3776a90-fafb-4b5e-89d9-d75b9a58a9fa
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '756'
+ Date:
+ - Mon, 27 Aug 2012 16:16:39 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypairs": [{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLRqcGJtIWRsRlm9E+BAX1YThZc8y2zdXUF9KY3R1e8sWGnDjBIS91WWliaIgP8CrSMfFEWSzUJbyqrsBui4E0JDP04vcS5W0ioY/BmJD99nRaRncS+KKHChUuVMIjQ6cn+hI76OgfpPqM3GNgkxl2grW2arwXrzWRJ2tEP6QnlQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test1", "fingerprint":
+ "9a:be:87:83:75:ae:06:0e:b7:c4:19:be:f7:52:bd:a8"}}, {"keypair": {"public_key":
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDQq0Nu2t2KLs7AQLIUHX6x94tx6sacAXSgkHvlVJLM9HHHPMFlXeerYEeaPSC/vS7mwl0bXNN/ETXRpJ5Thd6BAnLDEAJcvrm63NHeJ4axvALzs6mQyndAu7UpFrK3nEaDPKgZPnEAKCUvBD+vLoySWilaNWGxsVH5kFpbT+73NQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test2", "fingerprint":
+ "cc:1d:51:aa:d7:dd:b7:07:ec:3b:3c:0c:1a:0c:04:c5"}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_realms.yml b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_realms.yml
new file mode 100644
index 0000000..669d52c
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_filter_realms.yml
@@ -0,0 +1,205 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:15:34Z", "id": "bb95494b665b406090d2a2d5d72e5a71",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/limits
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - bb95494b665b406090d2a2d5d72e5a71
+ X-Storage-Token:
+ - bb95494b665b406090d2a2d5d72e5a71
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-6b2e205e-8069-45fc-b30c-63c072441a52
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '900'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"limits": {"rate": [{"regex": ".*", "limit": [{"next-available":
+ "2012-08-27T15:44:04Z", "unit": "MINUTE", "verb": "POST", "remaining": 9,
+ "value": 10}, {"next-available": "2012-08-27T16:15:34Z", "unit": "MINUTE",
+ "verb": "PUT", "remaining": 10, "value": 10}, {"next-available": "2012-08-27T15:39:45Z",
+ "unit": "MINUTE", "verb": "DELETE", "remaining": 99, "value": 100}], "uri":
+ "*"}, {"regex": "^/servers", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "DAY", "verb": "POST", "remaining": 50, "value": 50}], "uri": "*/servers"},
+ {"regex": ".*changes-since.*", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "MINUTE", "verb": "GET", "remaining": 3, "value": 3}], "uri": "*changes-since*"}],
+ "absolute": {"maxServerMeta": 128, "maxPersonality": 5, "maxImageMeta": 128,
+ "maxPersonalitySize": 10240, "maxTotalCores": 20, "maxTotalInstances": 10,
+ "maxTotalRAMSize": 51200}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:15:34Z", "id": "c1e33579df06479d94b8d4615511d528",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/limits
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - c1e33579df06479d94b8d4615511d528
+ X-Storage-Token:
+ - c1e33579df06479d94b8d4615511d528
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-6c5ec037-d2a5-49ac-a244-424e6332e383
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '900'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"limits": {"rate": [{"regex": ".*", "limit": [{"next-available":
+ "2012-08-27T15:44:04Z", "unit": "MINUTE", "verb": "POST", "remaining": 9,
+ "value": 10}, {"next-available": "2012-08-27T16:15:34Z", "unit": "MINUTE",
+ "verb": "PUT", "remaining": 10, "value": 10}, {"next-available": "2012-08-27T15:39:45Z",
+ "unit": "MINUTE", "verb": "DELETE", "remaining": 99, "value": 100}], "uri":
+ "*"}, {"regex": "^/servers", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "DAY", "verb": "POST", "remaining": 50, "value": 50}], "uri": "*/servers"},
+ {"regex": ".*changes-since.*", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "MINUTE", "verb": "GET", "remaining": 3, "value": 3}], "uri": "*changes-since*"}],
+ "absolute": {"maxServerMeta": 128, "maxPersonality": 5, "maxImageMeta": 128,
+ "maxPersonalitySize": 10240, "maxTotalCores": 20, "maxTotalInstances": 10,
+ "maxTotalRAMSize": 51200}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_hardware_profile.yml b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_hardware_profile.yml
new file mode 100644
index 0000000..d8a118a
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_hardware_profile.yml
@@ -0,0 +1,188 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:32 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:32Z", "id": "e212b8468a0b45d9b93b82fda11bd576",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:50 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - e212b8468a0b45d9b93b82fda11bd576
+ X-Storage-Token:
+ - e212b8468a0b45d9b93b82fda11bd576
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-5b5d5b66-a04e-4d30-ae7c-9655f708cbe5
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '353'
+ Date:
+ - Mon, 27 Aug 2012 16:16:32 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavor": {"vcpus": 1, "disk": 0, "name": "m1.tiny", "links": [{"href":
+ "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:32 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:32Z", "id": "d111ea498c1045d5893382890dba4cf3",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/unknown
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - d111ea498c1045d5893382890dba4cf3
+ X-Storage-Token:
+ - d111ea498c1045d5893382890dba4cf3
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Content-Length:
+ - '78'
+ Content-Type:
+ - application/json; charset=UTF-8
+ X-Compute-Request-Id:
+ - req-9f2c5888-17a5-4e06-a46f-fc88483748b9
+ Date:
+ - Mon, 27 Aug 2012 16:16:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"itemNotFound": {"message": "The resource could not be found.",
+ "code": 404}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:51 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_image.yml b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_image.yml
new file mode 100644
index 0000000..13bf673
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_image.yml
@@ -0,0 +1,413 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:28Z", "id": "ff51f69aad234317a671af4780f3821c",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:28Z", "id": "9e77961ce95143eeaba3ace09fd9893d",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 9e77961ce95143eeaba3ace09fd9893d
+ X-Storage-Token:
+ - 9e77961ce95143eeaba3ace09fd9893d
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-8f8f2042-97d8-4a7d-a1f7-3db71b1f0195
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/unknown
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - ff51f69aad234317a671af4780f3821c
+ X-Storage-Token:
+ - ff51f69aad234317a671af4780f3821c
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Content-Length:
+ - '62'
+ Content-Type:
+ - application/json; charset=UTF-8
+ X-Compute-Request-Id:
+ - req-0f2f8d88-89f4-44c0-becf-5676241b8845
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"itemNotFound": {"message": "Image not found.", "code": 404}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:28Z", "id": "1838fdd9bb1a4bdfb530f63d4daea4f1",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:28Z", "id": "1d0d5793af01471b9db1aebf4465f029",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/detail
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 1d0d5793af01471b9db1aebf4465f029
+ X-Storage-Token:
+ - 1d0d5793af01471b9db1aebf4465f029
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-4a3abfe1-254c-44b9-b40e-5aac80f7fd95
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1748'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"flavors": [{"vcpus": 2, "disk": 10, "name": "m1.medium", "links":
+ [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/3",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40,
+ "ram": 4096, "id": "3", "swap": ""}, {"vcpus": 4, "disk": 10, "name": "m1.large",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/4",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80,
+ "ram": 8192, "id": "4", "swap": ""}, {"vcpus": 1, "disk": 0, "name": "m1.tiny",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "ram":
+ 512, "id": "1", "swap": ""}, {"vcpus": 8, "disk": 10, "name": "m1.xlarge",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/5",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 160,
+ "ram": 16384, "id": "5", "swap": ""}, {"vcpus": 1, "disk": 10, "name": "m1.small",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/2",
+ "rel": "bookmark"}], "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20,
+ "ram": 2048, "id": "2", "swap": ""}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:46 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 1838fdd9bb1a4bdfb530f63d4daea4f1
+ X-Storage-Token:
+ - 1838fdd9bb1a4bdfb530f63d4daea4f1
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-a1c97d58-93c2-481e-b90e-62e5cab21265
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '685'
+ Date:
+ - Mon, 27 Aug 2012 16:16:28 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"image": {"status": "ACTIVE", "updated": "2012-08-24T15:51:45Z",
+ "name": "f16-jeos", "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}, {"href": "http://10.34.32.211:9292/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "type": "application/vnd.openstack.image", "rel": "alternate"}], "created":
+ "2012-08-24T15:41:42Z", "progress": 100, "minRam": 0, "minDisk": 0, "id":
+ "bf7ce59a-d9f9-45d4-9313-f45b16436602", "metadata": {}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:47 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_instance.yml b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_instance.yml
new file mode 100644
index 0000000..7bf2c32
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_instance.yml
@@ -0,0 +1,109 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:17:32 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:17:32Z", "id": "d20ae4dcd00a414aba6ca84918d2ffcc",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - d20ae4dcd00a414aba6ca84918d2ffcc
+ X-Storage-Token:
+ - d20ae4dcd00a414aba6ca84918d2ffcc
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-93e528c1-c7a7-49f6-a479-910b80ef9b1c
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1403'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"server": {"OS-EXT-STS:task_state": null, "addresses": {"demonet":
+ [{"version": 4, "addr": "10.0.0.2"}]}, "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/fef00348-9991-404c-b0d4-655d18f84345",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-0000000c", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "fef00348-9991-404c-b0d4-655d18f84345", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive":
+ "", "status": "ACTIVE", "updated": "2012-08-27T15:27:16Z", "hostId": "13942eef5ee69ea6fabcd918042084b1ec915973056bb1b497b43dfa",
+ "OS-EXT-SRV-ATTR:host": "openstack-01.lab.eng.brq.redhat.com", "key_name":
+ "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "name": "test-3", "created":
+ "2012-08-27T15:27:12Z", "tenant_id": "e827289fd66f4effb5b9b5012282fdb7", "metadata":
+ {}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:51 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_key.yml b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_key.yml
new file mode 100644
index 0000000..213ad34
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_key.yml
@@ -0,0 +1,197 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:38Z", "id": "885c20fa32974e00924709c93eb0cd3d",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 885c20fa32974e00924709c93eb0cd3d
+ X-Storage-Token:
+ - 885c20fa32974e00924709c93eb0cd3d
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-91898e2c-2c32-495c-94ac-65e89d07383d
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '756'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypairs": [{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLRqcGJtIWRsRlm9E+BAX1YThZc8y2zdXUF9KY3R1e8sWGnDjBIS91WWliaIgP8CrSMfFEWSzUJbyqrsBui4E0JDP04vcS5W0ioY/BmJD99nRaRncS+KKHChUuVMIjQ6cn+hI76OgfpPqM3GNgkxl2grW2arwXrzWRJ2tEP6QnlQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test1", "fingerprint":
+ "9a:be:87:83:75:ae:06:0e:b7:c4:19:be:f7:52:bd:a8"}}, {"keypair": {"public_key":
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDQq0Nu2t2KLs7AQLIUHX6x94tx6sacAXSgkHvlVJLM9HHHPMFlXeerYEeaPSC/vS7mwl0bXNN/ETXRpJ5Thd6BAnLDEAJcvrm63NHeJ4axvALzs6mQyndAu7UpFrK3nEaDPKgZPnEAKCUvBD+vLoySWilaNWGxsVH5kFpbT+73NQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test2", "fingerprint":
+ "cc:1d:51:aa:d7:dd:b7:07:ec:3b:3c:0c:1a:0c:04:c5"}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:38Z", "id": "0997526a1921466081a8d5a9a7eec4ab",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 0997526a1921466081a8d5a9a7eec4ab
+ X-Storage-Token:
+ - 0997526a1921466081a8d5a9a7eec4ab
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-3de59996-4ced-42aa-a914-e1d12bf4b73f
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '756'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypairs": [{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLRqcGJtIWRsRlm9E+BAX1YThZc8y2zdXUF9KY3R1e8sWGnDjBIS91WWliaIgP8CrSMfFEWSzUJbyqrsBui4E0JDP04vcS5W0ioY/BmJD99nRaRncS+KKHChUuVMIjQ6cn+hI76OgfpPqM3GNgkxl2grW2arwXrzWRJ2tEP6QnlQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test1", "fingerprint":
+ "9a:be:87:83:75:ae:06:0e:b7:c4:19:be:f7:52:bd:a8"}}, {"keypair": {"public_key":
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDQq0Nu2t2KLs7AQLIUHX6x94tx6sacAXSgkHvlVJLM9HHHPMFlXeerYEeaPSC/vS7mwl0bXNN/ETXRpJ5Thd6BAnLDEAJcvrm63NHeJ4axvALzs6mQyndAu7UpFrK3nEaDPKgZPnEAKCUvBD+vLoySWilaNWGxsVH5kFpbT+73NQ==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "name": "test2", "fingerprint":
+ "cc:1d:51:aa:d7:dd:b7:07:ec:3b:3c:0c:1a:0c:04:c5"}}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:57 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_realm.yml b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_realm.yml
new file mode 100644
index 0000000..0cc577d
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0004_must_allow_to_retrieve_single_realm.yml
@@ -0,0 +1,205 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:15:34Z", "id": "0bfb2862179d47229291a25cf608398e",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/limits
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 0bfb2862179d47229291a25cf608398e
+ X-Storage-Token:
+ - 0bfb2862179d47229291a25cf608398e
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-776452b2-0885-4489-9efd-6dfa45880247
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '900'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"limits": {"rate": [{"regex": ".*", "limit": [{"next-available":
+ "2012-08-27T15:44:04Z", "unit": "MINUTE", "verb": "POST", "remaining": 9,
+ "value": 10}, {"next-available": "2012-08-27T16:15:34Z", "unit": "MINUTE",
+ "verb": "PUT", "remaining": 10, "value": 10}, {"next-available": "2012-08-27T15:39:45Z",
+ "unit": "MINUTE", "verb": "DELETE", "remaining": 99, "value": 100}], "uri":
+ "*"}, {"regex": "^/servers", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "DAY", "verb": "POST", "remaining": 50, "value": 50}], "uri": "*/servers"},
+ {"regex": ".*changes-since.*", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "MINUTE", "verb": "GET", "remaining": 3, "value": 3}], "uri": "*changes-since*"}],
+ "absolute": {"maxServerMeta": 128, "maxPersonality": 5, "maxImageMeta": 128,
+ "maxPersonalitySize": 10240, "maxTotalCores": 20, "maxTotalInstances": 10,
+ "maxTotalRAMSize": 51200}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:15:34Z", "id": "9c158b0229204befb2d9253e822bf0c8",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/limits
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 9c158b0229204befb2d9253e822bf0c8
+ X-Storage-Token:
+ - 9c158b0229204befb2d9253e822bf0c8
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-922f233b-ea8a-48aa-8e4e-0b7e60ff4100
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '900'
+ Date:
+ - Mon, 27 Aug 2012 16:15:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"limits": {"rate": [{"regex": ".*", "limit": [{"next-available":
+ "2012-08-27T15:44:04Z", "unit": "MINUTE", "verb": "POST", "remaining": 9,
+ "value": 10}, {"next-available": "2012-08-27T16:15:34Z", "unit": "MINUTE",
+ "verb": "PUT", "remaining": 10, "value": 10}, {"next-available": "2012-08-27T15:39:45Z",
+ "unit": "MINUTE", "verb": "DELETE", "remaining": 99, "value": 100}], "uri":
+ "*"}, {"regex": "^/servers", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "DAY", "verb": "POST", "remaining": 50, "value": 50}], "uri": "*/servers"},
+ {"regex": ".*changes-since.*", "limit": [{"next-available": "2012-08-27T16:15:34Z",
+ "unit": "MINUTE", "verb": "GET", "remaining": 3, "value": 3}], "uri": "*changes-since*"}],
+ "absolute": {"maxServerMeta": 128, "maxPersonality": 5, "maxImageMeta": 128,
+ "maxPersonalitySize": 10240, "maxTotalCores": 20, "maxTotalInstances": 10,
+ "maxTotalRAMSize": 51200}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance-inst_launch-10.yml b/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance-inst_launch-10.yml
new file mode 100644
index 0000000..ecb0f61
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance-inst_launch-10.yml
@@ -0,0 +1,93 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:17:34 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:17:34Z", "id": "5925f23f1aaf40d984b640f0dd7b9bee",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 5925f23f1aaf40d984b640f0dd7b9bee
+ X-Storage-Token:
+ - 5925f23f1aaf40d984b640f0dd7b9bee
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Content-Length:
+ - '52'
+ Content-Type:
+ - text/plain; charset=UTF-8
+ Date:
+ - Mon, 27 Aug 2012 16:17:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! "404 Not Found\n\nThe resource could not be found.\n\n "
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance.yml b/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance.yml
new file mode 100644
index 0000000..74f7fe7
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_an_instance.yml
@@ -0,0 +1,152 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:17:33 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:17:33Z", "id": "40a1700185dc45d8bb7763d78c5ce28a",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:52 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers
+ body:
+ encoding: UTF-8
+ string: ! '{"server":{"personality":[],"name":"server2012-08-27 14:28:52 +0200","imageRef":"bf7ce59a-d9f9-45d4-9313-f45b16436602","flavorRef":"1","security_groups":[]}}'
+ headers:
+ X-Auth-Token:
+ - 40a1700185dc45d8bb7763d78c5ce28a
+ X-Storage-Token:
+ - 40a1700185dc45d8bb7763d78c5ce28a
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 202
+ message: Accepted
+ headers:
+ X-Compute-Request-Id:
+ - req-858ade33-e6ef-4dcb-8769-20aa6251b674
+ Location:
+ - http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/5dcb220a-92bf-4b50-85d9-526f4de6b09c
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '400'
+ Date:
+ - Mon, 27 Aug 2012 16:17:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"server": {"OS-DCF:diskConfig": "MANUAL", "id": "5dcb220a-92bf-4b50-85d9-526f4de6b09c",
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/5dcb220a-92bf-4b50-85d9-526f4de6b09c",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/5dcb220a-92bf-4b50-85d9-526f4de6b09c",
+ "rel": "bookmark"}], "adminPass": "a3wTpcYuno7N"}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:52 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/5dcb220a-92bf-4b50-85d9-526f4de6b09c
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 40a1700185dc45d8bb7763d78c5ce28a
+ X-Storage-Token:
+ - 40a1700185dc45d8bb7763d78c5ce28a
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-0959cfe1-bd29-456c-975e-85e0f03ebdc0
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1334'
+ Date:
+ - Mon, 27 Aug 2012 16:17:34 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"server": {"OS-EXT-STS:task_state": "scheduling", "addresses": {},
+ "links": [{"href": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/servers/5dcb220a-92bf-4b50-85d9-526f4de6b09c",
+ "rel": "self"}, {"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/servers/5dcb220a-92bf-4b50-85d9-526f4de6b09c",
+ "rel": "bookmark"}], "image": {"id": "bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/images/bf7ce59a-d9f9-45d4-9313-f45b16436602",
+ "rel": "bookmark"}]}, "OS-EXT-STS:vm_state": "building", "OS-EXT-SRV-ATTR:instance_name":
+ "instance-00000012", "flavor": {"id": "1", "links": [{"href": "http://10.34.32.211:8774/e827289fd66f4effb5b9b5012282fdb7/flavors/1",
+ "rel": "bookmark"}]}, "id": "5dcb220a-92bf-4b50-85d9-526f4de6b09c", "user_id":
+ "f2286a51122345cea7d216c120974b41", "OS-DCF:diskConfig": "MANUAL", "accessIPv4":
+ "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 0, "config_drive":
+ "", "status": "BUILD", "updated": "2012-08-27T16:17:34Z", "hostId": "", "OS-EXT-SRV-ATTR:host":
+ "openstack-01.lab.eng.brq.redhat.com", "key_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname":
+ null, "name": "server2012-08-27 14:28:52 +0200", "created": "2012-08-27T16:17:34Z",
+ "tenant_id": "e827289fd66f4effb5b9b5012282fdb7", "metadata": {}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:28:52 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_key.yml b/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_key.yml
new file mode 100644
index 0000000..9ce96fb
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0005_must_allow_to_create_and_destroy_key.yml
@@ -0,0 +1,690 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:38Z", "id": "f0880474a81e4157b54d76758642b135",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/extensions
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - f0880474a81e4157b54d76758642b135
+ X-Storage-Token:
+ - f0880474a81e4157b54d76758642b135
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-42db8c76-92e0-4b80-8a7f-f8e976f9b8fa
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '8365'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"extensions": [{"updated": "2011-12-21T00:00:00+00:00", "name":
+ "ServerDiagnostics", "links": [], "namespace": "http://docs.openstack.org/compute/ext/server-diagnostics/api/v1.1",
+ "alias": "os-server-diagnostics", "description": "Allow Admins to view server
+ diagnostics through server action"}, {"updated": "2011-06-29T00:00:00+00:00",
+ "name": "Hosts", "links": [], "namespace": "http://docs.openstack.org/compute/ext/hosts/api/v1.1",
+ "alias": "os-hosts", "description": "Admin-only host administration"}, {"updated":
+ "2011-07-19T00:00:00+00:00", "name": "SchedulerHints", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/scheduler-hints/api/v2", "alias": "os-scheduler-hints",
+ "description": "Pass arbitrary key/value pairs to the scheduler"}, {"updated":
+ "2011-08-08T00:00:00+00:00", "name": "Quotas", "links": [], "namespace": "http://docs.openstack.org/compute/ext/quotas-sets/api/v1.1",
+ "alias": "os-quota-sets", "description": "Quotas management support"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Floating_ip_dns", "links": [], "namespace":
+ "http://docs.openstack.org/ext/floating_ip_dns/api/v1.1", "alias": "os-floating-ip-dns",
+ "description": "Floating IP DNS support"}, {"updated": "2011-09-14T00:00:00+00:00",
+ "name": "FlavorExtraData", "links": [], "namespace": "http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1",
+ "alias": "OS-FLV-EXT-DATA", "description": "Provide additional data for flavors"},
+ {"updated": "2011-06-23T00:00:00+00:00", "name": "FlavorExtraSpecs", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/flavor_extra_specs/api/v1.1",
+ "alias": "os-flavor-extra-specs", "description": "Instance type (flavor) extra
+ specs"}, {"updated": "2011-08-17T00:00:00+00:00", "name": "VirtualInterfaces",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/virtual_interfaces/api/v1.1",
+ "alias": "virtual_interfaces", "description": "Virtual interface support"},
+ {"updated": "2011-12-23T00:00:00+00:00", "name": "Accounts", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/accounts/api/v1.1", "alias":
+ "os-accounts", "description": "Admin-only access to accounts"}, {"updated":
+ "2011-03-25T00:00:00+00:00", "name": "Volumes", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/volumes/api/v1.1", "alias": "os-volumes",
+ "description": "Volumes support"}, {"updated": "2011-11-03T00:00:00+00:00",
+ "name": "ExtendedStatus", "links": [], "namespace": "http://docs.openstack.org/compute/ext/extended_status/api/v1.1",
+ "alias": "OS-EXT-STS", "description": "Extended Status support"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Consoles", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/os-consoles/api/v2", "alias": "os-consoles",
+ "description": "Interactive Console support."}, {"updated": "2011-07-21T00:00:00+00:00",
+ "name": "SecurityGroups", "links": [], "namespace": "http://docs.openstack.org/compute/ext/securitygroups/api/v1.1",
+ "alias": "security_groups", "description": "Security group support"}, {"updated":
+ "2012-01-12T00:00:00+00:00", "name": "Aggregates", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/aggregates/api/v1.1", "alias": "os-aggregates",
+ "description": "Admin-only aggregate administration"}, {"updated": "2011-07-19T00:00:00+00:00",
+ "name": "Createserverext", "links": [], "namespace": "http://docs.openstack.org/compute/ext/createserverext/api/v1.1",
+ "alias": "os-create-server-ext", "description": "Extended support to the Create
+ Server v1.1 API"}, {"updated": "2011-09-01T00:00:00+00:00", "name": "DeferredDelete",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/deferred-delete/api/v1.1",
+ "alias": "os-deferred-delete", "description": "Instance deferred delete"},
+ {"updated": "2011-09-27T00:00:00+00:00", "name": "DiskConfig", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/disk_config/api/v1.1",
+ "alias": "OS-DCF", "description": "Disk Management Extension"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Networks", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/networks/api/v1.1", "alias": "os-networks",
+ "description": "Admin-only Network Management Extension"}, {"updated": "2011-11-03T00:00:00+00:00",
+ "name": "ExtendedServerAttributes", "links": [], "namespace": "http://docs.openstack.org/compute/ext/extended_status/api/v1.1",
+ "alias": "OS-EXT-SRV-ATTR", "description": "Extended Server Attributes support."},
+ {"updated": "2011-08-08T00:00:00+00:00", "name": "Keypairs", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/keypairs/api/v1.1", "alias":
+ "os-keypairs", "description": "Keypair Support"}, {"updated": "2011-08-24T00:00:00+00:00",
+ "name": "VolumeTypes", "links": [], "namespace": "http://docs.openstack.org/compute/ext/volume_types/api/v1.1",
+ "alias": "os-volume-types", "description": "Volume types support"}, {"updated":
+ "2011-09-20T00:00:00+00:00", "name": "AdminActions", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/admin-actions/api/v1.1", "alias": "os-admin-actions",
+ "description": "Enable admin-only server actions\n\n Actions include: pause,
+ unpause, suspend, resume, migrate,\n resetNetwork, injectNetworkInfo, lock,
+ unlock, createBackup\n "}, {"updated": "2012-01-04T00:00:00+00:00", "name":
+ "Floating_ip_pools", "links": [], "namespace": "http://docs.openstack.org/compute/ext/floating_ip_pools/api/v1.1",
+ "alias": "os-floating-ip-pools", "description": "Floating IPs support"}, {"updated":
+ "2012-01-23T00:00:00+00:00", "name": "ServerStartStop", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/servers/api/v1.1", "alias": "os-server-start-stop",
+ "description": "Start/Stop instance compute API support"}, {"updated": "2012-01-19T00:00:00+00:00",
+ "name": "Certificates", "links": [], "namespace": "http://docs.openstack.org/compute/ext/certificates/api/v1.1",
+ "alias": "os-certificates", "description": "Certificates support"}, {"updated":
+ "2011-12-08T00:00:00+00:00", "name": "Console_output", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/os-console-output/api/v2", "alias":
+ "os-console-output", "description": "Console log output support, with tailing
+ ability."}, {"updated": "2012-01-19T00:00:00+00:00", "name": "FlavorManage",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/flavor_manage/api/v1.1",
+ "alias": "os-flavor-manage", "description": "\n Flavor create/delete API
+ support\n "}, {"updated": "2011-12-16T00:00:00+00:00", "name": "Cloudpipe",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/cloudpipe/api/v1.1",
+ "alias": "os-cloudpipe", "description": "Adds actions to create cloudpipe
+ instances.\n\n When running with the Vlan network mode, you need a mechanism
+ to route\n from the public Internet to your vlans. This mechanism is known
+ as a\n cloudpipe.\n\n At the time of creating this class, only OpenVPN
+ is supported. Support for\n a SSH Bastion host is forthcoming.\n "},
+ {"updated": "2011-06-09T00:00:00+00:00", "name": "Multinic", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/multinic/api/v1.1", "alias":
+ "NMN", "description": "Multiple network support"}, {"updated": "2011-08-08T00:00:00+00:00",
+ "name": "Users", "links": [], "namespace": "http://docs.openstack.org/compute/ext/users/api/v1.1",
+ "alias": "os-users", "description": "Allow admins to acces user information"},
+ {"updated": "2011-08-19T00:00:00+00:00", "name": "SimpleTenantUsage", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/os-simple-tenant-usage/api/v1.1",
+ "alias": "os-simple-tenant-usage", "description": "Simple tenant usage extension"},
+ {"updated": "2011-12-21T00:00:00+00:00", "name": "ServerActionList", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/server-actions-list/api/v1.1",
+ "alias": "os-server-action-list", "description": "Allow Admins to view pending
+ server actions"}, {"updated": "2011-08-18T00:00:00+00:00", "name": "Rescue",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/rescue/api/v1.1",
+ "alias": "os-rescue", "description": "Instance rescue mode"}, {"updated":
+ "2011-06-16T00:00:00+00:00", "name": "Floating_ips", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/floating_ips/api/v1.1", "alias": "os-floating-ips",
+ "description": "Floating IPs support"}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: UTF-8
+ string: ! '{"keypair":{"name":"test-unit-1"}}'
+ headers:
+ X-Auth-Token:
+ - f0880474a81e4157b54d76758642b135
+ X-Storage-Token:
+ - f0880474a81e4157b54d76758642b135
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-8757fa64-3f58-41ed-99cd-6b3c99ba960b
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '1343'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDE8axljiZF17C1vlIijELVhRz1e9Zxjekg36OYAC/5lYEhFXyydvH0oYr/A4runqFrg+656Kuz2DPS4rgLQ7tHT6vm/2yBsJIPP1Z7GrEw/fv89OuH0wvkRlg7ILS2rfhS9rx0l2N2RqQGkqLPpO/+s1uvY7Kzr8jnJPeXhi5Y5Q==
+ nova@openstack-01.lab.eng.brq.redhat.com\n", "private_key": "-----BEGIN RSA
+ PRIVATE KEY-----\nMIICXAIBAAKBgQDE8axljiZF17C1vlIijELVhRz1e9Zxjekg36OYAC/5lYEhFXyy\ndvH0oYr/A4runqFrg+656Kuz2DPS4rgLQ7tHT6vm/2yBsJIPP1Z7GrEw/fv89OuH\n0wvkRlg7ILS2rfhS9rx0l2N2RqQGkqLPpO/+s1uvY7Kzr8jnJPeXhi5Y5QIDAQAB\nAoGAH7Qf4oFNm/Sq17b5leIqaCDzlnkG/mSv4MDfnvp4vp7YmLDS0A/hx1WyAHdb\niCo1Jg+pAHh6G4t0XEBvDDEtFndRex/MJ//+3CqXHxutFDGcO5EsQVc6uUPrW6Sq\n9AWU/50p3WFMKA3pqnfCN0KslUUqgoLlOshrBgIw0Vcg0AkCQQDs4EjAgFEnxtxk\nSxhfZQL9DzxFEO2DLSbMebGBWZI6JizPVUE6JzYz1LnHtcKV8HFArDW4CQdR4QZR\nwKjyNk8fAkEA1NgUb5Fks4dM1TzxZJGIi52SA8SbGdqN8uPWiw5Au58ppOqb3xEG\nas2LKzHLX/ORGAkFvrFyL9rQJkd+CVALewJAP5aB0TNhFdV7am0CUPFz2O0TF9NQ\nfytKxA9TCE88QuHmm43eYbcPBODxMlxnrQqLzHmuPgYmceN/Z8jZUZQkrwJAZFc5\nyx8QClLOtfh1FKRHawptu7kEJbwTD1651fRyMAFo8IZp1U+BZvhfk412A1YgIOSg\nALZGzqipWGJ72IgT4QJBAJViYQhDEY3hfIOsaCsuns83ujZBcrY/hEathJCanm9+\ngoeHZFTSnq1nieOeRlqa2XR1iGObNn+udtF6P1DJQKM=\n-----END
+ RSA PRIVATE KEY-----\n", "user_id": "f2286a51122345cea7d216c120974b41", "name":
+ "test-unit-1", "fingerprint": "52:89:bc:c6:f4:d7:e6:1b:7a:6c:e7:90:d8:91:a5:9e"}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:38Z", "id": "8a15c65455d34169ab239a4afb115b7f",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/extensions
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - 8a15c65455d34169ab239a4afb115b7f
+ X-Storage-Token:
+ - 8a15c65455d34169ab239a4afb115b7f
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-03ccf4cb-3de9-4428-875f-ec62f0e49162
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '8365'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"extensions": [{"updated": "2011-12-21T00:00:00+00:00", "name":
+ "ServerDiagnostics", "links": [], "namespace": "http://docs.openstack.org/compute/ext/server-diagnostics/api/v1.1",
+ "alias": "os-server-diagnostics", "description": "Allow Admins to view server
+ diagnostics through server action"}, {"updated": "2011-06-29T00:00:00+00:00",
+ "name": "Hosts", "links": [], "namespace": "http://docs.openstack.org/compute/ext/hosts/api/v1.1",
+ "alias": "os-hosts", "description": "Admin-only host administration"}, {"updated":
+ "2011-07-19T00:00:00+00:00", "name": "SchedulerHints", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/scheduler-hints/api/v2", "alias": "os-scheduler-hints",
+ "description": "Pass arbitrary key/value pairs to the scheduler"}, {"updated":
+ "2011-08-08T00:00:00+00:00", "name": "Quotas", "links": [], "namespace": "http://docs.openstack.org/compute/ext/quotas-sets/api/v1.1",
+ "alias": "os-quota-sets", "description": "Quotas management support"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Floating_ip_dns", "links": [], "namespace":
+ "http://docs.openstack.org/ext/floating_ip_dns/api/v1.1", "alias": "os-floating-ip-dns",
+ "description": "Floating IP DNS support"}, {"updated": "2011-09-14T00:00:00+00:00",
+ "name": "FlavorExtraData", "links": [], "namespace": "http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1",
+ "alias": "OS-FLV-EXT-DATA", "description": "Provide additional data for flavors"},
+ {"updated": "2011-06-23T00:00:00+00:00", "name": "FlavorExtraSpecs", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/flavor_extra_specs/api/v1.1",
+ "alias": "os-flavor-extra-specs", "description": "Instance type (flavor) extra
+ specs"}, {"updated": "2011-08-17T00:00:00+00:00", "name": "VirtualInterfaces",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/virtual_interfaces/api/v1.1",
+ "alias": "virtual_interfaces", "description": "Virtual interface support"},
+ {"updated": "2011-12-23T00:00:00+00:00", "name": "Accounts", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/accounts/api/v1.1", "alias":
+ "os-accounts", "description": "Admin-only access to accounts"}, {"updated":
+ "2011-03-25T00:00:00+00:00", "name": "Volumes", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/volumes/api/v1.1", "alias": "os-volumes",
+ "description": "Volumes support"}, {"updated": "2011-11-03T00:00:00+00:00",
+ "name": "ExtendedStatus", "links": [], "namespace": "http://docs.openstack.org/compute/ext/extended_status/api/v1.1",
+ "alias": "OS-EXT-STS", "description": "Extended Status support"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Consoles", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/os-consoles/api/v2", "alias": "os-consoles",
+ "description": "Interactive Console support."}, {"updated": "2011-07-21T00:00:00+00:00",
+ "name": "SecurityGroups", "links": [], "namespace": "http://docs.openstack.org/compute/ext/securitygroups/api/v1.1",
+ "alias": "security_groups", "description": "Security group support"}, {"updated":
+ "2012-01-12T00:00:00+00:00", "name": "Aggregates", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/aggregates/api/v1.1", "alias": "os-aggregates",
+ "description": "Admin-only aggregate administration"}, {"updated": "2011-07-19T00:00:00+00:00",
+ "name": "Createserverext", "links": [], "namespace": "http://docs.openstack.org/compute/ext/createserverext/api/v1.1",
+ "alias": "os-create-server-ext", "description": "Extended support to the Create
+ Server v1.1 API"}, {"updated": "2011-09-01T00:00:00+00:00", "name": "DeferredDelete",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/deferred-delete/api/v1.1",
+ "alias": "os-deferred-delete", "description": "Instance deferred delete"},
+ {"updated": "2011-09-27T00:00:00+00:00", "name": "DiskConfig", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/disk_config/api/v1.1",
+ "alias": "OS-DCF", "description": "Disk Management Extension"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Networks", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/networks/api/v1.1", "alias": "os-networks",
+ "description": "Admin-only Network Management Extension"}, {"updated": "2011-11-03T00:00:00+00:00",
+ "name": "ExtendedServerAttributes", "links": [], "namespace": "http://docs.openstack.org/compute/ext/extended_status/api/v1.1",
+ "alias": "OS-EXT-SRV-ATTR", "description": "Extended Server Attributes support."},
+ {"updated": "2011-08-08T00:00:00+00:00", "name": "Keypairs", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/keypairs/api/v1.1", "alias":
+ "os-keypairs", "description": "Keypair Support"}, {"updated": "2011-08-24T00:00:00+00:00",
+ "name": "VolumeTypes", "links": [], "namespace": "http://docs.openstack.org/compute/ext/volume_types/api/v1.1",
+ "alias": "os-volume-types", "description": "Volume types support"}, {"updated":
+ "2011-09-20T00:00:00+00:00", "name": "AdminActions", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/admin-actions/api/v1.1", "alias": "os-admin-actions",
+ "description": "Enable admin-only server actions\n\n Actions include: pause,
+ unpause, suspend, resume, migrate,\n resetNetwork, injectNetworkInfo, lock,
+ unlock, createBackup\n "}, {"updated": "2012-01-04T00:00:00+00:00", "name":
+ "Floating_ip_pools", "links": [], "namespace": "http://docs.openstack.org/compute/ext/floating_ip_pools/api/v1.1",
+ "alias": "os-floating-ip-pools", "description": "Floating IPs support"}, {"updated":
+ "2012-01-23T00:00:00+00:00", "name": "ServerStartStop", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/servers/api/v1.1", "alias": "os-server-start-stop",
+ "description": "Start/Stop instance compute API support"}, {"updated": "2012-01-19T00:00:00+00:00",
+ "name": "Certificates", "links": [], "namespace": "http://docs.openstack.org/compute/ext/certificates/api/v1.1",
+ "alias": "os-certificates", "description": "Certificates support"}, {"updated":
+ "2011-12-08T00:00:00+00:00", "name": "Console_output", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/os-console-output/api/v2", "alias":
+ "os-console-output", "description": "Console log output support, with tailing
+ ability."}, {"updated": "2012-01-19T00:00:00+00:00", "name": "FlavorManage",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/flavor_manage/api/v1.1",
+ "alias": "os-flavor-manage", "description": "\n Flavor create/delete API
+ support\n "}, {"updated": "2011-12-16T00:00:00+00:00", "name": "Cloudpipe",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/cloudpipe/api/v1.1",
+ "alias": "os-cloudpipe", "description": "Adds actions to create cloudpipe
+ instances.\n\n When running with the Vlan network mode, you need a mechanism
+ to route\n from the public Internet to your vlans. This mechanism is known
+ as a\n cloudpipe.\n\n At the time of creating this class, only OpenVPN
+ is supported. Support for\n a SSH Bastion host is forthcoming.\n "},
+ {"updated": "2011-06-09T00:00:00+00:00", "name": "Multinic", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/multinic/api/v1.1", "alias":
+ "NMN", "description": "Multiple network support"}, {"updated": "2011-08-08T00:00:00+00:00",
+ "name": "Users", "links": [], "namespace": "http://docs.openstack.org/compute/ext/users/api/v1.1",
+ "alias": "os-users", "description": "Allow admins to acces user information"},
+ {"updated": "2011-08-19T00:00:00+00:00", "name": "SimpleTenantUsage", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/os-simple-tenant-usage/api/v1.1",
+ "alias": "os-simple-tenant-usage", "description": "Simple tenant usage extension"},
+ {"updated": "2011-12-21T00:00:00+00:00", "name": "ServerActionList", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/server-actions-list/api/v1.1",
+ "alias": "os-server-action-list", "description": "Allow Admins to view pending
+ server actions"}, {"updated": "2011-08-18T00:00:00+00:00", "name": "Rescue",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/rescue/api/v1.1",
+ "alias": "os-rescue", "description": "Instance rescue mode"}, {"updated":
+ "2011-06-16T00:00:00+00:00", "name": "Floating_ips", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/floating_ips/api/v1.1", "alias": "os-floating-ips",
+ "description": "Floating IPs support"}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs
+ body:
+ encoding: UTF-8
+ string: ! '{"keypair":{"name":"test-unit-1"}}'
+ headers:
+ X-Auth-Token:
+ - 8a15c65455d34169ab239a4afb115b7f
+ X-Storage-Token:
+ - 8a15c65455d34169ab239a4afb115b7f
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 409
+ message: Conflict
+ headers:
+ Content-Length:
+ - '90'
+ Content-Type:
+ - application/json; charset=UTF-8
+ X-Compute-Request-Id:
+ - req-2a6bc67e-20d2-4cce-bd23-f0c741af1a9c
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"conflictingRequest": {"message": "Key pair ''test-unit-1'' already
+ exists.", "code": 409}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: post
+ uri: http://10.34.32.211:5000/v2.0/tokens
+ body:
+ encoding: UTF-8
+ string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+ headers:
+ Content-Type:
+ - application/json
+ Accept:
+ - ! '*/*'
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/json
+ Vary:
+ - X-Auth-Token
+ Content-Length:
+ - '2010'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ body:
+ encoding: US-ASCII
+ string: ! '{"access": {"token": {"expires": "2012-08-28T16:16:38Z", "id": "d8301f2a04fa4e8598462039eb9cffbd",
+ "tenant": {"description": null, "enabled": true, "id": "e827289fd66f4effb5b9b5012282fdb7",
+ "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8776/v1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:9292/v1", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:9292/v1", "internalURL": "http://10.34.32.211:9292/v1"}],
+ "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "region": "RegionOne", "publicURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7",
+ "internalURL": "http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7"}],
+ "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:8773/services/Admin", "region": "RegionOne",
+ "publicURL": "http://10.34.32.211:8773/services/Cloud", "internalURL": "http://10.34.32.211:8773/services/Cloud"}],
+ "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints":
+ [{"adminURL": "http://10.34.32.211:35357/v2.0", "region": "RegionOne", "publicURL":
+ "http://10.34.32.211:5000/v2.0", "internalURL": "http://10.34.32.211:5000/v2.0"}],
+ "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user":
+ {"username": "admin", "roles_links": [], "id": "f2286a51122345cea7d216c120974b41",
+ "roles": [{"id": "e7e292b28c4b4befb06232fa935a3c48", "name": "KeystoneServiceAdmin"},
+ {"id": "7e716d5a52f348bb9a7fbbc230041b2a", "name": "admin"}, {"id": "bf2113c0cb924b34907521808ed9df13",
+ "name": "KeystoneAdmin"}], "name": "admin"}}}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: get
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/extensions
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - d8301f2a04fa4e8598462039eb9cffbd
+ X-Storage-Token:
+ - d8301f2a04fa4e8598462039eb9cffbd
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Compute-Request-Id:
+ - req-aa67503f-0501-48a9-8866-fed9195c89d3
+ Content-Type:
+ - application/json
+ Content-Length:
+ - '8365'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ! '{"extensions": [{"updated": "2011-12-21T00:00:00+00:00", "name":
+ "ServerDiagnostics", "links": [], "namespace": "http://docs.openstack.org/compute/ext/server-diagnostics/api/v1.1",
+ "alias": "os-server-diagnostics", "description": "Allow Admins to view server
+ diagnostics through server action"}, {"updated": "2011-06-29T00:00:00+00:00",
+ "name": "Hosts", "links": [], "namespace": "http://docs.openstack.org/compute/ext/hosts/api/v1.1",
+ "alias": "os-hosts", "description": "Admin-only host administration"}, {"updated":
+ "2011-07-19T00:00:00+00:00", "name": "SchedulerHints", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/scheduler-hints/api/v2", "alias": "os-scheduler-hints",
+ "description": "Pass arbitrary key/value pairs to the scheduler"}, {"updated":
+ "2011-08-08T00:00:00+00:00", "name": "Quotas", "links": [], "namespace": "http://docs.openstack.org/compute/ext/quotas-sets/api/v1.1",
+ "alias": "os-quota-sets", "description": "Quotas management support"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Floating_ip_dns", "links": [], "namespace":
+ "http://docs.openstack.org/ext/floating_ip_dns/api/v1.1", "alias": "os-floating-ip-dns",
+ "description": "Floating IP DNS support"}, {"updated": "2011-09-14T00:00:00+00:00",
+ "name": "FlavorExtraData", "links": [], "namespace": "http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1",
+ "alias": "OS-FLV-EXT-DATA", "description": "Provide additional data for flavors"},
+ {"updated": "2011-06-23T00:00:00+00:00", "name": "FlavorExtraSpecs", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/flavor_extra_specs/api/v1.1",
+ "alias": "os-flavor-extra-specs", "description": "Instance type (flavor) extra
+ specs"}, {"updated": "2011-08-17T00:00:00+00:00", "name": "VirtualInterfaces",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/virtual_interfaces/api/v1.1",
+ "alias": "virtual_interfaces", "description": "Virtual interface support"},
+ {"updated": "2011-12-23T00:00:00+00:00", "name": "Accounts", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/accounts/api/v1.1", "alias":
+ "os-accounts", "description": "Admin-only access to accounts"}, {"updated":
+ "2011-03-25T00:00:00+00:00", "name": "Volumes", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/volumes/api/v1.1", "alias": "os-volumes",
+ "description": "Volumes support"}, {"updated": "2011-11-03T00:00:00+00:00",
+ "name": "ExtendedStatus", "links": [], "namespace": "http://docs.openstack.org/compute/ext/extended_status/api/v1.1",
+ "alias": "OS-EXT-STS", "description": "Extended Status support"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Consoles", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/os-consoles/api/v2", "alias": "os-consoles",
+ "description": "Interactive Console support."}, {"updated": "2011-07-21T00:00:00+00:00",
+ "name": "SecurityGroups", "links": [], "namespace": "http://docs.openstack.org/compute/ext/securitygroups/api/v1.1",
+ "alias": "security_groups", "description": "Security group support"}, {"updated":
+ "2012-01-12T00:00:00+00:00", "name": "Aggregates", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/aggregates/api/v1.1", "alias": "os-aggregates",
+ "description": "Admin-only aggregate administration"}, {"updated": "2011-07-19T00:00:00+00:00",
+ "name": "Createserverext", "links": [], "namespace": "http://docs.openstack.org/compute/ext/createserverext/api/v1.1",
+ "alias": "os-create-server-ext", "description": "Extended support to the Create
+ Server v1.1 API"}, {"updated": "2011-09-01T00:00:00+00:00", "name": "DeferredDelete",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/deferred-delete/api/v1.1",
+ "alias": "os-deferred-delete", "description": "Instance deferred delete"},
+ {"updated": "2011-09-27T00:00:00+00:00", "name": "DiskConfig", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/disk_config/api/v1.1",
+ "alias": "OS-DCF", "description": "Disk Management Extension"}, {"updated":
+ "2011-12-23T00:00:00+00:00", "name": "Networks", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/networks/api/v1.1", "alias": "os-networks",
+ "description": "Admin-only Network Management Extension"}, {"updated": "2011-11-03T00:00:00+00:00",
+ "name": "ExtendedServerAttributes", "links": [], "namespace": "http://docs.openstack.org/compute/ext/extended_status/api/v1.1",
+ "alias": "OS-EXT-SRV-ATTR", "description": "Extended Server Attributes support."},
+ {"updated": "2011-08-08T00:00:00+00:00", "name": "Keypairs", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/keypairs/api/v1.1", "alias":
+ "os-keypairs", "description": "Keypair Support"}, {"updated": "2011-08-24T00:00:00+00:00",
+ "name": "VolumeTypes", "links": [], "namespace": "http://docs.openstack.org/compute/ext/volume_types/api/v1.1",
+ "alias": "os-volume-types", "description": "Volume types support"}, {"updated":
+ "2011-09-20T00:00:00+00:00", "name": "AdminActions", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/admin-actions/api/v1.1", "alias": "os-admin-actions",
+ "description": "Enable admin-only server actions\n\n Actions include: pause,
+ unpause, suspend, resume, migrate,\n resetNetwork, injectNetworkInfo, lock,
+ unlock, createBackup\n "}, {"updated": "2012-01-04T00:00:00+00:00", "name":
+ "Floating_ip_pools", "links": [], "namespace": "http://docs.openstack.org/compute/ext/floating_ip_pools/api/v1.1",
+ "alias": "os-floating-ip-pools", "description": "Floating IPs support"}, {"updated":
+ "2012-01-23T00:00:00+00:00", "name": "ServerStartStop", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/servers/api/v1.1", "alias": "os-server-start-stop",
+ "description": "Start/Stop instance compute API support"}, {"updated": "2012-01-19T00:00:00+00:00",
+ "name": "Certificates", "links": [], "namespace": "http://docs.openstack.org/compute/ext/certificates/api/v1.1",
+ "alias": "os-certificates", "description": "Certificates support"}, {"updated":
+ "2011-12-08T00:00:00+00:00", "name": "Console_output", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/os-console-output/api/v2", "alias":
+ "os-console-output", "description": "Console log output support, with tailing
+ ability."}, {"updated": "2012-01-19T00:00:00+00:00", "name": "FlavorManage",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/flavor_manage/api/v1.1",
+ "alias": "os-flavor-manage", "description": "\n Flavor create/delete API
+ support\n "}, {"updated": "2011-12-16T00:00:00+00:00", "name": "Cloudpipe",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/cloudpipe/api/v1.1",
+ "alias": "os-cloudpipe", "description": "Adds actions to create cloudpipe
+ instances.\n\n When running with the Vlan network mode, you need a mechanism
+ to route\n from the public Internet to your vlans. This mechanism is known
+ as a\n cloudpipe.\n\n At the time of creating this class, only OpenVPN
+ is supported. Support for\n a SSH Bastion host is forthcoming.\n "},
+ {"updated": "2011-06-09T00:00:00+00:00", "name": "Multinic", "links": [],
+ "namespace": "http://docs.openstack.org/compute/ext/multinic/api/v1.1", "alias":
+ "NMN", "description": "Multiple network support"}, {"updated": "2011-08-08T00:00:00+00:00",
+ "name": "Users", "links": [], "namespace": "http://docs.openstack.org/compute/ext/users/api/v1.1",
+ "alias": "os-users", "description": "Allow admins to acces user information"},
+ {"updated": "2011-08-19T00:00:00+00:00", "name": "SimpleTenantUsage", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/os-simple-tenant-usage/api/v1.1",
+ "alias": "os-simple-tenant-usage", "description": "Simple tenant usage extension"},
+ {"updated": "2011-12-21T00:00:00+00:00", "name": "ServerActionList", "links":
+ [], "namespace": "http://docs.openstack.org/compute/ext/server-actions-list/api/v1.1",
+ "alias": "os-server-action-list", "description": "Allow Admins to view pending
+ server actions"}, {"updated": "2011-08-18T00:00:00+00:00", "name": "Rescue",
+ "links": [], "namespace": "http://docs.openstack.org/compute/ext/rescue/api/v1.1",
+ "alias": "os-rescue", "description": "Instance rescue mode"}, {"updated":
+ "2011-06-16T00:00:00+00:00", "name": "Floating_ips", "links": [], "namespace":
+ "http://docs.openstack.org/compute/ext/floating_ips/api/v1.1", "alias": "os-floating-ips",
+ "description": "Floating IPs support"}]}'
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+- request:
+ method: delete
+ uri: http://10.34.32.211:8774/v1.1/e827289fd66f4effb5b9b5012282fdb7/os-keypairs/test-unit-1
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ X-Auth-Token:
+ - d8301f2a04fa4e8598462039eb9cffbd
+ X-Storage-Token:
+ - d8301f2a04fa4e8598462039eb9cffbd
+ Connection:
+ - Keep-Alive
+ User-Agent:
+ - OpenStack Ruby API 1.0.3
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 202
+ message: Accepted
+ headers:
+ Content-Type:
+ - text/html; charset=UTF-8
+ Content-Length:
+ - '0'
+ Date:
+ - Mon, 27 Aug 2012 16:16:38 GMT
+ Connection:
+ - keep-alive
+ body:
+ encoding: US-ASCII
+ string: ''
+ http_version:
+ recorded_at: Mon, 27 Aug 2012 12:27:56 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/openstack/hardware_profiles_test.rb b/server/tests/drivers/openstack/hardware_profiles_test.rb
new file mode 100644
index 0000000..8c6b0c3
--- /dev/null
+++ b/server/tests/drivers/openstack/hardware_profiles_test.rb
@@ -0,0 +1,46 @@
+require 'minitest/autorun'
+
+require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
+require_relative 'common.rb'
+
+describe 'OpenStackDriver HardwareProfiles' do
+
+ before do
+ @driver = Deltacloud::new(:openstack, credentials)
+ VCR.insert_cassette __name__
+ end
+
+ after do
+ VCR.eject_cassette
+ end
+
+ it 'must throw error when wrong credentials' do
+ Proc.new do
+ @driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
+ end.must_raise Deltacloud::ExceptionHandler::AuthenticationFailure, 'Authentication Failure'
+ end
+
+ it 'must return list of hardware_profiles' do
+ @driver.hardware_profiles.wont_be_empty
+ @driver.hardware_profiles.first.must_be_kind_of Deltacloud::HardwareProfile
+ end
+
+ it 'must allow to filter hardware_profiles' do
+ hardware_profiles = @driver.hardware_profiles :id => '1'
+ hardware_profiles.wont_be_empty
+ hardware_profiles.must_be_kind_of Array
+ hardware_profiles.size.must_equal 1
+ hardware_profiles.first.name.must_equal '1'
+ @driver.hardware_profiles(:id => 'unknown').must_be_empty
+ end
+
+ it 'must allow to retrieve single hardware_profile' do
+ hardware_profile = @driver.hardware_profile :id => '1'
+ hardware_profile.wont_be_nil
+ hardware_profile.name.must_equal '1'
+ hardware_profile.properties.must_be_kind_of Array
+ hardware_profile.properties.wont_be_empty
+ @driver.hardware_profile(:id => 'unknown').must_be_nil
+ end
+
+end
diff --git a/server/tests/drivers/openstack/images_test.rb b/server/tests/drivers/openstack/images_test.rb
new file mode 100644
index 0000000..5c3d943
--- /dev/null
+++ b/server/tests/drivers/openstack/images_test.rb
@@ -0,0 +1,50 @@
+require 'minitest/autorun'
+
+require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
+require_relative 'common.rb'
+
+describe 'OpenStackDriver Images' do
+
+ before do
+ @driver = Deltacloud::new(:openstack, credentials)
+ VCR.insert_cassette __name__
+ end
+
+ after do
+ VCR.eject_cassette
+ end
+
+ it 'must throw error when wrong credentials' do
+ Proc.new do
+ @driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
+ end.must_raise Deltacloud::ExceptionHandler::AuthenticationFailure, 'Authentication Failure'
+ end
+
+ it 'must return list of images' do
+ @driver.images.wont_be_empty
+ @driver.images.first.must_be_kind_of Image
+ end
+
+ it 'must allow to filter images' do
+ images = @driver.images :id => openstack_image_id
+ images.wont_be_empty
+ images.must_be_kind_of Array
+ images.size.must_equal 1
+ images.first.id.must_equal openstack_image_id
+ @driver.images(:owner_id => 'admin').wont_be_empty
+ @driver.images(:owner_id => 'unknown').must_be_empty
+ @driver.images(:id => 'unknown').must_be_empty
+ end
+
+ it 'must allow to retrieve single image' do
+ @driver.image(:id => 'unknown').must_be_nil
+ image = @driver.image :id => openstack_image_id
+ image.wont_be_nil
+ image.must_be_kind_of Image
+ image.id.must_equal openstack_image_id
+ image.name.wont_be_empty
+ image.owner_id.wont_be_empty
+ image.state.wont_be_empty
+ end
+
+end
diff --git a/server/tests/drivers/openstack/instances_test.rb b/server/tests/drivers/openstack/instances_test.rb
new file mode 100644
index 0000000..99ec2b0
--- /dev/null
+++ b/server/tests/drivers/openstack/instances_test.rb
@@ -0,0 +1,66 @@
+require 'minitest/autorun'
+
+require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
+require_relative 'common.rb'
+
+describe 'OpenStackDriver Instances' do
+
+ before do
+ @driver = Deltacloud::new(:openstack, credentials)
+ VCR.insert_cassette __name__
+ end
+
+ after do
+ VCR.eject_cassette
+ end
+
+ it 'must throw error when wrong credentials' do
+ Proc.new do
+ @driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
+ end.must_raise Deltacloud::ExceptionHandler::AuthenticationFailure, 'Authentication Failure'
+ end
+
+ it 'must return list of instances' do
+ @driver.instances.wont_be_empty
+ @driver.instances.first.must_be_kind_of Instance
+ end
+
+# FIXME: The tests above will fail because of incompatibility
+# in a way how OpenStack handle uuid/id.
+# Please uncomment these tests if that will be fixed.
+
+=begin
+ it 'must allow to filter instances' do
+ instances = @driver.instances :id => 'fef00348-9991-404c-b0d4-655d18f84345'
+ instances.wont_be_empty
+ instances.must_be_kind_of Array
+ instances.size.must_equal 1
+ puts instances.inspect
+ instances.first.id.must_equal 'fef00348-9991-404c-b0d4-655d18f84345'
+ @driver.instances(:id => 'unknown').must_be_empty
+ end
+
+ it 'must allow to retrieve single instance' do
+ instance = @driver.instance :id => 'fef00348-9991-404c-b0d4-655d18f84345'
+ instance.wont_be_nil
+ instance.id.must_equal 'fef00348-9991-404c-b0d4-655d18f84345'
+ instance.name.must_equal 'test-3'
+ instance.state.wont_be_empty
+ instance.owner_id.must_equal 'admin'
+ instance.realm_id.wont_be_empty
+ instance.image_id.wont_be_empty
+ instance.instance_profile.wont_be_nil
+ @driver.instance(:id => 'unknown').must_be_nil
+ end
+
+ it 'must allow to create and destroy an instance' do
+ instance = @driver.create_instance 'bf7ce59a-d9f9-45d4-9313-f45b16436602', :hwp_id => '1'
+ instance.wont_be_nil
+ instance.image_id.must_equal 'bf7ce59a-d9f9-45d4-9313-f45b16436602'
+ instance.name.wont_be_empty
+ instance.wait_for!(@driver, record_retries('inst_launch')) { |i| i.is_running? }
+ puts @driver.destroy_instance(instance.id).inspect
+ end
+=end
+
+end
diff --git a/server/tests/drivers/openstack/keys_test.rb b/server/tests/drivers/openstack/keys_test.rb
new file mode 100644
index 0000000..bb16f09
--- /dev/null
+++ b/server/tests/drivers/openstack/keys_test.rb
@@ -0,0 +1,61 @@
+require 'minitest/autorun'
+
+require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
+require_relative 'common.rb'
+
+describe 'OpenStackDriver Keys' do
+
+ before do
+ @driver = Deltacloud::new(:openstack, credentials)
+ VCR.insert_cassette __name__
+ end
+
+ after do
+ VCR.eject_cassette
+ end
+
+ it 'must throw error when wrong credentials' do
+ Proc.new do
+ @driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
+ end.must_raise Deltacloud::ExceptionHandler::AuthenticationFailure, 'Authentication Failure'
+ end
+
+ it 'must return list of keys' do
+ @driver.keys.wont_be_empty
+ @driver.keys.first.must_be_kind_of Key
+ end
+
+ it 'must allow to filter keys' do
+ keys = @driver.keys :id => 'test1'
+ keys.wont_be_empty
+ keys.must_be_kind_of Array
+ keys.size.must_equal 1
+ keys.first.name.must_equal 'test1'
+ @driver.keys(:id => 'unknown').must_be_empty
+ end
+
+ it 'must allow to retrieve single key' do
+ key = @driver.key :id => 'test2'
+ key.wont_be_nil
+ key.name.must_equal 'test2'
+ key.fingerprint.wont_be_empty
+ key.credential_type.must_equal :key
+ key.state.must_equal 'AVAILABLE'
+ @driver.key(:id => 'unknown').must_be_nil
+ end
+
+ it 'must allow to create and destroy key' do
+ key = @driver.create_key(:key_name => 'test-unit-1')
+ key.wont_be_nil
+ key.id.must_equal 'test-unit-1'
+ key.fingerprint.wont_be_empty
+ key.pem_rsa_key.wont_be_empty
+ key.pem_rsa_key.must_match /^\-\-\-\-\-BEGIN RSA PRIVATE KEY/
+ # Should not allow duplicate keys to be created:
+ lambda {
+ @driver.create_key(:key_name => 'test-unit-1')
+ }.must_raise Deltacloud::ExceptionHandler::BackendError
+ @driver.destroy_key(:id => 'test-unit-1').must_equal true
+ end
+
+end
diff --git a/server/tests/drivers/openstack/realms_test.rb b/server/tests/drivers/openstack/realms_test.rb
new file mode 100644
index 0000000..e820f28
--- /dev/null
+++ b/server/tests/drivers/openstack/realms_test.rb
@@ -0,0 +1,46 @@
+require 'minitest/autorun'
+
+require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
+require_relative 'common.rb'
+
+describe 'OpenStackDriver Realms' do
+
+ before do
+ @driver = Deltacloud::new(:openstack, credentials)
+ VCR.insert_cassette __name__
+ end
+
+ after do
+ VCR.eject_cassette
+ end
+
+ it 'must throw error when wrong credentials' do
+ Proc.new do
+ @driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
+ end.must_raise Deltacloud::ExceptionHandler::AuthenticationFailure, 'Authentication Failure'
+ end
+
+ it 'must return list of realms' do
+ @driver.realms.wont_be_empty
+ @driver.realms.first.must_be_kind_of Realm
+ end
+
+ it 'must allow to filter realms' do
+ realms = @driver.realms :id => 'default'
+ realms.wont_be_empty
+ realms.must_be_kind_of Array
+ realms.size.must_equal 1
+ realms.first.id.must_equal 'default'
+ @driver.realms(:id => 'unknown').must_be_empty
+ end
+
+ it 'must allow to retrieve single realm' do
+ realm = @driver.realm :id => 'default'
+ realm.wont_be_nil
+ realm.id.must_equal 'default'
+ realm.limit.wont_be_empty
+ realm.state.must_equal 'AVAILABLE'
+ @driver.realm(:id => 'unknown').must_be_nil
+ end
+
+end
--
1.7.10.2