You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2013/02/13 12:45:59 UTC

[1/5] git commit: [Core] Unit tests - updated fixtures for Openstack realms tests (1.1.1 release)

[Core] Unit tests - updated fixtures for Openstack realms tests (1.1.1 release)


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/ee7536c5
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/ee7536c5
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/ee7536c5

Branch: refs/heads/master
Commit: ee7536c5e349fe6fc300d76248de788dceb7a178
Parents: b8f07f4
Author: marios <ma...@redhat.com>
Authored: Wed Feb 13 12:36:53 2013 +0200
Committer: marios <ma...@redhat.com>
Committed: Wed Feb 13 12:36:53 2013 +0200

----------------------------------------------------------------------
 .../drivers/openstack/openstack_driver.rb          |    2 +-
 ...rror_when_GET_Realms_with_wrong_credentials.yml |   44 ++
 .../test_0002_must_return_list_of_realms.yml       |  338 ++++++++-------
 ...st_0003_must_allow_to_retrieve_single_realm.yml |  342 +++++++++++++++
 server/tests/drivers/openstack/realms_test.rb      |   26 +-
 5 files changed, 581 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ee7536c5/server/lib/deltacloud/drivers/openstack/openstack_driver.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/openstack/openstack_driver.rb b/server/lib/deltacloud/drivers/openstack/openstack_driver.rb
index bb4210b..ec5cd67 100644
--- a/server/lib/deltacloud/drivers/openstack/openstack_driver.rb
+++ b/server/lib/deltacloud/drivers/openstack/openstack_driver.rb
@@ -120,7 +120,7 @@ module Deltacloud
           realms = []
           if opts[:id]
             resource_types = []
-            os.connection.regions_list[opts[:id]].each do |service|
+            (os.connection.regions_list[opts[:id]] || []).each do |service|
               resource_types << service[:service] if ["compute", "volume", "object-store"].include?(service[:service])
               realms << Realm.new( {  :id => opts[:id],
                                     :name => opts[:id],

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ee7536c5/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_GET_Realms_with_wrong_credentials.yml
----------------------------------------------------------------------
diff --git a/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_GET_Realms_with_wrong_credentials.yml b/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_GET_Realms_with_wrong_credentials.yml
new file mode 100644
index 0000000..0298ce4
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0001_must_throw_error_when_GET_Realms_with_wrong_credentials.yml
@@ -0,0 +1,44 @@
+---
+http_interactions:
+- request:
+    method: post
+    uri: https://region-a.geo-1.identity.hpcloudsvc.com:35357/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: Unauthorized
+    headers:
+      Cneonction:
+      - close
+      Content-Length:
+      - '149'
+      Content-Type:
+      - application/json
+      Date:
+      - Wed, 13 Feb 2013 10:22:53 GMT
+      Cache-Control:
+      - no-cache
+      Expires:
+      - '-1'
+      Pragma:
+      - no-cache
+      Server:
+      - Apache-Coyote/1.1
+    body:
+      encoding: US-ASCII
+      string: ! "{\n  \"unauthorized\" : {\n    \"code\" : 401,\n    \"details\" :
+        \"Invalid credentials\",\n    \"message\" : \"UNAUTHORIZED\",\n    \"otherAttributes\"
+        : {\n    }\n  }\n}"
+    http_version: 
+  recorded_at: Wed, 13 Feb 2013 10:22:54 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ee7536c5/server/tests/drivers/openstack/fixtures/test_0002_must_return_list_of_realms.yml
----------------------------------------------------------------------
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
index b3eaf18..122cd6b 100644
--- 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
@@ -2,10 +2,10 @@
 http_interactions:
 - request:
     method: post
-    uri: http://10.34.32.211:5000/v2.0/tokens
+    uri: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens
     body:
       encoding: UTF-8
-      string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+      string: ! '{"auth":{"passwordCredentials":{"username":"foo@fakedomain.eu","password":"1234fake56789"},"tenantName":"foo@fakedomain.eu-default-tenant"}}'
     headers:
       Content-Type:
       - application/json
@@ -18,95 +18,107 @@ http_interactions:
       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
+      - '5934'
       Content-Type:
       - application/json
-      Content-Length:
-      - '900'
       Date:
-      - Mon, 27 Aug 2012 16:15:34 GMT
-      Connection:
-      - keep-alive
+      - Wed, 13 Feb 2013 10:22:55 GMT
+      Cache-Control:
+      - no-cache
+      Expires:
+      - '-1'
+      Pragma:
+      - no-cache
+      Server:
+      - Apache-Coyote/1.1
     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}}}'
+      string: ! "{\"access\": {\n  \"token\": {\n    \"expires\": \"2013-02-13T22:22:55.724Z\",\n
+        \   \"id\": \"EUAuth_01d7206e81832d1ac45183ab9531ba4f6cdc231590a31d5a326aa3cac417cdd1\",\n
+        \   \"tenant\": {\n      \"id\": \"123456fake7890\",\n      \"name\": \"foo@fakedomain.eu-default-tenant\"\n
+        \   }\n  },\n  \"user\": {\n    \"id\": \"98765fake43210\",\n    \"name\":
+        \"foo@fakedomain.eu\",\n    \"roles\": [\n      {\n        \"id\": \"00000000004013\",\n
+        \       \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004022\",\n
+        \       \"serviceId\": \"110\",\n        \"name\": \"Admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004003\",\n
+        \       \"serviceId\": \"100\",\n        \"name\": \"domainadmin\"\n      },\n
+        \     {\n        \"id\": \"00000000004016\",\n        \"serviceId\": \"120\",\n
+        \       \"name\": \"netadmin\",\n        \"tenantId\": \"123456fake7890\"\n
+        \     },\n      {\n        \"id\": \"00000000004004\",\n        \"serviceId\":
+        \"100\",\n        \"name\": \"domainuser\"\n      },\n      {\n        \"id\":
+        \"00000000004013\",\n        \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      },\n      {\n        \"id\":
+        \"00000000004016\",\n        \"serviceId\": \"120\",\n        \"name\": \"netadmin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      }\n    ]\n  },\n  \"serviceCatalog\":
+        [\n    {\n      \"name\": \"Object Storage\",\n      \"type\": \"object-store\",\n
+        \     \"endpoints\": [{\n        \"tenantId\": \"123456fake7890\",\n        \"publicURL\":
+        \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1\\/123456fake7890\",\n
+        \       \"region\": \"region-a.geo-1\",\n        \"versionId\": \"1.0\",\n
+        \       \"versionInfo\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1.0\\/\",\n
+        \       \"versionList\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\"\n
+        \     }]\n    },\n    {\n      \"name\": \"Identity\",\n      \"type\": \"identity\",\n
+        \     \"endpoints\": [\n        {\n          \"publicURL\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-a.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       },\n        {\n          \"publicURL\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-b.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Image Management\",\n
+        \     \"type\": \"image\",\n      \"endpoints\": [\n        {\n          \"tenantId\":
+        \"123456fake7890\",\n          \"publicURL\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\",\n          \"region\":
+        \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n          \"versionInfo\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\\/\",\n          \"versionList\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\"\n        }\n      ]\n    },\n
+        \   {\n      \"name\": \"Block Storage\",\n      \"type\": \"volume\",\n      \"endpoints\":
+        [\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Compute\",\n      \"type\":
+        \"compute\",\n      \"endpoints\": [\n        {\n          \"tenantId\": \"123456fake7890\",\n
+        \         \"publicURL\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-2.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    }\n  ]\n}}"
     http_version: 
-  recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
+  recorded_at: Wed, 13 Feb 2013 10:22:55 GMT
 - request:
     method: post
-    uri: http://10.34.32.211:5000/v2.0/tokens
+    uri: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens
     body:
       encoding: UTF-8
-      string: ! '{"auth":{"passwordCredentials":{"username":"admin","password":"password"},"tenantName":"admin"}}'
+      string: ! '{"auth":{"passwordCredentials":{"username":"foo@fakedomain.eu","password":"1234fake56789"},"tenantName":"foo@fakedomain.eu-default-tenant"}}'
     headers:
       Content-Type:
       - application/json
@@ -119,87 +131,99 @@ http_interactions:
       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
+      - '5934'
       Content-Type:
       - application/json
-      Content-Length:
-      - '900'
       Date:
-      - Mon, 27 Aug 2012 16:15:34 GMT
-      Connection:
-      - keep-alive
+      - Wed, 13 Feb 2013 10:22:57 GMT
+      Cache-Control:
+      - no-cache
+      Expires:
+      - '-1'
+      Pragma:
+      - no-cache
+      Server:
+      - Apache-Coyote/1.1
     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}}}'
+      string: ! "{\"access\": {\n  \"token\": {\n    \"expires\": \"2013-02-13T22:22:57.588Z\",\n
+        \   \"id\": \"EUAuth_01d7206e81832d1ac45183ab9531ba4f6cdc231590a31d5a326aa3cac417cdd1\",\n
+        \   \"tenant\": {\n      \"id\": \"123456fake7890\",\n      \"name\": \"foo@fakedomain.eu-default-tenant\"\n
+        \   }\n  },\n  \"user\": {\n    \"id\": \"98765fake43210\",\n    \"name\":
+        \"foo@fakedomain.eu\",\n    \"roles\": [\n      {\n        \"id\": \"00000000004013\",\n
+        \       \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004022\",\n
+        \       \"serviceId\": \"110\",\n        \"name\": \"Admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004003\",\n
+        \       \"serviceId\": \"100\",\n        \"name\": \"domainadmin\"\n      },\n
+        \     {\n        \"id\": \"00000000004016\",\n        \"serviceId\": \"120\",\n
+        \       \"name\": \"netadmin\",\n        \"tenantId\": \"123456fake7890\"\n
+        \     },\n      {\n        \"id\": \"00000000004004\",\n        \"serviceId\":
+        \"100\",\n        \"name\": \"domainuser\"\n      },\n      {\n        \"id\":
+        \"00000000004013\",\n        \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      },\n      {\n        \"id\":
+        \"00000000004016\",\n        \"serviceId\": \"120\",\n        \"name\": \"netadmin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      }\n    ]\n  },\n  \"serviceCatalog\":
+        [\n    {\n      \"name\": \"Object Storage\",\n      \"type\": \"object-store\",\n
+        \     \"endpoints\": [{\n        \"tenantId\": \"123456fake7890\",\n        \"publicURL\":
+        \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1\\/123456fake7890\",\n
+        \       \"region\": \"region-a.geo-1\",\n        \"versionId\": \"1.0\",\n
+        \       \"versionInfo\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1.0\\/\",\n
+        \       \"versionList\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\"\n
+        \     }]\n    },\n    {\n      \"name\": \"Identity\",\n      \"type\": \"identity\",\n
+        \     \"endpoints\": [\n        {\n          \"publicURL\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-a.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       },\n        {\n          \"publicURL\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-b.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Image Management\",\n
+        \     \"type\": \"image\",\n      \"endpoints\": [\n        {\n          \"tenantId\":
+        \"123456fake7890\",\n          \"publicURL\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\",\n          \"region\":
+        \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n          \"versionInfo\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\\/\",\n          \"versionList\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\"\n        }\n      ]\n    },\n
+        \   {\n      \"name\": \"Block Storage\",\n      \"type\": \"volume\",\n      \"endpoints\":
+        [\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Compute\",\n      \"type\":
+        \"compute\",\n      \"endpoints\": [\n        {\n          \"tenantId\": \"123456fake7890\",\n
+        \         \"publicURL\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-2.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    }\n  ]\n}}"
     http_version: 
-  recorded_at: Mon, 27 Aug 2012 12:26:52 GMT
-recorded_with: VCR 2.2.4
+  recorded_at: Wed, 13 Feb 2013 10:22:57 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ee7536c5/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_retrieve_single_realm.yml
----------------------------------------------------------------------
diff --git a/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_retrieve_single_realm.yml b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_retrieve_single_realm.yml
new file mode 100644
index 0000000..cfbdd39
--- /dev/null
+++ b/server/tests/drivers/openstack/fixtures/test_0003_must_allow_to_retrieve_single_realm.yml
@@ -0,0 +1,342 @@
+---
+http_interactions:
+- request:
+    method: post
+    uri: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens
+    body:
+      encoding: UTF-8
+      string: ! '{"auth":{"passwordCredentials":{"username":"foo@fakedomain.eu","password":"1234fake56789"},"tenantName":"foo@fakedomain.eu-default-tenant"}}'
+    headers:
+      Content-Type:
+      - application/json
+      Accept:
+      - ! '*/*'
+      User-Agent:
+      - Ruby
+  response:
+    status:
+      code: 200
+      message: OK
+    headers:
+      Content-Length:
+      - '5934'
+      Content-Type:
+      - application/json
+      Date:
+      - Wed, 13 Feb 2013 10:22:46 GMT
+      Cache-Control:
+      - no-cache
+      Expires:
+      - '-1'
+      Pragma:
+      - no-cache
+      Server:
+      - Apache-Coyote/1.1
+    body:
+      encoding: US-ASCII
+      string: ! "{\"access\": {\n  \"token\": {\n    \"expires\": \"2013-02-13T22:22:46.922Z\",\n
+        \   \"id\": \"EUAuth_01d7206e81832d1ac45183ab9531ba4f6cdc231590a31d5a326aa3cac417cdd1\",\n
+        \   \"tenant\": {\n      \"id\": \"123456fake7890\",\n      \"name\": \"foo@fakedomain.eu-default-tenant\"\n
+        \   }\n  },\n  \"user\": {\n    \"id\": \"98765fake43210\",\n    \"name\":
+        \"foo@fakedomain.eu\",\n    \"roles\": [\n      {\n        \"id\": \"00000000004013\",\n
+        \       \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004022\",\n
+        \       \"serviceId\": \"110\",\n        \"name\": \"Admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004003\",\n
+        \       \"serviceId\": \"100\",\n        \"name\": \"domainadmin\"\n      },\n
+        \     {\n        \"id\": \"00000000004016\",\n        \"serviceId\": \"120\",\n
+        \       \"name\": \"netadmin\",\n        \"tenantId\": \"123456fake7890\"\n
+        \     },\n      {\n        \"id\": \"00000000004004\",\n        \"serviceId\":
+        \"100\",\n        \"name\": \"domainuser\"\n      },\n      {\n        \"id\":
+        \"00000000004013\",\n        \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      },\n      {\n        \"id\":
+        \"00000000004016\",\n        \"serviceId\": \"120\",\n        \"name\": \"netadmin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      }\n    ]\n  },\n  \"serviceCatalog\":
+        [\n    {\n      \"name\": \"Object Storage\",\n      \"type\": \"object-store\",\n
+        \     \"endpoints\": [{\n        \"tenantId\": \"123456fake7890\",\n        \"publicURL\":
+        \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1\\/123456fake7890\",\n
+        \       \"region\": \"region-a.geo-1\",\n        \"versionId\": \"1.0\",\n
+        \       \"versionInfo\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1.0\\/\",\n
+        \       \"versionList\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\"\n
+        \     }]\n    },\n    {\n      \"name\": \"Identity\",\n      \"type\": \"identity\",\n
+        \     \"endpoints\": [\n        {\n          \"publicURL\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-a.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       },\n        {\n          \"publicURL\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-b.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Image Management\",\n
+        \     \"type\": \"image\",\n      \"endpoints\": [\n        {\n          \"tenantId\":
+        \"123456fake7890\",\n          \"publicURL\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\",\n          \"region\":
+        \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n          \"versionInfo\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\\/\",\n          \"versionList\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\"\n        }\n      ]\n    },\n
+        \   {\n      \"name\": \"Block Storage\",\n      \"type\": \"volume\",\n      \"endpoints\":
+        [\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Compute\",\n      \"type\":
+        \"compute\",\n      \"endpoints\": [\n        {\n          \"tenantId\": \"123456fake7890\",\n
+        \         \"publicURL\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-2.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    }\n  ]\n}}"
+    http_version: 
+  recorded_at: Wed, 13 Feb 2013 10:22:47 GMT
+- request:
+    method: post
+    uri: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens
+    body:
+      encoding: UTF-8
+      string: ! '{"auth":{"passwordCredentials":{"username":"foo@fakedomain.eu","password":"1234fake56789"},"tenantName":"foo@fakedomain.eu-default-tenant"}}'
+    headers:
+      Content-Type:
+      - application/json
+      Accept:
+      - ! '*/*'
+      User-Agent:
+      - Ruby
+  response:
+    status:
+      code: 200
+      message: OK
+    headers:
+      Content-Length:
+      - '5934'
+      Content-Type:
+      - application/json
+      Date:
+      - Wed, 13 Feb 2013 10:22:49 GMT
+      Cache-Control:
+      - no-cache
+      Expires:
+      - '-1'
+      Pragma:
+      - no-cache
+      Server:
+      - Apache-Coyote/1.1
+    body:
+      encoding: US-ASCII
+      string: ! "{\"access\": {\n  \"token\": {\n    \"expires\": \"2013-02-13T22:22:49.316Z\",\n
+        \   \"id\": \"EUAuth_01d7206e81832d1ac45183ab9531ba4f6cdc231590a31d5a326aa3cac417cdd1\",\n
+        \   \"tenant\": {\n      \"id\": \"123456fake7890\",\n      \"name\": \"foo@fakedomain.eu-default-tenant\"\n
+        \   }\n  },\n  \"user\": {\n    \"id\": \"98765fake43210\",\n    \"name\":
+        \"foo@fakedomain.eu\",\n    \"roles\": [\n      {\n        \"id\": \"00000000004013\",\n
+        \       \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004022\",\n
+        \       \"serviceId\": \"110\",\n        \"name\": \"Admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004003\",\n
+        \       \"serviceId\": \"100\",\n        \"name\": \"domainadmin\"\n      },\n
+        \     {\n        \"id\": \"00000000004016\",\n        \"serviceId\": \"120\",\n
+        \       \"name\": \"netadmin\",\n        \"tenantId\": \"123456fake7890\"\n
+        \     },\n      {\n        \"id\": \"00000000004004\",\n        \"serviceId\":
+        \"100\",\n        \"name\": \"domainuser\"\n      },\n      {\n        \"id\":
+        \"00000000004013\",\n        \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      },\n      {\n        \"id\":
+        \"00000000004016\",\n        \"serviceId\": \"120\",\n        \"name\": \"netadmin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      }\n    ]\n  },\n  \"serviceCatalog\":
+        [\n    {\n      \"name\": \"Object Storage\",\n      \"type\": \"object-store\",\n
+        \     \"endpoints\": [{\n        \"tenantId\": \"123456fake7890\",\n        \"publicURL\":
+        \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1\\/123456fake7890\",\n
+        \       \"region\": \"region-a.geo-1\",\n        \"versionId\": \"1.0\",\n
+        \       \"versionInfo\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1.0\\/\",\n
+        \       \"versionList\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\"\n
+        \     }]\n    },\n    {\n      \"name\": \"Identity\",\n      \"type\": \"identity\",\n
+        \     \"endpoints\": [\n        {\n          \"publicURL\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-a.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       },\n        {\n          \"publicURL\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-b.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Image Management\",\n
+        \     \"type\": \"image\",\n      \"endpoints\": [\n        {\n          \"tenantId\":
+        \"123456fake7890\",\n          \"publicURL\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\",\n          \"region\":
+        \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n          \"versionInfo\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\\/\",\n          \"versionList\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\"\n        }\n      ]\n    },\n
+        \   {\n      \"name\": \"Block Storage\",\n      \"type\": \"volume\",\n      \"endpoints\":
+        [\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Compute\",\n      \"type\":
+        \"compute\",\n      \"endpoints\": [\n        {\n          \"tenantId\": \"123456fake7890\",\n
+        \         \"publicURL\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-2.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    }\n  ]\n}}"
+    http_version: 
+  recorded_at: Wed, 13 Feb 2013 10:22:49 GMT
+- request:
+    method: post
+    uri: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens
+    body:
+      encoding: UTF-8
+      string: ! '{"auth":{"passwordCredentials":{"username":"foo@fakedomain.eu","password":"1234fake56789"},"tenantName":"foo@fakedomain.eu-default-tenant"}}'
+    headers:
+      Content-Type:
+      - application/json
+      Accept:
+      - ! '*/*'
+      User-Agent:
+      - Ruby
+  response:
+    status:
+      code: 200
+      message: OK
+    headers:
+      Content-Length:
+      - '5934'
+      Content-Type:
+      - application/json
+      Date:
+      - Wed, 13 Feb 2013 10:22:51 GMT
+      Cache-Control:
+      - no-cache
+      Expires:
+      - '-1'
+      Pragma:
+      - no-cache
+      Server:
+      - Apache-Coyote/1.1
+    body:
+      encoding: US-ASCII
+      string: ! "{\"access\": {\n  \"token\": {\n    \"expires\": \"2013-02-13T22:22:52.152Z\",\n
+        \   \"id\": \"EUAuth_01d7206e81832d1ac45183ab9531ba4f6cdc231590a31d5a326aa3cac417cdd1\",\n
+        \   \"tenant\": {\n      \"id\": \"123456fake7890\",\n      \"name\": \"foo@fakedomain.eu-default-tenant\"\n
+        \   }\n  },\n  \"user\": {\n    \"id\": \"98765fake43210\",\n    \"name\":
+        \"foo@fakedomain.eu\",\n    \"roles\": [\n      {\n        \"id\": \"00000000004013\",\n
+        \       \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004022\",\n
+        \       \"serviceId\": \"110\",\n        \"name\": \"Admin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004025\",\n
+        \       \"serviceId\": \"120\",\n        \"name\": \"sysadmin\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004024\",\n
+        \       \"serviceId\": \"140\",\n        \"name\": \"user\",\n        \"tenantId\":
+        \"123456fake7890\"\n      },\n      {\n        \"id\": \"00000000004003\",\n
+        \       \"serviceId\": \"100\",\n        \"name\": \"domainadmin\"\n      },\n
+        \     {\n        \"id\": \"00000000004016\",\n        \"serviceId\": \"120\",\n
+        \       \"name\": \"netadmin\",\n        \"tenantId\": \"123456fake7890\"\n
+        \     },\n      {\n        \"id\": \"00000000004004\",\n        \"serviceId\":
+        \"100\",\n        \"name\": \"domainuser\"\n      },\n      {\n        \"id\":
+        \"00000000004013\",\n        \"serviceId\": \"130\",\n        \"name\": \"block-admin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      },\n      {\n        \"id\":
+        \"00000000004016\",\n        \"serviceId\": \"120\",\n        \"name\": \"netadmin\",\n
+        \       \"tenantId\": \"123456fake7890\"\n      }\n    ]\n  },\n  \"serviceCatalog\":
+        [\n    {\n      \"name\": \"Object Storage\",\n      \"type\": \"object-store\",\n
+        \     \"endpoints\": [{\n        \"tenantId\": \"123456fake7890\",\n        \"publicURL\":
+        \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1\\/123456fake7890\",\n
+        \       \"region\": \"region-a.geo-1\",\n        \"versionId\": \"1.0\",\n
+        \       \"versionInfo\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\\/v1.0\\/\",\n
+        \       \"versionList\": \"https:\\/\\/region-a.geo-1.objects.hpcloudsvc.com\"\n
+        \     }]\n    },\n    {\n      \"name\": \"Identity\",\n      \"type\": \"identity\",\n
+        \     \"endpoints\": [\n        {\n          \"publicURL\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-a.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-a.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       },\n        {\n          \"publicURL\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"region\": \"region-b.geo-1\",\n          \"versionId\": \"2.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\\/v2.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/region-b.geo-1.identity.hpcloudsvc.com:35357\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Image Management\",\n
+        \     \"type\": \"image\",\n      \"endpoints\": [\n        {\n          \"tenantId\":
+        \"123456fake7890\",\n          \"publicURL\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n
+        \         \"versionInfo\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\\/v1.0\\/\",\n
+        \         \"versionList\": \"https:\\/\\/glance2.uswest.hpcloud.net:9292\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\",\n          \"region\":
+        \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.0\",\n          \"versionInfo\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\\/v1.0\\/\",\n          \"versionList\":
+        \"https:\\/\\/glance1.uswest.hpcloud.net:9292\"\n        }\n      ]\n    },\n
+        \   {\n      \"name\": \"Block Storage\",\n      \"type\": \"volume\",\n      \"endpoints\":
+        [\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    },\n    {\n      \"name\": \"Compute\",\n      \"type\":
+        \"compute\",\n      \"endpoints\": [\n        {\n          \"tenantId\": \"123456fake7890\",\n
+        \         \"publicURL\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-2.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-2.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-2.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       },\n        {\n          \"tenantId\": \"123456fake7890\",\n          \"publicURL\":
+        \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/123456fake7890\",\n
+        \         \"publicURL2\": \"https:\\/\\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\\/services\\/Cloud\",\n
+        \         \"region\": \"az-1.region-a.geo-1\",\n          \"versionId\": \"1.1\",\n
+        \         \"versionInfo\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\\/v1.1\\/\",\n
+        \         \"versionList\": \"https:\\/\\/az-1.region-a.geo-1.compute.hpcloudsvc.com\"\n
+        \       }\n      ]\n    }\n  ]\n}}"
+    http_version: 
+  recorded_at: Wed, 13 Feb 2013 10:22:52 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/ee7536c5/server/tests/drivers/openstack/realms_test.rb
----------------------------------------------------------------------
diff --git a/server/tests/drivers/openstack/realms_test.rb b/server/tests/drivers/openstack/realms_test.rb
index 96f67b6..42c37bd 100644
--- a/server/tests/drivers/openstack/realms_test.rb
+++ b/server/tests/drivers/openstack/realms_test.rb
@@ -5,6 +5,15 @@ require_relative 'common.rb'
 
 describe 'OpenStackDriver Realms' do
 
+  def credentials
+  {
+    :user => "foo@fakedomain.eu+foo@fakedomain.eu-default-tenant",
+    :password => "1234fake56789",
+    :provider => "https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/"
+  }
+  end
+
+
   before do
     @driver = Deltacloud::new(:openstack, credentials)
     VCR.insert_cassette __name__
@@ -14,7 +23,7 @@ describe 'OpenStackDriver Realms' do
     VCR.eject_cassette
   end
 
-  it 'must throw error when wrong credentials' do
+  it 'must throw error when GET Realms with wrong credentials' do
     Proc.new do
       @driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
     end.must_raise Deltacloud::Exceptions::AuthenticationFailure, 'Authentication Failure'
@@ -25,20 +34,11 @@ describe 'OpenStackDriver Realms' do
     @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_id = @driver.realms.first.id
+    realm = @driver.realm :id => realm_id
     realm.wont_be_nil
-    realm.id.must_equal 'default'
-    realm.limit.wont_be_empty
+    realm.id.must_equal realm_id
     realm.state.must_equal 'AVAILABLE'
     @driver.realm(:id => 'unknown').must_be_nil
   end