You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2011/03/30 15:31:13 UTC

[PATCH core 3/3] Added VCR gem to recort Test::Unit

From: Michal Fojtik <mf...@redhat.com>

---
 server/Gemfile                                     |    2 +
 server/tests/common.rb                             |   17 ++-
 server/tests/drivers/rackspace/instances_test.rb   |   31 ++--
 server/tests/drivers/rackspace/setup.rb            |   11 +-
 .../11c8bc2b7e52a46b9a004dd40c2512dd3c489f64.yml   |  196 +++++++++++++++++++
 .../1f3658efb8b59ffcd7e73860fafffa3bd95e02f5.yml   |   79 ++++++++
 .../25f930c42a61cf5e4e966e351590ae20345ad30e.yml   |   79 ++++++++
 .../30691ff4842a33afdbcc653195b1bd4ec93bd644.yml   |   77 ++++++++
 .../3573bb0263b44db6f99a809f92047289108e604f.yml   |  198 ++++++++++++++++++++
 .../3c394d211d025518184ec6a793eb906c901045c1.yml   |  196 +++++++++++++++++++
 .../3f559471f7f352032117bfa6a521415b928d67a5.yml   |   79 ++++++++
 .../57833ca12de5561f349e567f6278da04fefc4880.yml   |  118 ++++++++++++
 .../7115e1f7a3a156de28733eb38670635bd4a67824.yml   |   79 ++++++++
 .../86c5bac6a91239044d567c41ee7061850753aceb.yml   |   77 ++++++++
 .../9357e09a4d550b4e9608549638d13a7bd68b1ceb.yml   |  118 ++++++++++++
 .../9663e49d06662082f6be10bec846857ddb1a2b66.yml   |   79 ++++++++
 .../ad0d40707087d6f351926eada3e98a6dc08a5e38.yml   |   77 ++++++++
 .../b3475ee551d099862e0123ec4d7a38f96f031f5e.yml   |   79 ++++++++
 .../b4db99458905e95872d37bf8484c3af7dc41d264.yml   |   75 ++++++++
 .../c02df61167a57ada65fafcaa985357a91314f930.yml   |   79 ++++++++
 .../c3bd10b31498023723c8c5ff8de08a900469d62b.yml   |   79 ++++++++
 .../cc7ccfa2f6e74357956824051e8360d7f0751004.yml   |   77 ++++++++
 .../ccbb5c591ed1b2c1a3d4233329c9475a9965ba2d.yml   |   79 ++++++++
 .../e306158847e6efd491e1b51770012a76b010d81a.yml   |   75 ++++++++
 .../e5f1a88e1991237fb416428685888ad232604fa1.yml   |   36 ++++
 .../eff069c1da23b5e703dc9894dbb9186a6c3fd8d2.yml   |   79 ++++++++
 .../f2349b91a95d0d93889416e7fc17f2187140247b.yml   |   79 ++++++++
 27 files changed, 2229 insertions(+), 21 deletions(-)
 create mode 100644 server/tests/rackspace/fixtures/11c8bc2b7e52a46b9a004dd40c2512dd3c489f64.yml
 create mode 100644 server/tests/rackspace/fixtures/1f3658efb8b59ffcd7e73860fafffa3bd95e02f5.yml
 create mode 100644 server/tests/rackspace/fixtures/25f930c42a61cf5e4e966e351590ae20345ad30e.yml
 create mode 100644 server/tests/rackspace/fixtures/30691ff4842a33afdbcc653195b1bd4ec93bd644.yml
 create mode 100644 server/tests/rackspace/fixtures/3573bb0263b44db6f99a809f92047289108e604f.yml
 create mode 100644 server/tests/rackspace/fixtures/3c394d211d025518184ec6a793eb906c901045c1.yml
 create mode 100644 server/tests/rackspace/fixtures/3f559471f7f352032117bfa6a521415b928d67a5.yml
 create mode 100644 server/tests/rackspace/fixtures/57833ca12de5561f349e567f6278da04fefc4880.yml
 create mode 100644 server/tests/rackspace/fixtures/7115e1f7a3a156de28733eb38670635bd4a67824.yml
 create mode 100644 server/tests/rackspace/fixtures/86c5bac6a91239044d567c41ee7061850753aceb.yml
 create mode 100644 server/tests/rackspace/fixtures/9357e09a4d550b4e9608549638d13a7bd68b1ceb.yml
 create mode 100644 server/tests/rackspace/fixtures/9663e49d06662082f6be10bec846857ddb1a2b66.yml
 create mode 100644 server/tests/rackspace/fixtures/ad0d40707087d6f351926eada3e98a6dc08a5e38.yml
 create mode 100644 server/tests/rackspace/fixtures/b3475ee551d099862e0123ec4d7a38f96f031f5e.yml
 create mode 100644 server/tests/rackspace/fixtures/b4db99458905e95872d37bf8484c3af7dc41d264.yml
 create mode 100644 server/tests/rackspace/fixtures/c02df61167a57ada65fafcaa985357a91314f930.yml
 create mode 100644 server/tests/rackspace/fixtures/c3bd10b31498023723c8c5ff8de08a900469d62b.yml
 create mode 100644 server/tests/rackspace/fixtures/cc7ccfa2f6e74357956824051e8360d7f0751004.yml
 create mode 100644 server/tests/rackspace/fixtures/ccbb5c591ed1b2c1a3d4233329c9475a9965ba2d.yml
 create mode 100644 server/tests/rackspace/fixtures/e306158847e6efd491e1b51770012a76b010d81a.yml
 create mode 100644 server/tests/rackspace/fixtures/e5f1a88e1991237fb416428685888ad232604fa1.yml
 create mode 100644 server/tests/rackspace/fixtures/eff069c1da23b5e703dc9894dbb9186a6c3fd8d2.yml
 create mode 100644 server/tests/rackspace/fixtures/f2349b91a95d0d93889416e7fc17f2187140247b.yml

diff --git a/server/Gemfile b/server/Gemfile
index 211cec8..98569e3 100644
--- a/server/Gemfile
+++ b/server/Gemfile
@@ -38,6 +38,8 @@ group :test do
   gem 'ruby-debug', :platforms => :mri_18
   gem 'ruby-debug19', :platforms => :mri_19, :require => 'ruby-debug'
   gem "compass"
+  gem "vcr"
+  gem "webmock"
   gem "nokogiri"
   gem "rack-test"
   gem "ci_reporter"
diff --git a/server/tests/common.rb b/server/tests/common.rb
index e134388..d15ba92 100644
--- a/server/tests/common.rb
+++ b/server/tests/common.rb
@@ -60,21 +60,32 @@ module DeltacloudTestCommon
     "#{url}"
   end
 
+  require 'digest/sha1'
+
   def do_request(uri, params=nil, authentication=false, opts={ :format => :xml })
     header 'Accept', accept_header(opts[:format])
-    get create_url(uri), params || {}, (authentication) ? authenticate(opts) : {}
+    VCR.use_cassette(Digest::SHA1.hexdigest("#{uri}-#{params}-#{authentication}")) do
+      get create_url(uri), params || {}, (authentication) ? authenticate(opts) : {}
+    end
   end
 
   def do_xml_request(uri, params=nil, authentication=false)
     header 'Accept', accept_header(:xml)
-    get create_url(uri), params || {}, (authentication) ? authenticate : {}
-    puts "[401] Authentication required to get #{uri}" if last_response.status == 401
+    VCR.use_cassette(Digest::SHA1.hexdigest("#{uri}-#{params}-#{(authentication) ? authenticate : ''}")) do
+      get create_url(uri), params || {}, (authentication) ? authenticate : {}
+    end
     if last_response.status == 200
       @xml_response = false
       @xml_response = Nokogiri::XML(last_response.body)
     end
   end
 
+  def do_post(uri, params, authentication)
+    VCR.use_cassette(Digest::SHA1.hexdigest("#{uri}-#{params}-#{(authentication) ? authenticate : ''}")) do
+      post uri, params, authentication ? authenticate : nil
+    end
+  end
+
   def require_authentication?(uri)
     get uri, {}
     true if last_response.status.eql?(401)
diff --git a/server/tests/drivers/rackspace/instances_test.rb b/server/tests/drivers/rackspace/instances_test.rb
index fc1af4f..2de2ac1 100644
--- a/server/tests/drivers/rackspace/instances_test.rb
+++ b/server/tests/drivers/rackspace/instances_test.rb
@@ -16,7 +16,7 @@ module RackspaceTest
         :'api[driver]' => 'rackspace',
       }
       header 'Accept', accept_header(:xml)
-      post '/api/instances', params, authenticate
+      do_post '/api/instances', params, authenticate
       last_response.status.should == 201 # Created
       @@instance = Nokogiri::XML(last_response.body)
       (@@instance/'instance').length.should > 0
@@ -34,7 +34,7 @@ module RackspaceTest
         :'api[driver]' => 'rackspace',
       }
       header 'Accept', accept_header(:xml)
-      post '/api/instances', params, authenticate
+      do_post '/api/instances', params, authenticate
       last_response.status.should == 201 # Created
       @@instance2 = Nokogiri::XML(last_response.body)
       (@@instance2/'instance').length.should > 0
@@ -80,8 +80,8 @@ module RackspaceTest
     end
 
     def test_04_01_created_instance_goes_to_running_state
-      20.times do
-        do_xml_request "/api;driver=rackspace/instances/#{(@@instance/'instance').first[:id]}", {}, true
+      20.times do |tick|
+        do_xml_request "/api;driver=rackspace/instances/#{(@@instance/'instance').first[:id]}", { :tick => tick}, true
         last_response.status.should_not == 500
         state = (last_xml_response/'instance/state').first.text
         break if state=='RUNNING'
@@ -98,8 +98,8 @@ module RackspaceTest
     end
 
     def test_04_02_created_instance_goes_to_running_state
-      20.times do
-        do_xml_request "/api;driver=rackspace/instances/#{(@@instance2/'instance').first[:id]}", {}, true
+      20.times do |tick|
+        do_xml_request "/api;driver=rackspace/instances/#{(@@instance2/'instance').first[:id]}", { :tick => tick}, true
         last_response.status.should_not == 500
         state = (last_xml_response/'instance/state').first.text
         break if state=='RUNNING'
@@ -120,10 +120,10 @@ module RackspaceTest
         :'api[driver]' => 'rackspace',
       }
       header 'Accept', accept_header(:xml)
-      post "/api/instances/#{(@@instance/'instance').first[:id]}/reboot", params, authenticate
+      do_post "/api/instances/#{(@@instance/'instance').first[:id]}/reboot", params, authenticate
       last_response.status.should == 200
-      20.times do
-        do_xml_request "/api;driver=rackspace/instances/#{(@@instance/'instance').first[:id]}", {}, true
+      20.times do |tick|
+        do_xml_request "/api;driver=rackspace/instances/#{(@@instance/'instance').first[:id]}", { :tick => tick}, true
         last_response.status.should_not == 500
         state = (last_xml_response/'instance/state').first.text
         break if state=='RUNNING'
@@ -136,10 +136,10 @@ module RackspaceTest
         :'api[driver]' => 'rackspace',
       }
       header 'Accept', accept_header(:xml)
-      post "/api/instances/#{(@@instance/'instance').first[:id]}/stop", params, authenticate
+      do_post "/api/instances/#{(@@instance/'instance').first[:id]}/stop", params, authenticate
       last_response.status.should == 200
-      20.times do
-        do_xml_request "/api;driver=rackspace/instances/#{(@@instance/'instance').first[:id]}", {}, true
+      20.times do |tick|
+        do_xml_request "/api;driver=rackspace/instances/#{(@@instance/'instance').first[:id]}", { :tick => tick}, true
         last_response.status.should_not == 500
         break if last_response.status == 404
         sleep(5)
@@ -152,16 +152,15 @@ module RackspaceTest
         :'api[driver]' => 'rackspace',
       }
       header 'Accept', accept_header(:xml)
-      post "/api/instances/#{(@@instance2/'instance').first[:id]}/stop", params, authenticate
+      do_post "/api/instances/#{(@@instance2/'instance').first[:id]}/stop", params, authenticate
       last_response.status.should == 200
-      20.times do
-        do_xml_request "/api;driver=rackspace/instances/#{(@@instance2/'instance').first[:id]}", {}, true
+      20.times do |tick|
+        do_xml_request "/api;driver=rackspace/instances/#{(@@instance2/'instance').first[:id]}", { :tick => tick}, true
         last_response.status.should_not == 500
         break if last_response.status == 404
         sleep(5)
       end
       last_response.status.should == 404
     end
-
   end
 end
diff --git a/server/tests/drivers/rackspace/setup.rb b/server/tests/drivers/rackspace/setup.rb
index 723ed7a..7370d84 100644
--- a/server/tests/drivers/rackspace/setup.rb
+++ b/server/tests/drivers/rackspace/setup.rb
@@ -1,3 +1,10 @@
 ENV['API_DRIVER']   = "rackspace"
-ENV['API_USER']     = '<RACKSPACE_USERNAME>'
-ENV['API_PASSWORD'] = '<RACKSPACE_API_KEY>'
+ENV['API_USER']     = 'michalfojtik'
+ENV['API_PASSWORD'] = '1f82168de18f91542834f1e861f37420'
+
+require 'vcr'
+VCR.config do |c|
+  c.cassette_library_dir = 'tests/rackspace/fixtures/'
+  c.stub_with :webmock
+  c.default_cassette_options = { :record => :new_episodes }
+end
diff --git a/server/tests/rackspace/fixtures/11c8bc2b7e52a46b9a004dd40c2512dd3c489f64.yml b/server/tests/rackspace/fixtures/11c8bc2b7e52a46b9a004dd40c2512dd3c489f64.yml
new file mode 100644
index 0000000..69dfd9c
--- /dev/null
+++ b/server/tests/rackspace/fixtures/11c8bc2b7e52a46b9a004dd40c2512dd3c489f64.yml
@@ -0,0 +1,196 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:20:34 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:20:07 GMT
+      x-varnish: 
+      - "432414148"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:36 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719789
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:20:36 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:20:07 GMT
+      x-varnish: 
+      - "432414591"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:38 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719789
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :delete
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 202
+      message: Accepted
+    headers: 
+      x-varnish: 
+      - "432414739"
+      connection: 
+      - keep-alive
+      content-type: 
+      - text/xml
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:41 GMT
+      content-length: 
+      - "0"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: 
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/1f3658efb8b59ffcd7e73860fafffa3bd95e02f5.yml b/server/tests/rackspace/fixtures/1f3658efb8b59ffcd7e73860fafffa3bd95e02f5.yml
new file mode 100644
index 0000000..10ef60c
--- /dev/null
+++ b/server/tests/rackspace/fixtures/1f3658efb8b59ffcd7e73860fafffa3bd95e02f5.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:38 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/images/detail
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 203
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 16 Mar 2011 16:37:05 GMT
+      x-varnish: 
+      - 432398637 432381864
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:39 GMT
+      content-length: 
+      - "2460"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "493"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/images
+    body: "{\"images\":[{\"id\":58,\"status\":\"ACTIVE\",\"updated\":\"2010-09-17T07:19:20-05:00\",\"name\":\"Windows Server 2008 R2 x64 - MSSQL2K8R2\"},{\"id\":71,\"status\":\"ACTIVE\",\"updated\":\"2010-11-13T17:00:35-06:00\",\"name\":\"Fedora 14\"},{\"id\":62,\"status\":\"ACTIVE\",\"updated\":\"2011-03-16T11:37:05-05:00\",\"name\":\"Red Hat Enterprise Linux 5.5\"},{\"id\":29,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:32-06:00\",\"name\":\"Windows Server 2003 R2 SP2 x86\"},{\"id\":40,\"status\":\"ACTIVE\",\"updated\":\"2010-10-28T11:40:20-05:00\",\"name\":\"Oracle EL Server Release 5 Update 4\"},{\"id\":23,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:05:53-06:00\",\"name\":\"Windows Server 2003 R2 SP2 x64\"},{\"id\":19,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:43:39-06:00\",\"name\":\"Gentoo 10.1\"},{\"id\":31,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:44-06:00\",\"name\":\"Windows Server 2008 SP2 x86\"},{\"id\":57,\"status\":\"ACTIVE\",\"!
 updated\":\"2010-09-17T07:16:25-05:00\",\"name\":\"Windows Server 2008 SP2 x64 - MSSQL2K8R2\"},{\"id\":14362,\"status\":\"ACTIVE\",\"updated\":\"2009-11-06T05:09:40-06:00\",\"name\":\"Ubuntu 9.10 (karmic)\"},{\"id\":49,\"status\":\"ACTIVE\",\"updated\":\"2010-05-04T08:58:18-05:00\",\"name\":\"Ubuntu 10.04 LTS (lucid)\"},{\"id\":55,\"status\":\"ACTIVE\",\"updated\":\"2010-06-29T05:21:55-05:00\",\"name\":\"Arch 2010.05\"},{\"id\":41,\"status\":\"ACTIVE\",\"updated\":\"2010-09-20T09:08:35-05:00\",\"name\":\"Oracle EL JeOS Release 5 Update 3\"},{\"id\":10,\"status\":\"ACTIVE\",\"updated\":\"2009-08-26T14:59:54-05:00\",\"name\":\"Ubuntu 8.04.2 LTS (hardy)\"},{\"id\":187811,\"status\":\"ACTIVE\",\"updated\":\"2009-12-16T01:02:17-06:00\",\"name\":\"CentOS 5.4\"},{\"id\":53,\"status\":\"ACTIVE\",\"updated\":\"2010-06-27T20:13:08-05:00\",\"name\":\"Fedora 13\"},{\"id\":24,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:04-06:00\",\"name\":\"Windows Server 2008 SP2 x64\"},{\"id\!
 ":51,\"status\":\"ACTIVE\",\"updated\":\"2010-05-21T00:01:43-05:00\",\
"name\":\"CentOS 5.5\"},{\"id\":69,\"status\":\"ACTIVE\",\"updated\":\"2010-10-21T15:36:29-05:00\",\"name\":\"Ubuntu 10.10 (maverick)\"},{\"id\":28,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:17-06:00\",\"name\":\"Windows Server 2008 R2 x64\"},{\"id\":56,\"status\":\"ACTIVE\",\"updated\":\"2010-09-17T07:12:56-05:00\",\"name\":\"Windows Server 2008 SP2 x86 - MSSQL2K8R2\"},{\"id\":14,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:37:22-06:00\",\"name\":\"Red Hat Enterprise Linux 5.4\"},{\"id\":4,\"status\":\"ACTIVE\",\"updated\":\"2009-08-26T14:59:52-05:00\",\"name\":\"Debian 5.0 (lenny)\"},{\"progress\":100,\"id\":8766576,\"status\":\"ACTIVE\",\"created\":\"2011-02-28T07:40:50-06:00\",\"updated\":\"2011-03-01T06:33:53-06:00\",\"name\":\"Test11\"}]}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/25f930c42a61cf5e4e966e351590ae20345ad30e.yml b/server/tests/rackspace/fixtures/25f930c42a61cf5e4e966e351590ae20345ad30e.yml
new file mode 100644
index 0000000..7aa2bab
--- /dev/null
+++ b/server/tests/rackspace/fixtures/25f930c42a61cf5e4e966e351590ae20345ad30e.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:36 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/flavors/detail
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 203
+      message: OK
+    headers: 
+      last-modified: 
+      - Tue, 18 Mar 2008 17:54:15 GMT
+      x-varnish: 
+      - 432398346 432381490
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:37 GMT
+      content-length: 
+      - "368"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "499"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /flavors
+    body: "{\"flavors\":[{\"id\":1,\"ram\":256,\"disk\":10,\"name\":\"256 server\"},{\"id\":2,\"ram\":512,\"disk\":20,\"name\":\"512 server\"},{\"id\":3,\"ram\":1024,\"disk\":40,\"name\":\"1GB server\"},{\"id\":4,\"ram\":2048,\"disk\":80,\"name\":\"2GB server\"},{\"id\":5,\"ram\":4096,\"disk\":160,\"name\":\"4GB server\"},{\"id\":6,\"ram\":8192,\"disk\":320,\"name\":\"8GB server\"},{\"id\":7,\"ram\":15872,\"disk\":620,\"name\":\"15.5GB server\"}]}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/30691ff4842a33afdbcc653195b1bd4ec93bd644.yml b/server/tests/rackspace/fixtures/30691ff4842a33afdbcc653195b1bd4ec93bd644.yml
new file mode 100644
index 0000000..88c2115
--- /dev/null
+++ b/server/tests/rackspace/fixtures/30691ff4842a33afdbcc653195b1bd4ec93bd644.yml
@@ -0,0 +1,77 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:18 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:19 GMT
+      x-varnish: 
+      - "432404302"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:20 GMT
+      content-length: 
+      - "242"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"BUILD\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/3573bb0263b44db6f99a809f92047289108e604f.yml b/server/tests/rackspace/fixtures/3573bb0263b44db6f99a809f92047289108e604f.yml
new file mode 100644
index 0000000..516e9ca
--- /dev/null
+++ b/server/tests/rackspace/fixtures/3573bb0263b44db6f99a809f92047289108e604f.yml
@@ -0,0 +1,198 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:42 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:23 GMT
+      x-varnish: 
+      - "432407347"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:47 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719789
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:47 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:23 GMT
+      x-varnish: 
+      - "432407714"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:50 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719789
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :post
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789/action
+    body: "{\"reboot\":{\"type\":\"HARD\"}}"
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+      content-type: 
+      - application/json
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 202
+      message: Accepted
+    headers: 
+      x-varnish: 
+      - "432408150"
+      connection: 
+      - keep-alive
+      content-type: 
+      - text/xml
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:53 GMT
+      content-length: 
+      - "0"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: 
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/3c394d211d025518184ec6a793eb906c901045c1.yml b/server/tests/rackspace/fixtures/3c394d211d025518184ec6a793eb906c901045c1.yml
new file mode 100644
index 0000000..d3c2435
--- /dev/null
+++ b/server/tests/rackspace/fixtures/3c394d211d025518184ec6a793eb906c901045c1.yml
@@ -0,0 +1,196 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:20:14 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:33 GMT
+      x-varnish: 
+      - "432411359"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:16 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719790
+    body: "{\"server\":{\"progress\":100,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:20:16 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:33 GMT
+      x-varnish: 
+      - "432411726"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:18 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719790
+    body: "{\"server\":{\"progress\":100,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :delete
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 202
+      message: Accepted
+    headers: 
+      x-varnish: 
+      - "432411804"
+      connection: 
+      - keep-alive
+      content-type: 
+      - text/xml
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:21 GMT
+      content-length: 
+      - "0"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: 
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/3f559471f7f352032117bfa6a521415b928d67a5.yml b/server/tests/rackspace/fixtures/3f559471f7f352032117bfa6a521415b928d67a5.yml
new file mode 100644
index 0000000..f8d2edf
--- /dev/null
+++ b/server/tests/rackspace/fixtures/3f559471f7f352032117bfa6a521415b928d67a5.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:26 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:23 GMT
+      x-varnish: 
+      - "432405135"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:27 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719789
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/57833ca12de5561f349e567f6278da04fefc4880.yml b/server/tests/rackspace/fixtures/57833ca12de5561f349e567f6278da04fefc4880.yml
new file mode 100644
index 0000000..e5436be
--- /dev/null
+++ b/server/tests/rackspace/fixtures/57833ca12de5561f349e567f6278da04fefc4880.yml
@@ -0,0 +1,118 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:49 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :post
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers
+    body: "{\"server\":{\"imageId\":71,\"flavorId\":2,\"personality\":null,\"name\":\"Wed Mar 30 15:18:49 +0200 2011\"}}"
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+      content-type: 
+      - application/json
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 202
+      message: Accepted
+    headers: 
+      x-varnish: 
+      - "432400102"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:53 GMT
+      content-length: 
+      - "286"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":0,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"BUILD\",\"adminPass\":\"WedMar30151849020020112jS3a6rTN\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:18:53 GMT
+      x-varnish: 
+      - "432400262"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:55 GMT
+      content-length: 
+      - "240"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":0,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"BUILD\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/7115e1f7a3a156de28733eb38670635bd4a67824.yml b/server/tests/rackspace/fixtures/7115e1f7a3a156de28733eb38670635bd4a67824.yml
new file mode 100644
index 0000000..21e8ec9
--- /dev/null
+++ b/server/tests/rackspace/fixtures/7115e1f7a3a156de28733eb38670635bd4a67824.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:31 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/flavors/detail
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 203
+      message: OK
+    headers: 
+      last-modified: 
+      - Tue, 18 Mar 2008 17:54:15 GMT
+      x-varnish: 
+      - 432397622 432381490
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:32 GMT
+      content-length: 
+      - "368"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "494"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /flavors
+    body: "{\"flavors\":[{\"id\":1,\"ram\":256,\"disk\":10,\"name\":\"256 server\"},{\"id\":2,\"ram\":512,\"disk\":20,\"name\":\"512 server\"},{\"id\":3,\"ram\":1024,\"disk\":40,\"name\":\"1GB server\"},{\"id\":4,\"ram\":2048,\"disk\":80,\"name\":\"2GB server\"},{\"id\":5,\"ram\":4096,\"disk\":160,\"name\":\"4GB server\"},{\"id\":6,\"ram\":8192,\"disk\":320,\"name\":\"8GB server\"},{\"id\":7,\"ram\":15872,\"disk\":620,\"name\":\"15.5GB server\"}]}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/86c5bac6a91239044d567c41ee7061850753aceb.yml b/server/tests/rackspace/fixtures/86c5bac6a91239044d567c41ee7061850753aceb.yml
new file mode 100644
index 0000000..6c0d031
--- /dev/null
+++ b/server/tests/rackspace/fixtures/86c5bac6a91239044d567c41ee7061850753aceb.yml
@@ -0,0 +1,77 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:56 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:18:48 GMT
+      x-varnish: 
+      - "432400791"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:57 GMT
+      content-length: 
+      - "240"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":0,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"BUILD\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/9357e09a4d550b4e9608549638d13a7bd68b1ceb.yml b/server/tests/rackspace/fixtures/9357e09a4d550b4e9608549638d13a7bd68b1ceb.yml
new file mode 100644
index 0000000..30c7e87
--- /dev/null
+++ b/server/tests/rackspace/fixtures/9357e09a4d550b4e9608549638d13a7bd68b1ceb.yml
@@ -0,0 +1,118 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:42 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :post
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers
+    body: "{\"server\":{\"imageId\":71,\"flavorId\":1,\"personality\":null,\"name\":\"Wed Mar 30 15:18:42 +0200 2011\"}}"
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+      content-type: 
+      - application/json
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 202
+      message: Accepted
+    headers: 
+      x-varnish: 
+      - "432399438"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:46 GMT
+      content-length: 
+      - "286"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":0,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"BUILD\",\"adminPass\":\"WedMar30151842020020116LG4l5Mux\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:18:46 GMT
+      x-varnish: 
+      - "432399798"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:48 GMT
+      content-length: 
+      - "240"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":0,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"BUILD\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/9663e49d06662082f6be10bec846857ddb1a2b66.yml b/server/tests/rackspace/fixtures/9663e49d06662082f6be10bec846857ddb1a2b66.yml
new file mode 100644
index 0000000..340a3f5
--- /dev/null
+++ b/server/tests/rackspace/fixtures/9663e49d06662082f6be10bec846857ddb1a2b66.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:28 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:23 GMT
+      x-varnish: 
+      - "432405428"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:29 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719789
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/ad0d40707087d6f351926eada3e98a6dc08a5e38.yml b/server/tests/rackspace/fixtures/ad0d40707087d6f351926eada3e98a6dc08a5e38.yml
new file mode 100644
index 0000000..79f25d7
--- /dev/null
+++ b/server/tests/rackspace/fixtures/ad0d40707087d6f351926eada3e98a6dc08a5e38.yml
@@ -0,0 +1,77 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:03 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:01 GMT
+      x-varnish: 
+      - "432402048"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:05 GMT
+      content-length: 
+      - "242"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"BUILD\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/b3475ee551d099862e0123ec4d7a38f96f031f5e.yml b/server/tests/rackspace/fixtures/b3475ee551d099862e0123ec4d7a38f96f031f5e.yml
new file mode 100644
index 0000000..481727e
--- /dev/null
+++ b/server/tests/rackspace/fixtures/b3475ee551d099862e0123ec4d7a38f96f031f5e.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:35 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/flavors/detail
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 203
+      message: OK
+    headers: 
+      last-modified: 
+      - Tue, 18 Mar 2008 17:54:15 GMT
+      x-varnish: 
+      - 432398201 432381490
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:35 GMT
+      content-length: 
+      - "368"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "497"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /flavors
+    body: "{\"flavors\":[{\"id\":1,\"ram\":256,\"disk\":10,\"name\":\"256 server\"},{\"id\":2,\"ram\":512,\"disk\":20,\"name\":\"512 server\"},{\"id\":3,\"ram\":1024,\"disk\":40,\"name\":\"1GB server\"},{\"id\":4,\"ram\":2048,\"disk\":80,\"name\":\"2GB server\"},{\"id\":5,\"ram\":4096,\"disk\":160,\"name\":\"4GB server\"},{\"id\":6,\"ram\":8192,\"disk\":320,\"name\":\"8GB server\"},{\"id\":7,\"ram\":15872,\"disk\":620,\"name\":\"15.5GB server\"}]}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/b4db99458905e95872d37bf8484c3af7dc41d264.yml b/server/tests/rackspace/fixtures/b4db99458905e95872d37bf8484c3af7dc41d264.yml
new file mode 100644
index 0000000..8d30f2b
--- /dev/null
+++ b/server/tests/rackspace/fixtures/b4db99458905e95872d37bf8484c3af7dc41d264.yml
@@ -0,0 +1,75 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:21:07 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 404
+      message: Not Found
+    headers: 
+      x-varnish: 
+      - "432419189"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:21:08 GMT
+      content-length: 
+      - "129"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"itemNotFound\":{\"message\":\"Not Found\",\"details\":\"com.rackspace.cloud.service.servers.ItemNotFoundFault:  Not Found\",\"code\":404}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/c02df61167a57ada65fafcaa985357a91314f930.yml b/server/tests/rackspace/fixtures/c02df61167a57ada65fafcaa985357a91314f930.yml
new file mode 100644
index 0000000..6b0224e
--- /dev/null
+++ b/server/tests/rackspace/fixtures/c02df61167a57ada65fafcaa985357a91314f930.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:37 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:33 GMT
+      x-varnish: 
+      - "432406663"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:39 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719790
+    body: "{\"server\":{\"progress\":100,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/c3bd10b31498023723c8c5ff8de08a900469d62b.yml b/server/tests/rackspace/fixtures/c3bd10b31498023723c8c5ff8de08a900469d62b.yml
new file mode 100644
index 0000000..f2a7f2d
--- /dev/null
+++ b/server/tests/rackspace/fixtures/c3bd10b31498023723c8c5ff8de08a900469d62b.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:30 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:31 GMT
+      x-varnish: 
+      - "432405789"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:32 GMT
+      content-length: 
+      - "244"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719790
+    body: "{\"server\":{\"progress\":100,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"UNKNOWN\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/cc7ccfa2f6e74357956824051e8360d7f0751004.yml b/server/tests/rackspace/fixtures/cc7ccfa2f6e74357956824051e8360d7f0751004.yml
new file mode 100644
index 0000000..8fcc153
--- /dev/null
+++ b/server/tests/rackspace/fixtures/cc7ccfa2f6e74357956824051e8360d7f0751004.yml
@@ -0,0 +1,77 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:11 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719789
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:01 GMT
+      x-varnish: 
+      - "432403002"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:12 GMT
+      content-length: 
+      - "242"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"server\":{\"progress\":100,\"id\":719789,\"imageId\":71,\"flavorId\":1,\"status\":\"BUILD\",\"name\":\"WedMar3015184202002011\",\"hostId\":\"67694fd94dffda406a0456fcada68afb\",\"addresses\":{\"public\":[\"50.56.107.227\"],\"private\":[\"10.181.184.203\"]},\"metadata\":{}}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/ccbb5c591ed1b2c1a3d4233329c9475a9965ba2d.yml b/server/tests/rackspace/fixtures/ccbb5c591ed1b2c1a3d4233329c9475a9965ba2d.yml
new file mode 100644
index 0000000..a2c7b5a
--- /dev/null
+++ b/server/tests/rackspace/fixtures/ccbb5c591ed1b2c1a3d4233329c9475a9965ba2d.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:40 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/images/detail
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 203
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 16 Mar 2011 16:37:05 GMT
+      x-varnish: 
+      - 432399321 432381864
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:41 GMT
+      content-length: 
+      - "2460"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "495"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/images
+    body: "{\"images\":[{\"id\":58,\"status\":\"ACTIVE\",\"updated\":\"2010-09-17T07:19:20-05:00\",\"name\":\"Windows Server 2008 R2 x64 - MSSQL2K8R2\"},{\"id\":71,\"status\":\"ACTIVE\",\"updated\":\"2010-11-13T17:00:35-06:00\",\"name\":\"Fedora 14\"},{\"id\":62,\"status\":\"ACTIVE\",\"updated\":\"2011-03-16T11:37:05-05:00\",\"name\":\"Red Hat Enterprise Linux 5.5\"},{\"id\":29,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:32-06:00\",\"name\":\"Windows Server 2003 R2 SP2 x86\"},{\"id\":40,\"status\":\"ACTIVE\",\"updated\":\"2010-10-28T11:40:20-05:00\",\"name\":\"Oracle EL Server Release 5 Update 4\"},{\"id\":23,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:05:53-06:00\",\"name\":\"Windows Server 2003 R2 SP2 x64\"},{\"id\":19,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:43:39-06:00\",\"name\":\"Gentoo 10.1\"},{\"id\":31,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:44-06:00\",\"name\":\"Windows Server 2008 SP2 x86\"},{\"id\":57,\"status\":\"ACTIVE\",\"!
 updated\":\"2010-09-17T07:16:25-05:00\",\"name\":\"Windows Server 2008 SP2 x64 - MSSQL2K8R2\"},{\"id\":14362,\"status\":\"ACTIVE\",\"updated\":\"2009-11-06T05:09:40-06:00\",\"name\":\"Ubuntu 9.10 (karmic)\"},{\"id\":49,\"status\":\"ACTIVE\",\"updated\":\"2010-05-04T08:58:18-05:00\",\"name\":\"Ubuntu 10.04 LTS (lucid)\"},{\"id\":55,\"status\":\"ACTIVE\",\"updated\":\"2010-06-29T05:21:55-05:00\",\"name\":\"Arch 2010.05\"},{\"id\":41,\"status\":\"ACTIVE\",\"updated\":\"2010-09-20T09:08:35-05:00\",\"name\":\"Oracle EL JeOS Release 5 Update 3\"},{\"id\":10,\"status\":\"ACTIVE\",\"updated\":\"2009-08-26T14:59:54-05:00\",\"name\":\"Ubuntu 8.04.2 LTS (hardy)\"},{\"id\":187811,\"status\":\"ACTIVE\",\"updated\":\"2009-12-16T01:02:17-06:00\",\"name\":\"CentOS 5.4\"},{\"id\":53,\"status\":\"ACTIVE\",\"updated\":\"2010-06-27T20:13:08-05:00\",\"name\":\"Fedora 13\"},{\"id\":24,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:04-06:00\",\"name\":\"Windows Server 2008 SP2 x64\"},{\"id\!
 ":51,\"status\":\"ACTIVE\",\"updated\":\"2010-05-21T00:01:43-05:00\",\
"name\":\"CentOS 5.5\"},{\"id\":69,\"status\":\"ACTIVE\",\"updated\":\"2010-10-21T15:36:29-05:00\",\"name\":\"Ubuntu 10.10 (maverick)\"},{\"id\":28,\"status\":\"ACTIVE\",\"updated\":\"2010-01-26T12:07:17-06:00\",\"name\":\"Windows Server 2008 R2 x64\"},{\"id\":56,\"status\":\"ACTIVE\",\"updated\":\"2010-09-17T07:12:56-05:00\",\"name\":\"Windows Server 2008 SP2 x86 - MSSQL2K8R2\"},{\"id\":14,\"status\":\"ACTIVE\",\"updated\":\"2009-12-15T15:37:22-06:00\",\"name\":\"Red Hat Enterprise Linux 5.4\"},{\"id\":4,\"status\":\"ACTIVE\",\"updated\":\"2009-08-26T14:59:52-05:00\",\"name\":\"Debian 5.0 (lenny)\"},{\"progress\":100,\"id\":8766576,\"status\":\"ACTIVE\",\"created\":\"2011-02-28T07:40:50-06:00\",\"updated\":\"2011-03-01T06:33:53-06:00\",\"name\":\"Test11\"}]}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/e306158847e6efd491e1b51770012a76b010d81a.yml b/server/tests/rackspace/fixtures/e306158847e6efd491e1b51770012a76b010d81a.yml
new file mode 100644
index 0000000..f9fab65
--- /dev/null
+++ b/server/tests/rackspace/fixtures/e306158847e6efd491e1b51770012a76b010d81a.yml
@@ -0,0 +1,75 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:20:32 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 404
+      message: Not Found
+    headers: 
+      x-varnish: 
+      - "432413852"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:20:33 GMT
+      content-length: 
+      - "129"
+      cache-control: 
+      - no-cache
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+    body: "{\"itemNotFound\":{\"message\":\"Not Found\",\"details\":\"com.rackspace.cloud.service.servers.ItemNotFoundFault:  Not Found\",\"code\":404}}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/e5f1a88e1991237fb416428685888ad232604fa1.yml b/server/tests/rackspace/fixtures/e5f1a88e1991237fb416428685888ad232604fa1.yml
new file mode 100644
index 0000000..4fc5511
--- /dev/null
+++ b/server/tests/rackspace/fixtures/e5f1a88e1991237fb416428685888ad232604fa1.yml
@@ -0,0 +1,36 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:31 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/eff069c1da23b5e703dc9894dbb9186a6c3fd8d2.yml b/server/tests/rackspace/fixtures/eff069c1da23b5e703dc9894dbb9186a6c3fd8d2.yml
new file mode 100644
index 0000000..9f557a2
--- /dev/null
+++ b/server/tests/rackspace/fixtures/eff069c1da23b5e703dc9894dbb9186a6c3fd8d2.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:18:33 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/flavors/detail
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 203
+      message: OK
+    headers: 
+      last-modified: 
+      - Tue, 18 Mar 2008 17:54:15 GMT
+      x-varnish: 
+      - 432397912 432381490
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:18:34 GMT
+      content-length: 
+      - "368"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "496"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /flavors
+    body: "{\"flavors\":[{\"id\":1,\"ram\":256,\"disk\":10,\"name\":\"256 server\"},{\"id\":2,\"ram\":512,\"disk\":20,\"name\":\"512 server\"},{\"id\":3,\"ram\":1024,\"disk\":40,\"name\":\"1GB server\"},{\"id\":4,\"ram\":2048,\"disk\":80,\"name\":\"2GB server\"},{\"id\":5,\"ram\":4096,\"disk\":160,\"name\":\"4GB server\"},{\"id\":6,\"ram\":8192,\"disk\":320,\"name\":\"8GB server\"},{\"id\":7,\"ram\":15872,\"disk\":620,\"name\":\"15.5GB server\"}]}"
+    http_version: "1.1"
diff --git a/server/tests/rackspace/fixtures/f2349b91a95d0d93889416e7fc17f2187140247b.yml b/server/tests/rackspace/fixtures/f2349b91a95d0d93889416e7fc17f2187140247b.yml
new file mode 100644
index 0000000..1ddb93c
--- /dev/null
+++ b/server/tests/rackspace/fixtures/f2349b91a95d0d93889416e7fc17f2187140247b.yml
@@ -0,0 +1,79 @@
+--- 
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://auth.api.rackspacecloud.com:443/v1.0
+    body: 
+    headers: 
+      x-auth-user: 
+      - michalfojtik
+      x-auth-key: 
+      - 1f82168de18f91542834f1e861f37420
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 204
+      message: No Content
+    headers: 
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      content-type: 
+      - application/octet-stream
+      server: 
+      - Apache/2.2.3 (Mosso Engineering)
+      date: 
+      - Wed, 30 Mar 2011 13:19:40 GMT
+      x-cdn-management-url: 
+      - https://cdn2.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      content-length: 
+      - "0"
+      x-server-management-url: 
+      - https://servers.api.rackspacecloud.com/v1.0/561604
+      x-storage-url: 
+      - https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_317909a7-4980-462e-b37c-42da54393ba5
+      x-storage-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+    body: 
+    http_version: "1.1"
+- !ruby/struct:VCR::HTTPInteraction 
+  request: !ruby/struct:VCR::Request 
+    method: :get
+    uri: https://servers.api.rackspacecloud.com:443/v1.0/561604/servers/719790
+    body: 
+    headers: 
+      accept: 
+      - application/json
+      x-auth-token: 
+      - 04301cb7-242b-4277-8735-2b81a227fd50
+      user-agent: 
+      - CloudServers Ruby API 0.4.1
+  response: !ruby/struct:VCR::Response 
+    status: !ruby/struct:VCR::ResponseStatus 
+      code: 200
+      message: OK
+    headers: 
+      last-modified: 
+      - Wed, 30 Mar 2011 13:19:33 GMT
+      x-varnish: 
+      - "432406842"
+      connection: 
+      - keep-alive
+      content-type: 
+      - application/json
+      via: 
+      - 1.1 varnish
+      server: 
+      - Apache-Coyote/1.1
+      date: 
+      - Wed, 30 Mar 2011 13:19:42 GMT
+      content-length: 
+      - "243"
+      cache-control: 
+      - s-maxage=1800
+      age: 
+      - "0"
+      vary: 
+      - Accept, Accept-Encoding, X-Auth-Token
+      x-purge-key: 
+      - /561604/servers/719790
+    body: "{\"server\":{\"progress\":100,\"id\":719790,\"imageId\":71,\"flavorId\":2,\"status\":\"ACTIVE\",\"name\":\"WedMar3015184902002011\",\"hostId\":\"e714c2314598ddf91387d2a3099dc0bb\",\"addresses\":{\"public\":[\"50.56.107.228\"],\"private\":[\"10.181.184.204\"]},\"metadata\":{}}}"
+    http_version: "1.1"
-- 
1.7.4.1