You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2013/03/26 18:58:02 UTC

[16/30] Client: Added VCR fixtures for testing

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_images.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_images.yml b/client/tests/fixtures/test_0001_supports_images.yml
new file mode 100644
index 0000000..77872e7
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_images.yml
@@ -0,0 +1,224 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:17 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:17 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/images
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0017576217651367188'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '3625'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - fb76b11edef9b2b39a729fe308f606d8
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:17 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<images>\n  <image href='http://localhost:3001/api/images/img1'
+        id='img1'>\n    <name>img1</name>\n    <description>Fedora 10</description>\n
+        \   <owner_id>fedoraproject</owner_id>\n    <architecture>x86_64</architecture>\n
+        \   <state>AVAILABLE</state>\n    <creation_time>Thu Oct 25 14:27:53 CEST
+        2012</creation_time>\n    <hardware_profiles>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-large' id='m1-large'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-xlarge'
+        id='m1-xlarge' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/opaque' id='opaque' rel='hardware_profile'></hardware_profile>\n
+        \   </hardware_profiles>\n    <root_type>transient</root_type>\n    <actions>\n
+        \     <link href='http://localhost:3001/api/instances;image_id=img1' method='post'
+        rel='create_instance' />\n      <link href='http://localhost:3001/api/images/img1'
+        method='delete' rel='destroy_image' />\n    </actions>\n  </image>\n  <image
+        href='http://localhost:3001/api/images/img2' id='img2'>\n    <name>img2</name>\n
+        \   <description>Fedora 10</description>\n    <owner_id>fedoraproject</owner_id>\n
+        \   <architecture>i386</architecture>\n    <state>AVAILABLE</state>\n    <creation_time>Thu
+        Oct 25 14:27:53 CEST 2012</creation_time>\n    <hardware_profiles>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-small' id='m1-small'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-large'
+        id='m1-large' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-xlarge' id='m1-xlarge'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/opaque'
+        id='opaque' rel='hardware_profile'></hardware_profile>\n    </hardware_profiles>\n
+        \   <root_type>transient</root_type>\n    <actions>\n      <link href='http://localhost:3001/api/instances;image_id=img2'
+        method='post' rel='create_instance' />\n      <link href='http://localhost:3001/api/images/img2'
+        method='delete' rel='destroy_image' />\n    </actions>\n  </image>\n  <image
+        href='http://localhost:3001/api/images/img3' id='img3'>\n    <name>img3</name>\n
+        \   <description>JBoss</description>\n    <owner_id>mockuser</owner_id>\n
+        \   <architecture>i386</architecture>\n    <state>AVAILABLE</state>\n    <creation_time>Thu
+        Oct 25 14:27:53 CEST 2012</creation_time>\n    <hardware_profiles>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-small' id='m1-small'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-large'
+        id='m1-large' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-xlarge' id='m1-xlarge'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/opaque'
+        id='opaque' rel='hardware_profile'></hardware_profile>\n    </hardware_profiles>\n
+        \   <root_type>transient</root_type>\n    <actions>\n      <link href='http://localhost:3001/api/instances;image_id=img3'
+        method='post' rel='create_instance' />\n      <link href='http://localhost:3001/api/images/img3'
+        method='delete' rel='destroy_image' />\n    </actions>\n  </image>\n</images>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:17 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/images
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0018177032470703125'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '3625'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - fb76b11edef9b2b39a729fe308f606d8
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:17 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<images>\n  <image href='http://localhost:3001/api/images/img1'
+        id='img1'>\n    <name>img1</name>\n    <description>Fedora 10</description>\n
+        \   <owner_id>fedoraproject</owner_id>\n    <architecture>x86_64</architecture>\n
+        \   <state>AVAILABLE</state>\n    <creation_time>Thu Oct 25 14:27:53 CEST
+        2012</creation_time>\n    <hardware_profiles>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-large' id='m1-large'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-xlarge'
+        id='m1-xlarge' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/opaque' id='opaque' rel='hardware_profile'></hardware_profile>\n
+        \   </hardware_profiles>\n    <root_type>transient</root_type>\n    <actions>\n
+        \     <link href='http://localhost:3001/api/instances;image_id=img1' method='post'
+        rel='create_instance' />\n      <link href='http://localhost:3001/api/images/img1'
+        method='delete' rel='destroy_image' />\n    </actions>\n  </image>\n  <image
+        href='http://localhost:3001/api/images/img2' id='img2'>\n    <name>img2</name>\n
+        \   <description>Fedora 10</description>\n    <owner_id>fedoraproject</owner_id>\n
+        \   <architecture>i386</architecture>\n    <state>AVAILABLE</state>\n    <creation_time>Thu
+        Oct 25 14:27:53 CEST 2012</creation_time>\n    <hardware_profiles>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-small' id='m1-small'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-large'
+        id='m1-large' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-xlarge' id='m1-xlarge'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/opaque'
+        id='opaque' rel='hardware_profile'></hardware_profile>\n    </hardware_profiles>\n
+        \   <root_type>transient</root_type>\n    <actions>\n      <link href='http://localhost:3001/api/instances;image_id=img2'
+        method='post' rel='create_instance' />\n      <link href='http://localhost:3001/api/images/img2'
+        method='delete' rel='destroy_image' />\n    </actions>\n  </image>\n  <image
+        href='http://localhost:3001/api/images/img3' id='img3'>\n    <name>img3</name>\n
+        \   <description>JBoss</description>\n    <owner_id>mockuser</owner_id>\n
+        \   <architecture>i386</architecture>\n    <state>AVAILABLE</state>\n    <creation_time>Thu
+        Oct 25 14:27:53 CEST 2012</creation_time>\n    <hardware_profiles>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-small' id='m1-small'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-large'
+        id='m1-large' rel='hardware_profile'></hardware_profile>\n      <hardware_profile
+        href='http://localhost:3001/api/hardware_profiles/m1-xlarge' id='m1-xlarge'
+        rel='hardware_profile'></hardware_profile>\n      <hardware_profile href='http://localhost:3001/api/hardware_profiles/opaque'
+        id='opaque' rel='hardware_profile'></hardware_profile>\n    </hardware_profiles>\n
+        \   <root_type>transient</root_type>\n    <actions>\n      <link href='http://localhost:3001/api/instances;image_id=img3'
+        method='post' rel='create_instance' />\n      <link href='http://localhost:3001/api/images/img3'
+        method='delete' rel='destroy_image' />\n    </actions>\n  </image>\n</images>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:17 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_instance_states.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_instance_states.yml b/client/tests/fixtures/test_0001_supports_instance_states.yml
new file mode 100644
index 0000000..e793dc8
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_instance_states.yml
@@ -0,0 +1,156 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:18 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:18 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/instance_states
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '543'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - fa9267298fdf7b936d9635aa5ce29640
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:18 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<states>\n  <state name='start'>\n    <transition action='create'
+        to='pending'></transition>\n  </state>\n  <state name='pending'>\n    <transition
+        auto='true' to='running'></transition>\n  </state>\n  <state name='running'>\n
+        \   <transition action='reboot' to='running'></transition>\n    <transition
+        action='stop' to='stopped'></transition>\n  </state>\n  <state name='stopped'>\n
+        \   <transition action='start' to='running'></transition>\n    <transition
+        action='destroy' to='finish'></transition>\n  </state>\n  <state name='finish'>\n
+        \ </state>\n</states>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:18 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/instance_states
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '543'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - fa9267298fdf7b936d9635aa5ce29640
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:18 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<states>\n  <state name='start'>\n    <transition action='create'
+        to='pending'></transition>\n  </state>\n  <state name='pending'>\n    <transition
+        auto='true' to='running'></transition>\n  </state>\n  <state name='running'>\n
+        \   <transition action='reboot' to='running'></transition>\n    <transition
+        action='stop' to='stopped'></transition>\n  </state>\n  <state name='stopped'>\n
+        \   <transition action='start' to='running'></transition>\n    <transition
+        action='destroy' to='finish'></transition>\n  </state>\n  <state name='finish'>\n
+        \ </state>\n</states>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:18 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_instances.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_instances.yml b/client/tests/fixtures/test_0001_supports_instances.yml
new file mode 100644
index 0000000..0414cc5
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_instances.yml
@@ -0,0 +1,486 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:18 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:18 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/instances
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.005411386489868164'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '16539'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - f155d58829533df9216e29d06b3e73b3
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:18 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<instances>\n  <instance
+        href='http://localhost:3001/api/instances/inst6' id='inst6'>\n    <name>i-1362499468</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>STOPPED</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst6/start'
+        method='post' rel='start' />\n      <link href='http://localhost:3001/api/instances/inst6'
+        method='delete' rel='destroy' />\n      <link href='http://localhost:3001/api/instances/inst6/run;id=inst6'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst6'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst6.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst6.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst9' id='inst9'>\n    <name>i-1362560139</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst9/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst9/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst9/run;id=inst9'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst9'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst9.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst9.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst7' id='inst7'>\n    <name>i-1362499468</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst7/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst7/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst7/run;id=inst7'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst7'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst7.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst7.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst1' id='inst1'>\n    <name>MockUserInstance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img3'
+        id='img3'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst1/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst1/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst1/run;id=inst1'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst1'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst1.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst1.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst4' id='inst4'>\n    <name>test_instance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst4/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst4/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst4/run;id=inst4'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst4'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst4.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst4.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst0' id='inst0'>\n    <name>Mock
+        Instance With Profile Change</name>\n    <owner_id>mockuser</owner_id>\n    <image
+        href='http://localhost:3001/api/images/img1' id='img1'></image>\n    <realm
+        href='http://localhost:3001/api/realms/us' id='us'></realm>\n    <state>RUNNING</state>\n
+        \   <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-large'
+        id='m1-large'>\n      <property kind='fixed' name='memory' unit='MB' value='12288'></property>\n
+        \   </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst0/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst0/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst0/run;id=inst0'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst0'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst0.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst0.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst3' id='inst3'>\n    <name>i-1362499363</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst3/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst3/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst3/run;id=inst3'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst3'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst3.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst3.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst8' id='inst8'>\n    <name>i-1362499469</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst8/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst8/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst8/run;id=inst8'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst8'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst8.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst8.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst11' id='inst11'>\n    <name>i-1362560140</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst11/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst11/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst11/run;id=inst11'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst11'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst11.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst11.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst12' id='inst12'>\n    <name>i-1362560177</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst12/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst12/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst12/run;id=inst12'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst12'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst12.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst12.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst5' id='inst5'>\n    <name>i-1362499364</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst5/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst5/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst5/run;id=inst5'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst5'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst5.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst5.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst10' id='inst10'>\n    <name>test_instance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst10/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst10/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst10/run;id=inst10'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst10'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst10.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst10.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst14' id='inst14'>\n    <name>test_instance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst14/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst14/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst14/run;id=inst14'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst14'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst14.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst14.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst13' id='inst13'>\n    <name>i-1362560178</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst13/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst13/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst13/run;id=inst13'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst13'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst13.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst13.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n</instances>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:18 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/instances
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.015678882598876953'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '16539'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - f155d58829533df9216e29d06b3e73b3
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:18 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<instances>\n  <instance
+        href='http://localhost:3001/api/instances/inst6' id='inst6'>\n    <name>i-1362499468</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>STOPPED</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst6/start'
+        method='post' rel='start' />\n      <link href='http://localhost:3001/api/instances/inst6'
+        method='delete' rel='destroy' />\n      <link href='http://localhost:3001/api/instances/inst6/run;id=inst6'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst6'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst6.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst6.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst9' id='inst9'>\n    <name>i-1362560139</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst9/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst9/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst9/run;id=inst9'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst9'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst9.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst9.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst7' id='inst7'>\n    <name>i-1362499468</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst7/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst7/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst7/run;id=inst7'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst7'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst7.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst7.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst1' id='inst1'>\n    <name>MockUserInstance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img3'
+        id='img3'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst1/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst1/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst1/run;id=inst1'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst1'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst1.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst1.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst4' id='inst4'>\n    <name>test_instance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst4/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst4/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst4/run;id=inst4'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst4'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst4.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst4.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst0' id='inst0'>\n    <name>Mock
+        Instance With Profile Change</name>\n    <owner_id>mockuser</owner_id>\n    <image
+        href='http://localhost:3001/api/images/img1' id='img1'></image>\n    <realm
+        href='http://localhost:3001/api/realms/us' id='us'></realm>\n    <state>RUNNING</state>\n
+        \   <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-large'
+        id='m1-large'>\n      <property kind='fixed' name='memory' unit='MB' value='12288'></property>\n
+        \   </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst0/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst0/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst0/run;id=inst0'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst0'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst0.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst0.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst3' id='inst3'>\n    <name>i-1362499363</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst3/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst3/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst3/run;id=inst3'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst3'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst3.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst3.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst8' id='inst8'>\n    <name>i-1362499469</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst8/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst8/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst8/run;id=inst8'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst8'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst8.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst8.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst11' id='inst11'>\n    <name>i-1362560140</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst11/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst11/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst11/run;id=inst11'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst11'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst11.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst11.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst12' id='inst12'>\n    <name>i-1362560177</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst12/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst12/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst12/run;id=inst12'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst12'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst12.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst12.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst5' id='inst5'>\n    <name>i-1362499364</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/us'
+        id='us'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst5/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst5/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst5/run;id=inst5'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst5'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst5.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst5.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst10' id='inst10'>\n    <name>test_instance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst10/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst10/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst10/run;id=inst10'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst10'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst10.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst10.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst14' id='inst14'>\n    <name>test_instance</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst14/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst14/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst14/run;id=inst14'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst14'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst14.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst14.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n  <instance
+        href='http://localhost:3001/api/instances/inst13' id='inst13'>\n    <name>i-1362560178</name>\n
+        \   <owner_id>mockuser</owner_id>\n    <image href='http://localhost:3001/api/images/img1'
+        id='img1'></image>\n    <realm href='http://localhost:3001/api/realms/eu'
+        id='eu'></realm>\n    <state>RUNNING</state>\n    <hardware_profile href='http://localhost:3001/api/hardware_profiles/m1-small'
+        id='m1-small'>\n    </hardware_profile>\n    <actions>\n      <link href='http://localhost:3001/api/instances/inst13/reboot'
+        method='post' rel='reboot' />\n      <link href='http://localhost:3001/api/instances/inst13/stop'
+        method='post' rel='stop' />\n      <link href='http://localhost:3001/api/instances/inst13/run;id=inst13'
+        method='post' rel='run' />\n      <link href='http://localhost:3001/api/images;instance_id=inst13'
+        method='post' rel='create_image' />\n    </actions>\n    <public_addresses><address
+        type='hostname'>img1.inst13.public.com</address></public_addresses>\n    <private_addresses><address
+        type='hostname'>img1.inst13.private.com</address></private_addresses>\n    <storage_volumes></storage_volumes>\n
+        \   <authentication type='key'>\n    </authentication>\n  </instance>\n</instances>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:18 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_keys.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_keys.yml b/client/tests/fixtures/test_0001_supports_keys.yml
new file mode 100644
index 0000000..e789ef1
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_keys.yml
@@ -0,0 +1,198 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/keys
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0026090145111083984'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '2299'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - b5777985297c503ddf06535a89966e7c
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<keys>\n  <key href='http://localhost:3001/api/keys/test-key'
+        id='test-key' type='key'>\n    <name>test-key</name>\n    <actions>\n      <link
+        href='http://localhost:3001/api/keys/test-key' method='delete' rel='destroy'
+        />\n    </actions>\n    <fingerprint>5e:ce:b6:dc:59:3b:5c:93:f8:2e:9d:20:ce:60:ca:f5:0b:8a:66:93</fingerprint>\n
+        \   <pem>\n      <![CDATA[-----BEGIN RSA PRIVATE KEY-----\n      P9mRXOY7p2SmMzTGA6dwKxUp1NB8LNCIJ7sMGgAljsf=ToAi9qn9myx0EQJkE8FZ8FigUIMHS/T\n
+        \     8EwP7Ayjztb8dczbC6sb/Ep2UWcegNUVHimyHstaEaO/3dCaFwLJ/kw=laAfLQAVj4sIr8EHDTg\n
+        \     /BFkgmwTAYlS/ybkEfO9J7AJlY6/agwYzDWp+VGAD9rMsl2EkkbkWdoTX4Aob9RqyHaFi2m1AAw\n
+        \     2nhhqYpa1W4H=PJvyBcsXT3JynowSI8rTvo41oVwgSzv7YofGP0yV7BePm5pXZUUP2ZMByxbAUv\n
+        \     jvYRN/cMHbC6RW1ezR3uehCKdKFRXLTkoivoGj4ugrKgOwQP0HWI2orx/NW+6vYBxyCKiTJPZcK\n
+        \     x4BlRrlgvPST/7eaFv7/5Pqc3jWcp+bRC0qyYqQT9iq3gGNoc4ABFTI7zCeZ3p9tK8oje5fWo5m\n
+        \     54P32hVGeBjfqT/MrEYbY5gbJU6LejCj7x6Ozlp4iHQtrYNhiZ0iP0W3nRhVFQHamKx9aoBXyeg\n
+        \     LLGxBOr+TfaeeBXRkXiaMuWoyPSzUQwWmaJhm0sjHf7e/iKiUggZkOHQ/eF9MWI4M+4wvyepfS0\n
+        \     5vl2Ql/2rXv+Mx+c4cx1fjBhRrMPcGKmHGjNMjPyamTrlqueFRJYP45AYABP2U2AsNxoPfEG0qu\n
+        \     ki3DJOeC5x/03nODd=hQLzfdiQ3Yyt0GMw1EQN96cPaRtnjr3U4/ngxt0Fi6o7Z8E2+Uh5t4n8D\n
+        \     h0exXCOlOi9BDsJJz677mga/=5Sin/4Cw8=D8O1FHrWoA4ZQbWFE71F=/29PM90RHJf2bjgk2WF\n
+        \     piltKwVfGAxPOTcpmf=J+V3NHgT/EawMPHuEmwgNvx6smDBUgJaw0QYX/XG5xuiQ7HTkffJN6Cm\n
+        \     6D4WCJPZUvO1r+v=T9v7Qu4j9ue/l2WwVZuvQsVD67jpzq2R72EHna6rcwwyMcdAlwikP9nzJIL\n
+        \     Ale7hQAWHIEeAvAxtwxEMSfTkuLQcD=i0ORysmInDxdORw4ue2YThj2Id/jmUy6IiEqMYeVpiRq\n
+        \     6spq2ukt=+HHn6aBcYWbsD=e8/wOk0X0=ixZ0HF+xqYgsiiAk==rA4QEgrf+5djbIRZk1wegeIO\n
+        \     po/HZdF4qk32cKBjrrel2AzxfZeGxWNX7ObAE4HACXi3eSdcnm1fIHsoSC+1eDqFkfAIve3Dj/a\n
+        \     afZxrda6zzp3g6IPcHAqleCn7XNcS0v5tk4Fag8Wr5Wq7IipRfixAs+GESGiyugeRvZWN2mtDOL\n
+        \     CGHGGAbpvplw2vjdryVyj7P6bVcwLNgl0t1ufZBaGRBpyontJ1/UQQMew7e2lW=EZr/GxHke8HN\n
+        \     X5vIw9ssx8=LL00fxAuX9SRdcrtVyTYGXORXe9NnldXjBXmLPgwqJAjoBTjTBQxzrQOtdla=/yw\n
+        \     MsDlFWumPz1HAFw7R5zS2VCHrwkLDm=h7k3y+fUvYOx6IYf+MmevANuJT+2qY6s/ilTBNDYq6jJ\n
+        \     8LYpsBo4XpQm1ZleFCIyRldHfmaC5EMxkVQVqCV7X9I6JgzDEetUre25LQTpDa31M=ucVHNWlT+\n
+        \     6rjiLETNeMTWGcuIkLPe/PElmp4llKeFi6g2=E2AKeSDzNycr5eXHEnBuKfEnENXXo6n-----END
+        RSA PRIVATE KEY-----]]>\n    </pem>\n    <state></state>\n  </key>\n</keys>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/keys
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0010156631469726562'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '2299'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - b5777985297c503ddf06535a89966e7c
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<keys>\n  <key href='http://localhost:3001/api/keys/test-key'
+        id='test-key' type='key'>\n    <name>test-key</name>\n    <actions>\n      <link
+        href='http://localhost:3001/api/keys/test-key' method='delete' rel='destroy'
+        />\n    </actions>\n    <fingerprint>5e:ce:b6:dc:59:3b:5c:93:f8:2e:9d:20:ce:60:ca:f5:0b:8a:66:93</fingerprint>\n
+        \   <pem>\n      <![CDATA[-----BEGIN RSA PRIVATE KEY-----\n      P9mRXOY7p2SmMzTGA6dwKxUp1NB8LNCIJ7sMGgAljsf=ToAi9qn9myx0EQJkE8FZ8FigUIMHS/T\n
+        \     8EwP7Ayjztb8dczbC6sb/Ep2UWcegNUVHimyHstaEaO/3dCaFwLJ/kw=laAfLQAVj4sIr8EHDTg\n
+        \     /BFkgmwTAYlS/ybkEfO9J7AJlY6/agwYzDWp+VGAD9rMsl2EkkbkWdoTX4Aob9RqyHaFi2m1AAw\n
+        \     2nhhqYpa1W4H=PJvyBcsXT3JynowSI8rTvo41oVwgSzv7YofGP0yV7BePm5pXZUUP2ZMByxbAUv\n
+        \     jvYRN/cMHbC6RW1ezR3uehCKdKFRXLTkoivoGj4ugrKgOwQP0HWI2orx/NW+6vYBxyCKiTJPZcK\n
+        \     x4BlRrlgvPST/7eaFv7/5Pqc3jWcp+bRC0qyYqQT9iq3gGNoc4ABFTI7zCeZ3p9tK8oje5fWo5m\n
+        \     54P32hVGeBjfqT/MrEYbY5gbJU6LejCj7x6Ozlp4iHQtrYNhiZ0iP0W3nRhVFQHamKx9aoBXyeg\n
+        \     LLGxBOr+TfaeeBXRkXiaMuWoyPSzUQwWmaJhm0sjHf7e/iKiUggZkOHQ/eF9MWI4M+4wvyepfS0\n
+        \     5vl2Ql/2rXv+Mx+c4cx1fjBhRrMPcGKmHGjNMjPyamTrlqueFRJYP45AYABP2U2AsNxoPfEG0qu\n
+        \     ki3DJOeC5x/03nODd=hQLzfdiQ3Yyt0GMw1EQN96cPaRtnjr3U4/ngxt0Fi6o7Z8E2+Uh5t4n8D\n
+        \     h0exXCOlOi9BDsJJz677mga/=5Sin/4Cw8=D8O1FHrWoA4ZQbWFE71F=/29PM90RHJf2bjgk2WF\n
+        \     piltKwVfGAxPOTcpmf=J+V3NHgT/EawMPHuEmwgNvx6smDBUgJaw0QYX/XG5xuiQ7HTkffJN6Cm\n
+        \     6D4WCJPZUvO1r+v=T9v7Qu4j9ue/l2WwVZuvQsVD67jpzq2R72EHna6rcwwyMcdAlwikP9nzJIL\n
+        \     Ale7hQAWHIEeAvAxtwxEMSfTkuLQcD=i0ORysmInDxdORw4ue2YThj2Id/jmUy6IiEqMYeVpiRq\n
+        \     6spq2ukt=+HHn6aBcYWbsD=e8/wOk0X0=ixZ0HF+xqYgsiiAk==rA4QEgrf+5djbIRZk1wegeIO\n
+        \     po/HZdF4qk32cKBjrrel2AzxfZeGxWNX7ObAE4HACXi3eSdcnm1fIHsoSC+1eDqFkfAIve3Dj/a\n
+        \     afZxrda6zzp3g6IPcHAqleCn7XNcS0v5tk4Fag8Wr5Wq7IipRfixAs+GESGiyugeRvZWN2mtDOL\n
+        \     CGHGGAbpvplw2vjdryVyj7P6bVcwLNgl0t1ufZBaGRBpyontJ1/UQQMew7e2lW=EZr/GxHke8HN\n
+        \     X5vIw9ssx8=LL00fxAuX9SRdcrtVyTYGXORXe9NnldXjBXmLPgwqJAjoBTjTBQxzrQOtdla=/yw\n
+        \     MsDlFWumPz1HAFw7R5zS2VCHrwkLDm=h7k3y+fUvYOx6IYf+MmevANuJT+2qY6s/ilTBNDYq6jJ\n
+        \     8LYpsBo4XpQm1ZleFCIyRldHfmaC5EMxkVQVqCV7X9I6JgzDEetUre25LQTpDa31M=ucVHNWlT+\n
+        \     6rjiLETNeMTWGcuIkLPe/PElmp4llKeFi6g2=E2AKeSDzNycr5eXHEnBuKfEnENXXo6n-----END
+        RSA PRIVATE KEY-----]]>\n    </pem>\n    <state></state>\n  </key>\n</keys>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_path.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_path.yml b/client/tests/fixtures/test_0001_supports_path.yml
new file mode 100644
index 0000000..6ca2841
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_path.yml
@@ -0,0 +1,60 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:16 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:16 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_realms.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_realms.yml b/client/tests/fixtures/test_0001_supports_realms.yml
new file mode 100644
index 0000000..6cfcd81
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_realms.yml
@@ -0,0 +1,152 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/realms
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.00010395050048828125'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '316'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - 2cecd42932362c2e0125c0d5c20c51f1
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<realms>\n  <realm href='http://localhost:3001/api/realms/us'
+        id='us'>\n    <name>United States</name>\n    <state>AVAILABLE</state>\n  </realm>\n
+        \ <realm href='http://localhost:3001/api/realms/eu' id='eu'>\n    <name>Europe</name>\n
+        \   <state>AVAILABLE</state>\n  </realm>\n</realms>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/realms
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0002758502960205078'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '316'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - 2cecd42932362c2e0125c0d5c20c51f1
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<realms>\n  <realm href='http://localhost:3001/api/realms/us'
+        id='us'>\n    <name>United States</name>\n    <state>AVAILABLE</state>\n  </realm>\n
+        \ <realm href='http://localhost:3001/api/realms/eu' id='eu'>\n    <name>Europe</name>\n
+        \   <state>AVAILABLE</state>\n  </realm>\n</realms>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+recorded_with: VCR 2.4.0

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/0439fc75/client/tests/fixtures/test_0001_supports_storage_snapshots.yml
----------------------------------------------------------------------
diff --git a/client/tests/fixtures/test_0001_supports_storage_snapshots.yml b/client/tests/fixtures/test_0001_supports_storage_snapshots.yml
new file mode 100644
index 0000000..3b6a53e
--- /dev/null
+++ b/client/tests/fixtures/test_0001_supports_storage_snapshots.yml
@@ -0,0 +1,164 @@
+---
+http_interactions:
+- request:
+    method: get
+    uri: http://localhost:3001/api
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '1368'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - e43d25244dc2b8ce1da6fa91131507ee
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<api driver='mock' version='1.1.1'>\n  <link href='http://localhost:3001/api/instance_states'
+        rel='instance_states'>\n  </link>\n  <link href='http://localhost:3001/api/storage_volumes'
+        rel='storage_volumes'>\n  </link>\n  <link href='http://localhost:3001/api/metrics'
+        rel='metrics'>\n  </link>\n  <link href='http://localhost:3001/api/hardware_profiles'
+        rel='hardware_profiles'>\n  </link>\n  <link href='http://localhost:3001/api/instances'
+        rel='instances'>\n    <feature name='metrics' rel='create'>\n      <param
+        name='metrics' />\n    </feature>\n    <feature name='realm_filter' rel='index'>\n
+        \     <param name='realm_id' />\n    </feature>\n    <feature name='user_name'
+        rel='create'>\n      <param name='name' />\n    </feature>\n    <feature name='authentication_key'
+        rel='create'>\n      <param name='keyname' />\n    </feature>\n  </link>\n
+        \ <link href='http://localhost:3001/api/realms' rel='realms'>\n  </link>\n
+        \ <link href='http://localhost:3001/api/storage_snapshots' rel='storage_snapshots'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/images' rel='images'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/addresses' rel='addresses'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/drivers' rel='drivers'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/buckets' rel='buckets'>\n
+        \ </link>\n  <link href='http://localhost:3001/api/keys' rel='keys'>\n  </link>\n</api>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/storage_snapshots
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0007281303405761719'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '945'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - f1f01c62af39f845059f14e32919f68b
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<storage_snapshots>\n  <storage_snapshot
+        href='http://localhost:3001/api/storage_snapshots/snap2' id='snap2'>\n    <name>snap2</name>\n
+        \   <created>Wed Jul 29 18:15:24 UTC 2009</created>\n    <storage_volume href='http://localhost:3001/api/storage_volumes/vol2'
+        id='vol2'></storage_volume>\n  </storage_snapshot>\n  <storage_snapshot href='http://localhost:3001/api/storage_snapshots/snap3'
+        id='snap3'>\n    <name>snap3</name>\n    <created>Wed Jul 29 18:15:24 UTC
+        2009</created>\n    <storage_volume href='http://localhost:3001/api/storage_volumes/vol2'
+        id='vol2'></storage_volume>\n  </storage_snapshot>\n  <storage_snapshot href='http://localhost:3001/api/storage_snapshots/snap1'
+        id='snap1'>\n    <name>snap1</name>\n    <created>Wed Jul 29 18:15:24 UTC
+        2009</created>\n    <storage_volume href='http://localhost:3001/api/storage_volumes/vol1'
+        id='vol1'></storage_volume>\n  </storage_snapshot>\n</storage_snapshots>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+- request:
+    method: get
+    uri: http://localhost:3001/api/storage_snapshots
+    body:
+      encoding: US-ASCII
+      string: ''
+    headers:
+      Accept:
+      - application/xml
+      Authorization:
+      - Basic bW9ja3VzZXI6bW9ja3Bhc3N3b3Jk
+      User-Agent:
+      - Faraday v0.8.6
+  response:
+    status:
+      code: 200
+      message: 
+    headers:
+      content-type:
+      - application/xml
+      x-backend-runtime:
+      - '0.0007908344268798828'
+      server:
+      - Apache-Deltacloud/1.1.1
+      x-deltacloud-driver:
+      - mock
+      content-length:
+      - '945'
+      x-content-type-options:
+      - nosniff
+      etag:
+      - f1f01c62af39f845059f14e32919f68b
+      cache-control:
+      - max-age=0, private, must-revalidate
+      date:
+      - Wed, 06 Mar 2013 08:56:19 GMT
+      connection:
+      - close
+    body:
+      encoding: US-ASCII
+      string: ! "<?xml version='1.0' encoding='utf-8' ?>\n<storage_snapshots>\n  <storage_snapshot
+        href='http://localhost:3001/api/storage_snapshots/snap2' id='snap2'>\n    <name>snap2</name>\n
+        \   <created>Wed Jul 29 18:15:24 UTC 2009</created>\n    <storage_volume href='http://localhost:3001/api/storage_volumes/vol2'
+        id='vol2'></storage_volume>\n  </storage_snapshot>\n  <storage_snapshot href='http://localhost:3001/api/storage_snapshots/snap3'
+        id='snap3'>\n    <name>snap3</name>\n    <created>Wed Jul 29 18:15:24 UTC
+        2009</created>\n    <storage_volume href='http://localhost:3001/api/storage_volumes/vol2'
+        id='vol2'></storage_volume>\n  </storage_snapshot>\n  <storage_snapshot href='http://localhost:3001/api/storage_snapshots/snap1'
+        id='snap1'>\n    <name>snap1</name>\n    <created>Wed Jul 29 18:15:24 UTC
+        2009</created>\n    <storage_volume href='http://localhost:3001/api/storage_volumes/vol1'
+        id='vol1'></storage_volume>\n  </storage_snapshot>\n</storage_snapshots>\n"
+    http_version: 
+  recorded_at: Wed, 06 Mar 2013 08:56:19 GMT
+recorded_with: VCR 2.4.0