From 6784b0a6f99754ecb3c9a13c83b76cb7e77299b9 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Wed, 22 May 2013 15:28:30 -0500 Subject: [PATCH 01/17] Initial tests for flavor list. V1 and V2. --- .gitignore | 2 + Gemfile | 4 + knife-rackspace.gemspec | 6 + .../v1_api/should_list_server_flavors.yml | 471 ++++++++++++++++++ .../v2_api/should_list_server_flavors.yml | 345 +++++++++++++ spec/integration/v1_integration_spec.rb | 27 + spec/integration/v2_integration_spec.rb | 25 + spec/integration_spec_helper.rb | 65 +++ spec/spec_helper.rb | 3 + 9 files changed, 948 insertions(+) create mode 100644 spec/cassettes/v1_api/should_list_server_flavors.yml create mode 100644 spec/cassettes/v2_api/should_list_server_flavors.yml create mode 100644 spec/integration/v1_integration_spec.rb create mode 100644 spec/integration/v2_integration_spec.rb create mode 100644 spec/integration_spec_helper.rb create mode 100644 spec/spec_helper.rb diff --git a/.gitignore b/.gitignore index 7e46b43..6add70c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ spec/reports .config InstalledFiles .bundle +.rackspace_cloud_credentials +*.lock # YARD artifacts .yardoc diff --git a/Gemfile b/Gemfile index a07740c..a85aba2 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,8 @@ source "http://rubygems.org" +group :development, :test do + gem "knife-dsl", :git => 'git://github.com/maxlinc/knife-dsl.git', :branch => 'io_capture_fix' +end + # Specify your gem's dependencies in knife-rackspace.gemspec gemspec diff --git a/knife-rackspace.gemspec b/knife-rackspace.gemspec index 45bd431..8a91b93 100644 --- a/knife-rackspace.gemspec +++ b/knife-rackspace.gemspec @@ -20,4 +20,10 @@ Gem::Specification.new do |s| s.add_dependency "chef", ">= 0.10.10" s.require_paths = ["lib"] + # In Gemfile because I'm using a fork on Github. Hopefully pull request will be merged and a new gem will be released soon. + # s.add_development_dependency "knife-dsl" + s.add_development_dependency "rspec" + s.add_development_dependency "vcr" + s.add_development_dependency "pry-debugger" + s.add_development_dependency "ansi" end diff --git a/spec/cassettes/v1_api/should_list_server_flavors.yml b/spec/cassettes/v1_api/should_list_server_flavors.yml new file mode 100644 index 0000000..5590774 --- /dev/null +++ b/spec/cassettes/v1_api/should_list_server_flavors.yml @@ -0,0 +1,471 @@ +--- +http_interactions: +- request: + method: get + uri: https://auth.api.rackspacecloud.com/v1.0 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + X-Auth-Key: + - + X-Auth-User: + - + response: + status: + code: 204 + message: + headers: + Server: + - nginx/0.8.55 + vary: + - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, + X-Auth-User + X-Storage-Url: + - https://storage101.dfw1.clouddrive.com/v1/ + Cache-Control: + - s-maxage=86849 + X-Cloud-Auth: + - 'true' + Date: + - Fri, 24 May 2013 14:28:00 GMT + Front-End-Https: + - 'on' + X-Auth-Token: + response-source: + - cloud-auth + X-Storage-Token: + X-Server-Management-Url: + - https://servers.api.rackspacecloud.com/v1.0/ + VIA: + - 1.0 Repose (Repose/2.3.5) + Connection: + - keep-alive + X-CDN-Management-Url: + - https://cdn1.clouddrive.com/v1/ + body: + encoding: UTF-8 + string: '' + http_version: + recorded_at: Fri, 24 May 2013 14:28:05 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/detail.json?ignore_awful_caching1369405685 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Tue, 06 Dec 2011 17:31:55 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '422' + Date: + - Fri, 24 May 2013 14:28:01 GMT + X-Varnish: + - '1284677487' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"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"},{"id":8,"ram":30720,"disk":1200,"name":"30GB + server"}]}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:05 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/1.json?ignore_awful_caching1369405685 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Wed, 19 Sep 2007 18:24:59 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '59' + Date: + - Fri, 24 May 2013 14:28:01 GMT + X-Varnish: + - '1284677501' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:06 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/2.json?ignore_awful_caching1369405686 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Wed, 19 Sep 2007 18:25:10 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '59' + Date: + - Fri, 24 May 2013 14:28:02 GMT + X-Varnish: + - '1284677515' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:06 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/3.json?ignore_awful_caching1369405686 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Fri, 21 Sep 2007 23:11:39 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '60' + Date: + - Fri, 24 May 2013 14:28:02 GMT + X-Varnish: + - '1466376357' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:07 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/4.json?ignore_awful_caching1369405687 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Wed, 19 Sep 2007 18:25:33 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '60' + Date: + - Fri, 24 May 2013 14:28:03 GMT + X-Varnish: + - '1466376378' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:07 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/5.json?ignore_awful_caching1369405687 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Tue, 18 Mar 2008 17:54:15 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '61' + Date: + - Fri, 24 May 2013 14:28:03 GMT + X-Varnish: + - '1466376396' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:08 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/6.json?ignore_awful_caching1369405688 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Mon, 28 Jan 2008 13:35:30 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '61' + Date: + - Fri, 24 May 2013 14:28:03 GMT + X-Varnish: + - '1466376414' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:08 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/7.json?ignore_awful_caching1369405688 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Fri, 01 Apr 2011 00:02:01 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '65' + Date: + - Fri, 24 May 2013 14:28:04 GMT + X-Varnish: + - '1284677607' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:08 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/8.json?ignore_awful_caching1369405688 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Tue, 06 Dec 2011 17:31:55 GMT + X-PURGE-KEY: + - /flavors + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '64' + Date: + - Fri, 24 May 2013 14:28:05 GMT + X-Varnish: + - '1284677625' + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:09 GMT +recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_server_flavors.yml b/spec/cassettes/v2_api/should_list_server_flavors.yml new file mode 100644 index 0000000..245fa0e --- /dev/null +++ b/spec/cassettes/v2_api/should_list_server_flavors.yml @@ -0,0 +1,345 @@ +--- +http_interactions: +- request: + method: get + uri: https://auth.api.rackspacecloud.com/v1.0 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + X-Auth-Key: + - + X-Auth-User: + - + response: + status: + code: 204 + message: + headers: + Server: + - nginx/0.8.55 + vary: + - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, + X-Auth-User + X-Storage-Url: + - https://storage101.dfw1.clouddrive.com/v1/ + Cache-Control: + - s-maxage=86844 + X-Cloud-Auth: + - 'true' + Date: + - Fri, 24 May 2013 14:28:05 GMT + Front-End-Https: + - 'on' + X-Auth-Token: + response-source: + - cloud-auth + X-Storage-Token: + X-Server-Management-Url: + - https://servers.api.rackspacecloud.com/v1.0/ + VIA: + - 1.0 Repose (Repose/2.3.5) + Connection: + - keep-alive + X-CDN-Management-Url: + - https://cdn1.clouddrive.com/v1/ + body: + encoding: UTF-8 + string: '' + http_version: + recorded_at: Fri, 24 May 2013 14:28:10 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:06 GMT + Content-Length: + - '1697' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/2", + "rel": "bookmark"}], "name": "512MB Standard Instance"}, {"id": "3", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/3", + "rel": "bookmark"}], "name": "1GB Standard Instance"}, {"id": "4", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/4", + "rel": "bookmark"}], "name": "2GB Standard Instance"}, {"id": "5", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/5", + "rel": "bookmark"}], "name": "4GB Standard Instance"}, {"id": "6", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/6", + "rel": "bookmark"}], "name": "8GB Standard Instance"}, {"id": "7", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/7", + "rel": "bookmark"}], "name": "15GB Standard Instance"}, {"id": "8", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/8", + "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:10 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/2 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:06 GMT + Content-Length: + - '353' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "512MB Standard Instance", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//flavors/2", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/2", + "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, + "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:11 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/3 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:07 GMT + Content-Length: + - '353' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/3", + "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": + 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:12 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/4 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:08 GMT + Content-Length: + - '353' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/4", + "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": + 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:12 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/5 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:08 GMT + Content-Length: + - '355' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/5", + "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": + 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:13 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/6 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:09 GMT + Content-Length: + - '355' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/6", + "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": + 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:14 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/7 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:10 GMT + Content-Length: + - '357' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "15GB Standard Instance", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//flavors/7", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/7", + "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": + 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:14 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/8 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 14:28:10 GMT + Content-Length: + - '358' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"flavor": {"name": "30GB Standard Instance", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//flavors/8", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/8", + "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": + 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' + http_version: + recorded_at: Fri, 24 May 2013 14:28:14 GMT +recorded_with: VCR 2.5.0 diff --git a/spec/integration/v1_integration_spec.rb b/spec/integration/v1_integration_spec.rb new file mode 100644 index 0000000..efd50d1 --- /dev/null +++ b/spec/integration/v1_integration_spec.rb @@ -0,0 +1,27 @@ +require 'integration_spec_helper' +require 'fog' +require 'knife/dsl' + +include Chef::Knife::DSL + +describe 'v1_api' do + before do + Chef::Config[:knife][:rackspace_version] = 'v1' + end + + it 'should list server flavors', :vcr do + stdout, stderr, status = knife_capture('rackspace flavor list') + status.should == 0 + stdout.should match_output(""" +ID Name Architecture RAM Disk +1 256 server 64-bit 256 10 GB +2 512 server 64-bit 512 20 GB +3 1GB server 64-bit 1024 40 GB +4 2GB server 64-bit 2048 80 GB +5 4GB server 64-bit 4096 160 GB +6 8GB server 64-bit 8192 320 GB +7 15.5GB server 64-bit 15872 620 GB +8 30GB server 64-bit 30720 1200 GB +""") + end +end diff --git a/spec/integration/v2_integration_spec.rb b/spec/integration/v2_integration_spec.rb new file mode 100644 index 0000000..b80b6c4 --- /dev/null +++ b/spec/integration/v2_integration_spec.rb @@ -0,0 +1,25 @@ +require 'integration_spec_helper' +require 'fog' +require 'knife/dsl' + +include Chef::Knife::DSL + +describe 'v2_api' do + before do + Chef::Config[:knife][:rackspace_version] = nil #v2 by default + end + it 'should list server flavors', :vcr do + stdout, stderr, status = knife_capture('rackspace flavor list') + status.should == 0 + stdout.should match_output(""" +ID Name VCPUs RAM Disk +2 512MB Standard Instance 1 512 20 GB +3 1GB Standard Instance 1 1024 40 GB +4 2GB Standard Instance 2 2048 80 GB +5 4GB Standard Instance 2 4096 160 GB +6 8GB Standard Instance 4 8192 320 GB +7 15GB Standard Instance 6 15360 620 GB +8 30GB Standard Instance 8 30720 1200 GB +""") + end +end diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb new file mode 100644 index 0000000..be4da8d --- /dev/null +++ b/spec/integration_spec_helper.rb @@ -0,0 +1,65 @@ +require 'spec_helper' +require 'vcr' +require 'ansi/code' +require 'ansi/diff' + +Chef::Config[:knife][:rackspace_api_username] = "#{ENV['OS_USERNAME']}" +Chef::Config[:knife][:rackspace_api_key] = "#{ENV['OS_PASSWORD']}" +# Chef::Config[:knife][:rackspace_version] = "#{ENV['RS_VERSION']}" + +VCR.configure do |c| + c.cassette_library_dir = 'spec/cassettes' + c.hook_into :excon + c.configure_rspec_metadata! + + c.filter_sensitive_data('') { Chef::Config[:knife][:rackspace_api_username] } + c.filter_sensitive_data('') { Chef::Config[:knife][:rackspace_api_key] } + c.filter_sensitive_data('') { ENV['RS_CDN_TENANT_NAME'] } + c.filter_sensitive_data('') { ENV['RS_TENANT_ID'] } + + c.before_record do |interaction| + filter_headers(interaction.request.headers, /X-\w*-Token/, '') + filter_headers(interaction.response.headers, /X-\w*-Token/, '') + filter_headers(interaction.request.headers, 'X-Compute-Request-Id', '') + filter_headers(interaction.response.headers, 'X-Compute-Request-Id', '') + end + + c.default_cassette_options = { + # Ignores cache busting parameters. + :match_requests_on => [:host, :path] + } +end + +def filter_headers(headers, pattern, placeholder) + sensitive_tokens = headers.select{|key| key.to_s.match(pattern)} + sensitive_tokens.each do |key, value| + headers[key] = placeholder + end +end + +RSpec.configure do |c| + # so we can use :vcr rather than :vcr => true; + # in RSpec 3 this will no longer be necessary. + c.treat_symbols_as_metadata_keys_with_true_values = true +end + +def clean_output(output) + ANSI.unansi(output).gsub(/\s+$/,'') +end + +RSpec::Matchers.define :match_output do |expected_output| + match do |actual_output| + clean_output(actual_output) == expected_output.strip + end + # Nice when it works, but has ANSI::Diff has some bugs that prevent it from showing any output + failure_message_for_should do |actual_output| + puts clean_output(actual_output) + puts + puts expected_output + # output = clean_output actual_output + # ANSI::Diff.new(output, expected_output) + end + description do + 'Compare actual and expected output, ignoring ansi color and trailing whitespace' + end +end \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..20f7475 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,3 @@ +$:.unshift File.expand_path('../../lib', __FILE__) +require 'chef/knife/bootstrap' +require 'chef/knife/rackspace_base' From ace91a160ce6c5f44d956bb864d08eede175845f Mon Sep 17 00:00:00 2001 From: mlincoln Date: Fri, 24 May 2013 14:10:58 -0400 Subject: [PATCH 02/17] Image list tests, plus filtering some more transient data. --- spec/cassettes/v1_api/should_list_images.yml | 123 ++++++++ .../v1_api/should_list_server_flavors.yml | 87 +++--- spec/cassettes/v2_api/should_list_images.yml | 287 ++++++++++++++++++ .../v2_api/should_list_server_flavors.yml | 38 +-- spec/integration/v1_integration_spec.rb | 8 + spec/integration/v2_integration_spec.rb | 9 + spec/integration_spec_helper.rb | 21 +- 7 files changed, 498 insertions(+), 75 deletions(-) create mode 100644 spec/cassettes/v1_api/should_list_images.yml create mode 100644 spec/cassettes/v2_api/should_list_images.yml diff --git a/spec/cassettes/v1_api/should_list_images.yml b/spec/cassettes/v1_api/should_list_images.yml new file mode 100644 index 0000000..022421e --- /dev/null +++ b/spec/cassettes/v1_api/should_list_images.yml @@ -0,0 +1,123 @@ +--- +http_interactions: +- request: + method: get + uri: https://auth.api.rackspacecloud.com/v1.0 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + X-Auth-Key: + - + X-Auth-User: + - + response: + status: + code: 204 + message: + headers: + Server: + - nginx/0.8.55 + vary: + - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, + X-Auth-User + X-Storage-Url: + - https://storage101.dfw1.clouddrive.com/v1/ + Cache-Control: + - s-maxage=73634 + X-Cloud-Auth: + - 'true' + Date: + - Fri, 24 May 2013 18:08:15 GMT + Front-End-Https: + - 'on' + X-Auth-Token: + response-source: + - cloud-auth + X-Storage-Token: + X-Server-Management-Url: + - https://servers.api.rackspacecloud.com/v1.0/ + VIA: + - 1.0 Repose (Repose/2.3.5) + Connection: + - keep-alive + X-CDN-Management-Url: + - https://cdn1.clouddrive.com/v1/ + body: + encoding: UTF-8 + string: '' + http_version: + recorded_at: Fri, 24 May 2013 18:08:15 GMT +- request: + method: get + uri: https://servers.api.rackspacecloud.com/v1.0//images/detail.json?ignore_awful_caching1369418895 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Server: + - Apache-Coyote/1.1 + vary: + - Accept, Accept-Encoding, X-Auth-Token + Last-Modified: + - Mon, 09 Jul 2012 17:15:23 GMT + X-PURGE-KEY: + - //images + Cache-Control: + - s-maxage=1800 + Content-Type: + - application/json + Content-Length: + - '2547' + Date: + - Fri, 24 May 2013 18:08:16 GMT + X-Varnish: + Age: + - '0' + Via: + - 1.1 varnish + Connection: + - keep-alive + body: + encoding: UTF-8 + string: ! '{"images":[{"id":118,"status":"ACTIVE","updated":"2011-08-17T05:11:30-05:00","name":"CentOS + 6.0"},{"id":104,"status":"ACTIVE","updated":"2011-08-17T05:11:30-05:00","name":"Debian + 6 (Squeeze)"},{"id":125,"status":"ACTIVE","updated":"2012-05-03T07:21:06-05:00","name":"Ubuntu + 12.04 LTS"},{"id":107,"status":"ACTIVE","updated":"2012-04-24T10:48:08-05:00","name":"FreeBSD + 9.0"},{"id":24,"status":"ACTIVE","updated":"2010-01-26T12:07:04-06:00","name":"Windows + Server 2008 SP2 x64"},{"id":109,"status":"ACTIVE","updated":"2011-11-03T06:28:56-05:00","name":"openSUSE + 12"},{"id":127,"status":"ACTIVE","updated":"2012-07-09T12:15:23-05:00","name":"CentOS + 6.3"},{"id":85,"status":"ACTIVE","updated":"2010-01-26T12:07:17-06:00","name":"Windows + Server 2008 R2 x64"},{"id":110,"status":"ACTIVE","updated":"2011-08-17T05:11:30-05:00","name":"Red + Hat Enterprise Linux 5.5"},{"id":114,"status":"ACTIVE","updated":"2011-08-17T05:11:30-05:00","name":"CentOS + 5.6"},{"id":112,"status":"ACTIVE","updated":"2011-04-21T10:24:01-05:00","name":"Ubuntu + 10.04 LTS"},{"id":56,"status":"ACTIVE","updated":"2010-09-17T07:12:56-05:00","name":"Windows + Server 2008 SP2 x86 + SQL Server 2008 R2 Standard"},{"id":122,"status":"ACTIVE","updated":"2012-02-06T04:34:21-06:00","name":"CentOS + 6.2"},{"id":100,"status":"ACTIVE","updated":"2011-09-12T09:09:23-05:00","name":"Arch + 2012.08"},{"id":31,"status":"ACTIVE","updated":"2010-01-26T12:07:44-06:00","name":"Windows + Server 2008 SP2 x86"},{"id":91,"status":"ACTIVE","updated":"2012-04-24T16:44:01-05:00","name":"Windows + Server 2008 R2 x64 + SQL Server 2012 Standard"},{"id":111,"status":"ACTIVE","updated":"2011-09-12T10:53:12-05:00","name":"Red + Hat Enterprise Linux 6"},{"id":92,"status":"ACTIVE","updated":"2012-04-24T16:44:01-05:00","name":"Windows + Server 2008 R2 x64 + SQL Server 2012 Web"},{"id":57,"status":"ACTIVE","updated":"2010-09-17T07:16:25-05:00","name":"Windows + Server 2008 SP2 x64 + SQL Server 2008 R2 Standard"},{"id":120,"status":"ACTIVE","updated":"2012-01-03T04:39:05-06:00","name":"Fedora + 16"},{"id":86,"status":"ACTIVE","updated":"2010-09-17T07:19:20-05:00","name":"Windows + Server 2008 R2 x64 + SQL Server 2008 R2 Standard"},{"id":108,"status":"ACTIVE","updated":"2011-11-01T08:32:30-05:00","name":"Gentoo + 12.3"},{"id":126,"status":"ACTIVE","updated":"2012-05-29T17:11:45-05:00","name":"Fedora + 17"},{"id":121,"status":"ACTIVE","updated":"2012-05-04T10:51:28-05:00","name":"CentOS + 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows + Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' + http_version: + recorded_at: Fri, 24 May 2013 18:08:16 GMT +recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1_api/should_list_server_flavors.yml b/spec/cassettes/v1_api/should_list_server_flavors.yml index 5590774..da80159 100644 --- a/spec/cassettes/v1_api/should_list_server_flavors.yml +++ b/spec/cassettes/v1_api/should_list_server_flavors.yml @@ -26,11 +26,11 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/ Cache-Control: - - s-maxage=86849 + - s-maxage=73638 X-Cloud-Auth: - 'true' Date: - - Fri, 24 May 2013 14:28:00 GMT + - Fri, 24 May 2013 18:08:11 GMT Front-End-Https: - 'on' X-Auth-Token: @@ -49,10 +49,10 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Fri, 24 May 2013 14:28:05 GMT + recorded_at: Fri, 24 May 2013 18:08:11 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/detail.json?ignore_awful_caching1369405685 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/detail.json?ignore_awful_caching1369418891 body: encoding: US-ASCII string: '' @@ -82,9 +82,8 @@ http_interactions: Content-Length: - '422' Date: - - Fri, 24 May 2013 14:28:01 GMT - X-Varnish: - - '1284677487' + - Fri, 24 May 2013 18:08:11 GMT + X-Varnish: Age: - '0' Via: @@ -99,10 +98,10 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Fri, 24 May 2013 14:28:05 GMT + recorded_at: Fri, 24 May 2013 18:08:11 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/1.json?ignore_awful_caching1369405685 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/1.json?ignore_awful_caching1369418891 body: encoding: US-ASCII string: '' @@ -132,9 +131,8 @@ http_interactions: Content-Length: - '59' Date: - - Fri, 24 May 2013 14:28:01 GMT - X-Varnish: - - '1284677501' + - Fri, 24 May 2013 18:08:11 GMT + X-Varnish: Age: - '0' Via: @@ -145,10 +143,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:06 GMT + recorded_at: Fri, 24 May 2013 18:08:11 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/2.json?ignore_awful_caching1369405686 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/2.json?ignore_awful_caching1369418891 body: encoding: US-ASCII string: '' @@ -178,9 +176,8 @@ http_interactions: Content-Length: - '59' Date: - - Fri, 24 May 2013 14:28:02 GMT - X-Varnish: - - '1284677515' + - Fri, 24 May 2013 18:08:12 GMT + X-Varnish: Age: - '0' Via: @@ -191,10 +188,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:06 GMT + recorded_at: Fri, 24 May 2013 18:08:12 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/3.json?ignore_awful_caching1369405686 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/3.json?ignore_awful_caching1369418892 body: encoding: US-ASCII string: '' @@ -224,9 +221,8 @@ http_interactions: Content-Length: - '60' Date: - - Fri, 24 May 2013 14:28:02 GMT - X-Varnish: - - '1466376357' + - Fri, 24 May 2013 18:08:12 GMT + X-Varnish: Age: - '0' Via: @@ -237,10 +233,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:07 GMT + recorded_at: Fri, 24 May 2013 18:08:12 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/4.json?ignore_awful_caching1369405687 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/4.json?ignore_awful_caching1369418892 body: encoding: US-ASCII string: '' @@ -270,9 +266,8 @@ http_interactions: Content-Length: - '60' Date: - - Fri, 24 May 2013 14:28:03 GMT - X-Varnish: - - '1466376378' + - Fri, 24 May 2013 18:08:13 GMT + X-Varnish: Age: - '0' Via: @@ -283,10 +278,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:07 GMT + recorded_at: Fri, 24 May 2013 18:08:13 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/5.json?ignore_awful_caching1369405687 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/5.json?ignore_awful_caching1369418893 body: encoding: US-ASCII string: '' @@ -316,9 +311,8 @@ http_interactions: Content-Length: - '61' Date: - - Fri, 24 May 2013 14:28:03 GMT - X-Varnish: - - '1466376396' + - Fri, 24 May 2013 18:08:13 GMT + X-Varnish: Age: - '0' Via: @@ -329,10 +323,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:08 GMT + recorded_at: Fri, 24 May 2013 18:08:13 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/6.json?ignore_awful_caching1369405688 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/6.json?ignore_awful_caching1369418893 body: encoding: US-ASCII string: '' @@ -362,9 +356,8 @@ http_interactions: Content-Length: - '61' Date: - - Fri, 24 May 2013 14:28:03 GMT - X-Varnish: - - '1466376414' + - Fri, 24 May 2013 18:08:14 GMT + X-Varnish: Age: - '0' Via: @@ -375,10 +368,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:08 GMT + recorded_at: Fri, 24 May 2013 18:08:14 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/7.json?ignore_awful_caching1369405688 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/7.json?ignore_awful_caching1369418894 body: encoding: US-ASCII string: '' @@ -408,9 +401,8 @@ http_interactions: Content-Length: - '65' Date: - - Fri, 24 May 2013 14:28:04 GMT - X-Varnish: - - '1284677607' + - Fri, 24 May 2013 18:08:14 GMT + X-Varnish: Age: - '0' Via: @@ -421,10 +413,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:08 GMT + recorded_at: Fri, 24 May 2013 18:08:14 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/8.json?ignore_awful_caching1369405688 + uri: https://servers.api.rackspacecloud.com/v1.0//flavors/8.json?ignore_awful_caching1369418894 body: encoding: US-ASCII string: '' @@ -454,9 +446,8 @@ http_interactions: Content-Length: - '64' Date: - - Fri, 24 May 2013 14:28:05 GMT - X-Varnish: - - '1284677625' + - Fri, 24 May 2013 18:08:14 GMT + X-Varnish: Age: - '0' Via: @@ -467,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:09 GMT + recorded_at: Fri, 24 May 2013 18:08:14 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_images.yml b/spec/cassettes/v2_api/should_list_images.yml new file mode 100644 index 0000000..cd05f29 --- /dev/null +++ b/spec/cassettes/v2_api/should_list_images.yml @@ -0,0 +1,287 @@ +--- +http_interactions: +- request: + method: get + uri: https://auth.api.rackspacecloud.com/v1.0 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + X-Auth-Key: + - + X-Auth-User: + - + response: + status: + code: 204 + message: + headers: + Server: + - nginx/0.8.55 + vary: + - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, + X-Auth-User + X-Storage-Url: + - https://storage101.dfw1.clouddrive.com/v1/ + Cache-Control: + - s-maxage=73629 + X-Cloud-Auth: + - 'true' + Date: + - Fri, 24 May 2013 18:08:20 GMT + Front-End-Https: + - 'on' + X-Auth-Token: + response-source: + - cloud-auth + X-Storage-Token: + X-Server-Management-Url: + - https://servers.api.rackspacecloud.com/v1.0/ + VIA: + - 1.0 Repose (Repose/2.3.5) + Connection: + - keep-alive + X-CDN-Management-Url: + - https://cdn1.clouddrive.com/v1/ + body: + encoding: UTF-8 + string: '' + http_version: + recorded_at: Fri, 24 May 2013 18:08:20 GMT +- request: + method: get + uri: https://dfw.servers.api.rackspacecloud.com/v2//images + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - fog/1.9.0 + Content-Type: + - application/json + X-Auth-Token: + response: + status: + code: 200 + message: + headers: + Date: + - Fri, 24 May 2013 18:08:26 GMT + Content-Length: + - '22207' + Content-Type: + - application/json + X-Compute-Request-Id: + Server: + - Jetty(8.0.y.z-SNAPSHOT) + body: + encoding: UTF-8 + string: ! '{"images": [{"id": "3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 x64 SP2"}, {"id": "bfdb3838-152e-46c2-88a3-c45f7423bcd9", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 (with updates) + SQL Server 2012 Standard SP1"}, {"id": + "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian + 7 (Wheezy)"}, {"id": "fc62f5c8-ca85-4166-8483-46bfcbca45cd", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012 + SQL Server 2012 Web SP1"}, {"id": "1d6cf74a-af8a-4235-abf5-edddd9d58941", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012 + SQL Server 2012 Standard SP1"}, {"id": "f2527410-310d-46af-a2fe-7debe6cddc35", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2527410-310d-46af-a2fe-7debe6cddc35", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012 (with updates) + SQL Server 2012 Standard SP1"}, {"id": "fc2448b4-da85-4893-b0e7-6c8794e608b4", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012 (with updates)"}, {"id": "f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012"}, {"id": "74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 + SQL Server 2012 Web SP1"}, {"id": "f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 + SQL Server 2012 Standard SP1"}, {"id": "05313f52-c19b-4640-b5ed-c7b8e8d17775", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 + SQL Server 2008 R2 Web SP2"}, {"id": "37c9e70e-bf94-4631-b76c-de21246dff34", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/37c9e70e-bf94-4631-b76c-de21246dff34", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 + SQL Server 2008 R2 Standard SP2"}, {"id": "59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 (with updates) + SQL Server 2012 Web SP1"}, {"id": "5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Web SP2"}, {"id": "da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Standard SP2"}, {"id": + "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 (with updates)"}, {"id": "48df4181-040e-4821-8723-d9e4ba908d2f", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/48df4181-040e-4821-8723-d9e4ba908d2f", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1"}, {"id": "9922a7c7-5a42-4a56-bc6a-93f857ae2346", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu + 13.04 (Raring Ringtail)"}, {"id": "e298e0d7-4fea-45f0-9694-7643e300fb43", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Gentoo + 13.1"}, {"id": "89e9ce4a-1261-49c3-8a35-17224411659d", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/89e9ce4a-1261-49c3-8a35-17224411659d", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora + 18 (Spherical Cow)"}, {"id": "ae725da5-a942-496f-87ff-8319d23ddec1", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/ae725da5-a942-496f-87ff-8319d23ddec1", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "FreeBSD + 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Arch + 2013.2"}, {"id": "88130782-11ec-4795-b85f-b55a297ba446", "links": [{"href": + "https://dfw.servers.api.rackspacecloud.com/v2//images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/88130782-11ec-4795-b85f-b55a297ba446", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu + 12.10 (Quantal Quetzal)"}, {"id": "e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu + 12.04 LTS (Precise Pangolin)"}, {"id": "d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu + 10.04 LTS (Lucid Lynx)"}, {"id": "e189a89b-722e-4854-a886-25b22be8be7c", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e189a89b-722e-4854-a886-25b22be8be7c", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red + Hat Enterprise Linux 6.3"}, {"id": "0119af00-161f-46f4-8e76-0cbf799d7e7e", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red + Hat Enterprise Linux 6.1"}, {"id": "e21a4251-41c6-44b5-aa39-20e1982487f2", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red + Hat Enterprise Linux 5.8"}, {"id": "76856c8b-e56e-4301-b454-c8cd1be22cfb", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora + 17 (Beefy Miracle)"}, {"id": "8ae428cd-0490-4f3a-818f-28213a7286b0", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian + 6.06 (Squeeze)"}, {"id": "da1f0392-8c64-468f-a839-a9e56caebf07", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da1f0392-8c64-468f-a839-a9e56caebf07", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS + 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/92ac9889-2ede-4633-ab39-25560436d83a", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS + 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS + 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS + 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/436727f4-9a72-4439-99b4-975f92c87c33", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS + 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS + 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012 (with updates) + SQL Server 2012 Web SP1"}, {"id": "efc98a61-3816-4049-a785-f5fe0923d2d6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2012 + SharePoint 2013 Foundation with SQL 2012 Standard"}, {"id": + "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 SP1 Standard"}, + {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows + Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 Express"}, {"id": + "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/644be485-411d-4bac-aba5-5f60641d92b5", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red + Hat Enterprise Linux 5.5"}, {"id": "096c55e5-39f3-48cf-a413-68d9377a3ab6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE + 12.1"}]}' + http_version: + recorded_at: Fri, 24 May 2013 18:08:26 GMT +recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_server_flavors.yml b/spec/cassettes/v2_api/should_list_server_flavors.yml index 245fa0e..5e51969 100644 --- a/spec/cassettes/v2_api/should_list_server_flavors.yml +++ b/spec/cassettes/v2_api/should_list_server_flavors.yml @@ -26,11 +26,11 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/ Cache-Control: - - s-maxage=86844 + - s-maxage=73633 X-Cloud-Auth: - 'true' Date: - - Fri, 24 May 2013 14:28:05 GMT + - Fri, 24 May 2013 18:08:16 GMT Front-End-Https: - 'on' X-Auth-Token: @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Fri, 24 May 2013 14:28:10 GMT + recorded_at: Fri, 24 May 2013 18:08:16 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors @@ -68,7 +68,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:06 GMT + - Fri, 24 May 2013 18:08:16 GMT Content-Length: - '1697' Content-Type: @@ -100,7 +100,7 @@ http_interactions: "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Fri, 24 May 2013 14:28:10 GMT + recorded_at: Fri, 24 May 2013 18:08:16 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/2 @@ -119,7 +119,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:06 GMT + - Fri, 24 May 2013 18:08:17 GMT Content-Length: - '353' Content-Type: @@ -135,7 +135,7 @@ http_interactions: "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:11 GMT + recorded_at: Fri, 24 May 2013 18:08:17 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/3 @@ -154,7 +154,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:07 GMT + - Fri, 24 May 2013 18:08:18 GMT Content-Length: - '353' Content-Type: @@ -169,7 +169,7 @@ http_interactions: "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:12 GMT + recorded_at: Fri, 24 May 2013 18:08:18 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/4 @@ -188,7 +188,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:08 GMT + - Fri, 24 May 2013 18:08:18 GMT Content-Length: - '353' Content-Type: @@ -203,7 +203,7 @@ http_interactions: "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:12 GMT + recorded_at: Fri, 24 May 2013 18:08:18 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/5 @@ -222,7 +222,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:08 GMT + - Fri, 24 May 2013 18:08:19 GMT Content-Length: - '355' Content-Type: @@ -237,7 +237,7 @@ http_interactions: "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:13 GMT + recorded_at: Fri, 24 May 2013 18:08:19 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/6 @@ -256,7 +256,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:09 GMT + - Fri, 24 May 2013 18:08:19 GMT Content-Length: - '355' Content-Type: @@ -271,7 +271,7 @@ http_interactions: "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:14 GMT + recorded_at: Fri, 24 May 2013 18:08:19 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/7 @@ -290,7 +290,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:10 GMT + - Fri, 24 May 2013 18:08:20 GMT Content-Length: - '357' Content-Type: @@ -306,7 +306,7 @@ http_interactions: "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:14 GMT + recorded_at: Fri, 24 May 2013 18:08:20 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/8 @@ -325,7 +325,7 @@ http_interactions: message: headers: Date: - - Fri, 24 May 2013 14:28:10 GMT + - Fri, 24 May 2013 18:08:20 GMT Content-Length: - '358' Content-Type: @@ -341,5 +341,5 @@ http_interactions: "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Fri, 24 May 2013 14:28:14 GMT + recorded_at: Fri, 24 May 2013 18:08:20 GMT recorded_with: VCR 2.5.0 diff --git a/spec/integration/v1_integration_spec.rb b/spec/integration/v1_integration_spec.rb index efd50d1..a8f08a5 100644 --- a/spec/integration/v1_integration_spec.rb +++ b/spec/integration/v1_integration_spec.rb @@ -24,4 +24,12 @@ 8 30GB server 64-bit 30720 1200 GB """) end + + it 'should list images', :vcr do + stdout, stderr, status = knife_capture('rackspace image list') + status.should == 0 + stdout = ANSI.unansi stdout + stdout.should match /^ID\s*Name\s*$/ + stdout.should include 'Ubuntu 12.04 LTS' + end end diff --git a/spec/integration/v2_integration_spec.rb b/spec/integration/v2_integration_spec.rb index b80b6c4..3762d3e 100644 --- a/spec/integration/v2_integration_spec.rb +++ b/spec/integration/v2_integration_spec.rb @@ -8,6 +8,7 @@ before do Chef::Config[:knife][:rackspace_version] = nil #v2 by default end + it 'should list server flavors', :vcr do stdout, stderr, status = knife_capture('rackspace flavor list') status.should == 0 @@ -22,4 +23,12 @@ 8 30GB Standard Instance 8 30720 1200 GB """) end + + it 'should list images', :vcr do + stdout, stderr, status = knife_capture('rackspace image list') + status.should == 0 + stdout = ANSI.unansi stdout + stdout.should match /^ID\s*Name\s*$/ + stdout.should include 'Ubuntu 12.10 (Quantal Quetzal)' + end end diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index be4da8d..b0d1520 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -5,6 +5,7 @@ Chef::Config[:knife][:rackspace_api_username] = "#{ENV['OS_USERNAME']}" Chef::Config[:knife][:rackspace_api_key] = "#{ENV['OS_PASSWORD']}" +Chef::Config[:knife][:ssl_verify_peer] = false # Chef::Config[:knife][:rackspace_version] = "#{ENV['RS_VERSION']}" VCR.configure do |c| @@ -18,10 +19,12 @@ c.filter_sensitive_data('') { ENV['RS_TENANT_ID'] } c.before_record do |interaction| - filter_headers(interaction.request.headers, /X-\w*-Token/, '') - filter_headers(interaction.response.headers, /X-\w*-Token/, '') - filter_headers(interaction.request.headers, 'X-Compute-Request-Id', '') - filter_headers(interaction.response.headers, 'X-Compute-Request-Id', '') + # Sensitive data + filter_headers(interaction, /X-\w*-Token/, '') + + # Transient data (trying to avoid unnecessary cassette churn) + filter_headers(interaction, 'X-Compute-Request-Id', '') + filter_headers(interaction, 'X-Varnish', '') end c.default_cassette_options = { @@ -30,10 +33,12 @@ } end -def filter_headers(headers, pattern, placeholder) - sensitive_tokens = headers.select{|key| key.to_s.match(pattern)} - sensitive_tokens.each do |key, value| - headers[key] = placeholder +def filter_headers(interaction, pattern, placeholder) + [interaction.request.headers, interaction.response.headers].each do | headers | + sensitive_tokens = headers.select{|key| key.to_s.match(pattern)} + sensitive_tokens.each do |key, value| + headers[key] = placeholder + end end end From e1727cce2302be567d39149d8864843f81368060 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Tue, 28 May 2013 17:34:39 -0500 Subject: [PATCH 03/17] Server management (create/list/delete) test --- spec/integration/v2_integration_spec.rb | 50 ++++++++++++++++++++++++- spec/integration_spec_helper.rb | 27 +++++++++---- 2 files changed, 67 insertions(+), 10 deletions(-) diff --git a/spec/integration/v2_integration_spec.rb b/spec/integration/v2_integration_spec.rb index 3762d3e..54e3fa6 100644 --- a/spec/integration/v2_integration_spec.rb +++ b/spec/integration/v2_integration_spec.rb @@ -1,12 +1,20 @@ require 'integration_spec_helper' require 'fog' require 'knife/dsl' - +require 'chef/knife/rackspace_server_create' include Chef::Knife::DSL describe 'v2_api' do - before do + def server_list + stdout, stderr, status = knife_capture('rackspace server list') + status == 0 ? stdout : stderr + end + + before(:each) do Chef::Config[:knife][:rackspace_version] = nil #v2 by default + + Chef::Knife::Bootstrap.any_instance.stub(:run) + Chef::Knife::RackspaceServerCreate.any_instance.stub(:tcp_test_ssh).with(anything).and_return(true) end it 'should list server flavors', :vcr do @@ -31,4 +39,42 @@ stdout.should match /^ID\s*Name\s*$/ stdout.should include 'Ubuntu 12.10 (Quantal Quetzal)' end + + it 'should manage servers', :vcr do + # image = '112' # v1 + image = '9922a7c7-5a42-4a56-bc6a-93f857ae2346' + # Faster? flavor 4, image 88130782-11ec-4795-b85f-b55a297ba446 + flavor = '2' + role = 'role[dummy_server_for_integration_test]' + server_list.should_not include 'test-node' + + args = %W{rackspace server create -I #{image} -f #{flavor} -r 'role[webserver]' -N test-node -S test-server} + stdout, stderr, status = knife_capture(args) + status.should == 0 + instance_data = capture_instance_data(stdout, { + :name => 'Name', + :instance_id => 'Instance ID', + :public_ip => 'Public IP Address', + :private_ip => 'Private IP Address' + }) + + # Wanted to assert active state, but got build during test + server_list.should match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ + + args = %W{rackspace server delete #{instance_data[:instance_id]} -y} + stdout, stderr, status = knife_capture(args) + status.should == 0 + + # Need to deal with deleting vs deleted states before we can check this + # server_list.should_not match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ + end + + def capture_instance_data(stdout, labels = {}) + result = {} + labels.each do | key, label | + result[key] = clean_output(stdout).match(/^#{label}: (.*)$/)[1] + end + result + end + end diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index b0d1520..95743bd 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -13,21 +13,32 @@ c.hook_into :excon c.configure_rspec_metadata! - c.filter_sensitive_data('') { Chef::Config[:knife][:rackspace_api_username] } - c.filter_sensitive_data('') { Chef::Config[:knife][:rackspace_api_key] } - c.filter_sensitive_data('') { ENV['RS_CDN_TENANT_NAME'] } - c.filter_sensitive_data('') { ENV['RS_TENANT_ID'] } + c.filter_sensitive_data('{RAX_USERNAME}') { Chef::Config[:knife][:rackspace_api_username] } + c.filter_sensitive_data('{RAX_PASSWORD}') { Chef::Config[:knife][:rackspace_api_key] } + c.filter_sensitive_data('{CDN-TENANT-NAME}') { ENV['RS_CDN_TENANT_NAME'] } + c.filter_sensitive_data('{TENANT-ID}') { ENV['RS_TENANT_ID'] } c.before_record do |interaction| # Sensitive data - filter_headers(interaction, /X-\w*-Token/, '') + filter_headers(interaction, /X-\w*-Token/, '{ONE-TIME-TOKEN}') # Transient data (trying to avoid unnecessary cassette churn) - filter_headers(interaction, 'X-Compute-Request-Id', '') - filter_headers(interaction, 'X-Varnish', '') + filter_headers(interaction, 'X-Compute-Request-Id', '{COMPUTE-REQUEST-ID}') + filter_headers(interaction, 'X-Varnish', '{VARNISH-REQUEST-ID}') + + # Throw away build state - just makes server.wait_for loops really long during replay + begin + json = JSON.parse(interaction.response.body) + if json['server']['status'] == 'BUILD' + # Ignoring interaction because server is in BUILD state + interaction.ignore! + end + rescue + end end - c.default_cassette_options = { + c.default_cassette_options = { + # :record => :none, # Ignores cache busting parameters. :match_requests_on => [:host, :path] } From 3fafe3c66968608870377d3a0a91d68245e90ad3 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Tue, 28 May 2013 17:37:15 -0500 Subject: [PATCH 04/17] Updated VCR placeholders to be more URL friendly --- spec/cassettes/v1_api/should_list_images.yml | 40 +-- .../v1_api/should_list_server_flavors.yml | 150 ++++----- spec/cassettes/v2_api/should_list_images.yml | 288 +++++++++--------- .../v2_api/should_list_server_flavors.yml | 190 ++++++------ 4 files changed, 343 insertions(+), 325 deletions(-) diff --git a/spec/cassettes/v1_api/should_list_images.yml b/spec/cassettes/v1_api/should_list_images.yml index 022421e..86df210 100644 --- a/spec/cassettes/v1_api/should_list_images.yml +++ b/spec/cassettes/v1_api/should_list_images.yml @@ -8,11 +8,11 @@ http_interactions: string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 X-Auth-Key: - - + - ! '{RAX_PASSWORD}' X-Auth-User: - - + - ! '{RAX_USERNAME}' response: status: code: 204 @@ -24,47 +24,47 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/ + - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=73634 + - s-maxage=62006 X-Cloud-Auth: - 'true' Date: - - Fri, 24 May 2013 18:08:15 GMT + - Tue, 28 May 2013 22:11:20 GMT Front-End-Https: - 'on' - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response-source: - cloud-auth - X-Storage-Token: + X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/ + - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/ + - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} body: encoding: UTF-8 string: '' http_version: - recorded_at: Fri, 24 May 2013 18:08:15 GMT + recorded_at: Tue, 28 May 2013 22:11:20 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//images/detail.json?ignore_awful_caching1369418895 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/images/detail.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -74,7 +74,7 @@ http_interactions: Last-Modified: - Mon, 09 Jul 2012 17:15:23 GMT X-PURGE-KEY: - - //images + - /{TENANT-ID}/images Cache-Control: - s-maxage=1800 Content-Type: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '2547' Date: - - Fri, 24 May 2013 18:08:16 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:20 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '754' Via: - 1.1 varnish Connection: @@ -119,5 +119,5 @@ http_interactions: 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' http_version: - recorded_at: Fri, 24 May 2013 18:08:16 GMT + recorded_at: Tue, 28 May 2013 22:11:20 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1_api/should_list_server_flavors.yml b/spec/cassettes/v1_api/should_list_server_flavors.yml index da80159..4f6cbe4 100644 --- a/spec/cassettes/v1_api/should_list_server_flavors.yml +++ b/spec/cassettes/v1_api/should_list_server_flavors.yml @@ -8,11 +8,11 @@ http_interactions: string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 X-Auth-Key: - - + - ! '{RAX_PASSWORD}' X-Auth-User: - - + - ! '{RAX_USERNAME}' response: status: code: 204 @@ -24,44 +24,44 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/ + - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=73638 + - s-maxage=62008 X-Cloud-Auth: - 'true' Date: - - Fri, 24 May 2013 18:08:11 GMT + - Tue, 28 May 2013 22:11:18 GMT Front-End-Https: - 'on' - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response-source: - cloud-auth - X-Storage-Token: + X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/ + - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/ + - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} body: encoding: UTF-8 string: '' http_version: - recorded_at: Fri, 24 May 2013 18:08:11 GMT + recorded_at: Tue, 28 May 2013 22:11:18 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/detail.json?ignore_awful_caching1369418891 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/detail.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 @@ -82,8 +82,8 @@ http_interactions: Content-Length: - '422' Date: - - Fri, 24 May 2013 18:08:11 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - '0' Via: @@ -98,22 +98,22 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Fri, 24 May 2013 18:08:11 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/1.json?ignore_awful_caching1369418891 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/1.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -131,10 +131,10 @@ http_interactions: Content-Length: - '59' Date: - - Fri, 24 May 2013 18:08:11 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '755' Via: - 1.1 varnish Connection: @@ -143,19 +143,19 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:11 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/2.json?ignore_awful_caching1369418891 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/2.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 @@ -176,8 +176,8 @@ http_interactions: Content-Length: - '59' Date: - - Fri, 24 May 2013 18:08:12 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - '0' Via: @@ -188,22 +188,22 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:12 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/3.json?ignore_awful_caching1369418892 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/3.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -221,10 +221,10 @@ http_interactions: Content-Length: - '60' Date: - - Fri, 24 May 2013 18:08:12 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '755' Via: - 1.1 varnish Connection: @@ -233,22 +233,22 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:12 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/4.json?ignore_awful_caching1369418892 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/4.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -266,10 +266,10 @@ http_interactions: Content-Length: - '60' Date: - - Fri, 24 May 2013 18:08:13 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '754' Via: - 1.1 varnish Connection: @@ -278,19 +278,19 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:13 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/5.json?ignore_awful_caching1369418893 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/5.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 @@ -311,8 +311,8 @@ http_interactions: Content-Length: - '61' Date: - - Fri, 24 May 2013 18:08:13 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - '0' Via: @@ -323,22 +323,22 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:13 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/6.json?ignore_awful_caching1369418893 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/6.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -356,10 +356,10 @@ http_interactions: Content-Length: - '61' Date: - - Fri, 24 May 2013 18:08:14 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:19 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '754' Via: - 1.1 varnish Connection: @@ -368,22 +368,22 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:14 GMT + recorded_at: Tue, 28 May 2013 22:11:19 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/7.json?ignore_awful_caching1369418894 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/7.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -401,10 +401,10 @@ http_interactions: Content-Length: - '65' Date: - - Fri, 24 May 2013 18:08:14 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:20 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '754' Via: - 1.1 varnish Connection: @@ -413,19 +413,19 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:14 GMT + recorded_at: Tue, 28 May 2013 22:11:20 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0//flavors/8.json?ignore_awful_caching1369418894 + uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/8.json body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 @@ -446,8 +446,8 @@ http_interactions: Content-Length: - '64' Date: - - Fri, 24 May 2013 18:08:14 GMT - X-Varnish: + - Tue, 28 May 2013 22:11:20 GMT + X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - '0' Via: @@ -458,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:14 GMT + recorded_at: Tue, 28 May 2013 22:11:20 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_images.yml b/spec/cassettes/v2_api/should_list_images.yml index cd05f29..f5887cd 100644 --- a/spec/cassettes/v2_api/should_list_images.yml +++ b/spec/cassettes/v2_api/should_list_images.yml @@ -8,11 +8,11 @@ http_interactions: string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 X-Auth-Key: - - + - ! '{RAX_PASSWORD}' X-Auth-User: - - + - ! '{RAX_USERNAME}' response: status: code: 204 @@ -24,264 +24,266 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/ + - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=73629 + - s-maxage=61017 X-Cloud-Auth: - 'true' Date: - - Fri, 24 May 2013 18:08:20 GMT + - Tue, 28 May 2013 22:27:49 GMT Front-End-Https: - 'on' - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response-source: - cloud-auth - X-Storage-Token: + X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/ + - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/ + - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} body: encoding: UTF-8 string: '' http_version: - recorded_at: Fri, 24 May 2013 18:08:20 GMT + recorded_at: Tue, 28 May 2013 22:27:49 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//images + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:26 GMT + - Tue, 28 May 2013 22:27:52 GMT Content-Length: - '22207' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"images": [{"id": "3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 x64 SP2"}, {"id": "bfdb3838-152e-46c2-88a3-c45f7423bcd9", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Standard SP1"}, {"id": - "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 7 (Wheezy)"}, {"id": "fc62f5c8-ca85-4166-8483-46bfcbca45cd", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Web SP1"}, {"id": "1d6cf74a-af8a-4235-abf5-edddd9d58941", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Standard SP1"}, {"id": "f2527410-310d-46af-a2fe-7debe6cddc35", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2527410-310d-46af-a2fe-7debe6cddc35", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2527410-310d-46af-a2fe-7debe6cddc35", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Standard SP1"}, {"id": "fc2448b4-da85-4893-b0e7-6c8794e608b4", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates)"}, {"id": "f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012"}, {"id": "74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Web SP1"}, {"id": "f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Standard SP1"}, {"id": "05313f52-c19b-4640-b5ed-c7b8e8d17775", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Web SP2"}, {"id": "37c9e70e-bf94-4631-b76c-de21246dff34", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/37c9e70e-bf94-4631-b76c-de21246dff34", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/37c9e70e-bf94-4631-b76c-de21246dff34", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Standard SP2"}, {"id": "59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Web SP1"}, {"id": "5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Web SP2"}, {"id": "da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Standard SP2"}, {"id": - "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates)"}, {"id": "48df4181-040e-4821-8723-d9e4ba908d2f", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/48df4181-040e-4821-8723-d9e4ba908d2f", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/48df4181-040e-4821-8723-d9e4ba908d2f", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1"}, {"id": "9922a7c7-5a42-4a56-bc6a-93f857ae2346", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 13.04 (Raring Ringtail)"}, {"id": "e298e0d7-4fea-45f0-9694-7643e300fb43", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e298e0d7-4fea-45f0-9694-7643e300fb43", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Gentoo 13.1"}, {"id": "89e9ce4a-1261-49c3-8a35-17224411659d", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/89e9ce4a-1261-49c3-8a35-17224411659d", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/89e9ce4a-1261-49c3-8a35-17224411659d", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 18 (Spherical Cow)"}, {"id": "ae725da5-a942-496f-87ff-8319d23ddec1", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/ae725da5-a942-496f-87ff-8319d23ddec1", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/ae725da5-a942-496f-87ff-8319d23ddec1", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "FreeBSD - 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Arch 2013.2"}, {"id": "88130782-11ec-4795-b85f-b55a297ba446", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/88130782-11ec-4795-b85f-b55a297ba446", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/88130782-11ec-4795-b85f-b55a297ba446", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.10 (Quantal Quetzal)"}, {"id": "e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.04 LTS (Precise Pangolin)"}, {"id": "d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 10.04 LTS (Lucid Lynx)"}, {"id": "e189a89b-722e-4854-a886-25b22be8be7c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e189a89b-722e-4854-a886-25b22be8be7c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e189a89b-722e-4854-a886-25b22be8be7c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.3"}, {"id": "0119af00-161f-46f4-8e76-0cbf799d7e7e", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.1"}, {"id": "e21a4251-41c6-44b5-aa39-20e1982487f2", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e21a4251-41c6-44b5-aa39-20e1982487f2", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.8"}, {"id": "76856c8b-e56e-4301-b454-c8cd1be22cfb", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 17 (Beefy Miracle)"}, {"id": "8ae428cd-0490-4f3a-818f-28213a7286b0", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/8ae428cd-0490-4f3a-818f-28213a7286b0", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/8ae428cd-0490-4f3a-818f-28213a7286b0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 6.06 (Squeeze)"}, {"id": "da1f0392-8c64-468f-a839-a9e56caebf07", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/da1f0392-8c64-468f-a839-a9e56caebf07", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da1f0392-8c64-468f-a839-a9e56caebf07", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/92ac9889-2ede-4633-ab39-25560436d83a", + 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/92ac9889-2ede-4633-ab39-25560436d83a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/436727f4-9a72-4439-99b4-975f92c87c33", + 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/436727f4-9a72-4439-99b4-975f92c87c33", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/2f15076a-dfd5-4441-9eba-3b001e4630de", + 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2f15076a-dfd5-4441-9eba-3b001e4630de", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Web SP1"}, {"id": "efc98a61-3816-4049-a785-f5fe0923d2d6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/efc98a61-3816-4049-a785-f5fe0923d2d6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SharePoint 2013 Foundation with SQL 2012 Standard"}, {"id": - "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 SP1 Standard"}, - {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/224da8a8-130d-4195-b8c6-db5863eb8c84", + {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/224da8a8-130d-4195-b8c6-db5863eb8c84", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 Express"}, {"id": - "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/644be485-411d-4bac-aba5-5f60641d92b5", + "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/644be485-411d-4bac-aba5-5f60641d92b5", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.5"}, {"id": "096c55e5-39f3-48cf-a413-68d9377a3ab6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com//images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE 12.1"}]}' http_version: - recorded_at: Fri, 24 May 2013 18:08:26 GMT + recorded_at: Tue, 28 May 2013 22:27:52 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_server_flavors.yml b/spec/cassettes/v2_api/should_list_server_flavors.yml index 5e51969..4a32752 100644 --- a/spec/cassettes/v2_api/should_list_server_flavors.yml +++ b/spec/cassettes/v2_api/should_list_server_flavors.yml @@ -8,11 +8,11 @@ http_interactions: string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 X-Auth-Key: - - + - ! '{RAX_PASSWORD}' X-Auth-User: - - + - ! '{RAX_USERNAME}' response: status: code: 204 @@ -24,322 +24,338 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/ + - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=73633 + - s-maxage=62005 X-Cloud-Auth: - 'true' Date: - - Fri, 24 May 2013 18:08:16 GMT + - Tue, 28 May 2013 22:11:21 GMT Front-End-Https: - 'on' - X-Auth-Token: + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response-source: - cloud-auth - X-Storage-Token: + X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/ + - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/ + - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} body: encoding: UTF-8 string: '' http_version: - recorded_at: Fri, 24 May 2013 18:08:16 GMT + recorded_at: Tue, 28 May 2013 22:11:21 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:16 GMT + - Tue, 28 May 2013 22:11:21 GMT Content-Length: - '1697' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/2", + string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/2", "rel": "bookmark"}], "name": "512MB Standard Instance"}, {"id": "3", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/3", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/3", "rel": "bookmark"}], "name": "1GB Standard Instance"}, {"id": "4", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/4", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/4", "rel": "bookmark"}], "name": "2GB Standard Instance"}, {"id": "5", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/5", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/5", "rel": "bookmark"}], "name": "4GB Standard Instance"}, {"id": "6", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/6", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/6", "rel": "bookmark"}], "name": "8GB Standard Instance"}, {"id": "7", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/7", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/7", "rel": "bookmark"}], "name": "15GB Standard Instance"}, {"id": "8", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/8", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Fri, 24 May 2013 18:08:16 GMT + recorded_at: Tue, 28 May 2013 22:11:21 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/2 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:17 GMT + - Tue, 28 May 2013 22:11:21 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "512MB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//flavors/2", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/2", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/2", "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:17 GMT + recorded_at: Tue, 28 May 2013 22:11:21 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/3 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:18 GMT + - Tue, 28 May 2013 22:11:22 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/3", + string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/3", "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:18 GMT + recorded_at: Tue, 28 May 2013 22:11:22 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/4 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:18 GMT + - Tue, 28 May 2013 22:11:22 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/4", + string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/4", "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:18 GMT + recorded_at: Tue, 28 May 2013 22:11:22 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/5 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:19 GMT + - Tue, 28 May 2013 22:11:22 GMT Content-Length: - '355' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/5", + string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/5", "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:19 GMT + recorded_at: Tue, 28 May 2013 22:11:22 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/6 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:19 GMT + - Tue, 28 May 2013 22:11:23 GMT Content-Length: - '355' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2//flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/6", + string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/6", "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:19 GMT + recorded_at: Tue, 28 May 2013 22:11:23 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/7 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:20 GMT + - Tue, 28 May 2013 22:11:23 GMT Content-Length: - '357' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "15GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//flavors/7", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/7", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/7", "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:20 GMT + recorded_at: Tue, 28 May 2013 22:11:23 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2//flavors/8 + uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8 body: encoding: US-ASCII string: '' headers: User-Agent: - - fog/1.9.0 + - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: + Accept: + - application/json + X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: code: 200 message: headers: Date: - - Fri, 24 May 2013 18:08:20 GMT + - Tue, 28 May 2013 22:11:23 GMT Content-Length: - '358' Content-Type: - application/json - X-Compute-Request-Id: + X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "30GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2//flavors/8", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com//flavors/8", + "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/8", "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Fri, 24 May 2013 18:08:20 GMT + recorded_at: Tue, 28 May 2013 22:11:23 GMT recorded_with: VCR 2.5.0 From cad05257f3fd7b4d1d3aac58aa27ab718acceed9 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Wed, 29 May 2013 16:29:35 -0500 Subject: [PATCH 05/17] Refactor to share tests --- .gitignore | 2 +- .../{v1_api => v1}/should_list_images.yml | 16 +-- .../should_list_server_flavors.yml | 72 +++++------ .../{v2_api => v2}/should_list_images.yml | 14 +-- .../should_list_server_flavors.yml | 42 +++---- spec/integration/v1_integration_spec.rb | 35 ------ spec/integration/v2_integration_spec.rb | 118 ++++++++++-------- spec/integration_spec_helper.rb | 16 ++- 8 files changed, 152 insertions(+), 163 deletions(-) rename spec/cassettes/{v1_api => v1}/should_list_images.yml (95%) rename spec/cassettes/{v1_api => v1}/should_list_server_flavors.yml (90%) rename spec/cassettes/{v2_api => v2}/should_list_images.yml (99%) rename spec/cassettes/{v2_api => v2}/should_list_server_flavors.yml (93%) delete mode 100644 spec/integration/v1_integration_spec.rb diff --git a/.gitignore b/.gitignore index 6add70c..5e3cbac 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ spec/reports .config InstalledFiles .bundle -.rackspace_cloud_credentials +.rackspace_cloud_credentials* *.lock # YARD artifacts diff --git a/spec/cassettes/v1_api/should_list_images.yml b/spec/cassettes/v1/should_list_images.yml similarity index 95% rename from spec/cassettes/v1_api/should_list_images.yml rename to spec/cassettes/v1/should_list_images.yml index 86df210..8b887ee 100644 --- a/spec/cassettes/v1_api/should_list_images.yml +++ b/spec/cassettes/v1/should_list_images.yml @@ -26,21 +26,21 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=62006 + - s-maxage=65356 X-Cloud-Auth: - 'true' Date: - - Tue, 28 May 2013 22:11:20 GMT + - Wed, 29 May 2013 21:19:03 GMT Front-End-Https: - 'on' X-Auth-Token: ! '{ONE-TIME-TOKEN}' - response-source: - - cloud-auth X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) + X-Global-Auth: + - 'true' Connection: - keep-alive X-CDN-Management-Url: @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Tue, 28 May 2013 22:11:20 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/images/detail.json @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '2547' Date: - - Tue, 28 May 2013 22:11:20 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '754' + - '1561' Via: - 1.1 varnish Connection: @@ -119,5 +119,5 @@ http_interactions: 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' http_version: - recorded_at: Tue, 28 May 2013 22:11:20 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1_api/should_list_server_flavors.yml b/spec/cassettes/v1/should_list_server_flavors.yml similarity index 90% rename from spec/cassettes/v1_api/should_list_server_flavors.yml rename to spec/cassettes/v1/should_list_server_flavors.yml index 4f6cbe4..e632146 100644 --- a/spec/cassettes/v1_api/should_list_server_flavors.yml +++ b/spec/cassettes/v1/should_list_server_flavors.yml @@ -26,21 +26,21 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=62008 + - s-maxage=65356 X-Cloud-Auth: - 'true' Date: - - Tue, 28 May 2013 22:11:18 GMT + - Wed, 29 May 2013 21:19:03 GMT Front-End-Https: - 'on' X-Auth-Token: ! '{ONE-TIME-TOKEN}' - response-source: - - cloud-auth X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) + X-Global-Auth: + - 'true' Connection: - keep-alive X-CDN-Management-Url: @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Tue, 28 May 2013 22:11:18 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/detail.json @@ -64,7 +64,7 @@ http_interactions: X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '422' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '1613' Via: - 1.1 varnish Connection: @@ -98,7 +98,7 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/1.json @@ -131,10 +131,10 @@ http_interactions: Content-Length: - '59' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '755' + - '1613' Via: - 1.1 varnish Connection: @@ -143,7 +143,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/2.json @@ -158,7 +158,7 @@ http_interactions: X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -176,10 +176,10 @@ http_interactions: Content-Length: - '59' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '1469' Via: - 1.1 varnish Connection: @@ -188,7 +188,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/3.json @@ -221,10 +221,10 @@ http_interactions: Content-Length: - '60' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '755' + - '1612' Via: - 1.1 varnish Connection: @@ -233,7 +233,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/4.json @@ -266,10 +266,10 @@ http_interactions: Content-Length: - '60' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '754' + - '1562' Via: - 1.1 varnish Connection: @@ -278,7 +278,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/5.json @@ -293,7 +293,7 @@ http_interactions: X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -311,10 +311,10 @@ http_interactions: Content-Length: - '61' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '1612' Via: - 1.1 varnish Connection: @@ -323,7 +323,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/6.json @@ -356,10 +356,10 @@ http_interactions: Content-Length: - '61' Date: - - Tue, 28 May 2013 22:11:19 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '754' + - '738' Via: - 1.1 varnish Connection: @@ -368,7 +368,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:19 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/7.json @@ -401,10 +401,10 @@ http_interactions: Content-Length: - '65' Date: - - Tue, 28 May 2013 22:11:20 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '754' + - '1561' Via: - 1.1 varnish Connection: @@ -413,7 +413,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:20 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/8.json @@ -428,7 +428,7 @@ http_interactions: X-Auth-Token: ! '{ONE-TIME-TOKEN}' response: status: - code: 200 + code: 203 message: headers: Server: @@ -446,10 +446,10 @@ http_interactions: Content-Length: - '64' Date: - - Tue, 28 May 2013 22:11:20 GMT + - Wed, 29 May 2013 21:19:03 GMT X-Varnish: ! '{VARNISH-REQUEST-ID}' Age: - - '0' + - '1611' Via: - 1.1 varnish Connection: @@ -458,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:20 GMT + recorded_at: Wed, 29 May 2013 21:19:04 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_images.yml b/spec/cassettes/v2/should_list_images.yml similarity index 99% rename from spec/cassettes/v2_api/should_list_images.yml rename to spec/cassettes/v2/should_list_images.yml index f5887cd..edee897 100644 --- a/spec/cassettes/v2_api/should_list_images.yml +++ b/spec/cassettes/v2/should_list_images.yml @@ -26,21 +26,21 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=61017 + - s-maxage=65353 X-Cloud-Auth: - 'true' Date: - - Tue, 28 May 2013 22:27:49 GMT + - Wed, 29 May 2013 21:19:06 GMT Front-End-Https: - 'on' X-Auth-Token: ! '{ONE-TIME-TOKEN}' - response-source: - - cloud-auth X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) + X-Global-Auth: + - 'true' Connection: - keep-alive X-CDN-Management-Url: @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Tue, 28 May 2013 22:27:49 GMT + recorded_at: Wed, 29 May 2013 21:19:07 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images @@ -70,7 +70,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:27:52 GMT + - Wed, 29 May 2013 21:19:08 GMT Content-Length: - '22207' Content-Type: @@ -285,5 +285,5 @@ http_interactions: "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE 12.1"}]}' http_version: - recorded_at: Tue, 28 May 2013 22:27:52 GMT + recorded_at: Wed, 29 May 2013 21:19:09 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2_api/should_list_server_flavors.yml b/spec/cassettes/v2/should_list_server_flavors.yml similarity index 93% rename from spec/cassettes/v2_api/should_list_server_flavors.yml rename to spec/cassettes/v2/should_list_server_flavors.yml index 4a32752..d7cb49a 100644 --- a/spec/cassettes/v2_api/should_list_server_flavors.yml +++ b/spec/cassettes/v2/should_list_server_flavors.yml @@ -26,21 +26,21 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} Cache-Control: - - s-maxage=62005 + - s-maxage=65355 X-Cloud-Auth: - 'true' Date: - - Tue, 28 May 2013 22:11:21 GMT + - Wed, 29 May 2013 21:19:04 GMT Front-End-Https: - 'on' X-Auth-Token: ! '{ONE-TIME-TOKEN}' - response-source: - - cloud-auth X-Storage-Token: ! '{ONE-TIME-TOKEN}' X-Server-Management-Url: - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} VIA: - 1.0 Repose (Repose/2.3.5) + X-Global-Auth: + - 'true' Connection: - keep-alive X-CDN-Management-Url: @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Tue, 28 May 2013 22:11:21 GMT + recorded_at: Wed, 29 May 2013 21:19:05 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors @@ -70,7 +70,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:21 GMT + - Wed, 29 May 2013 21:19:04 GMT Content-Length: - '1697' Content-Type: @@ -102,7 +102,7 @@ http_interactions: "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Tue, 28 May 2013 22:11:21 GMT + recorded_at: Wed, 29 May 2013 21:19:05 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2 @@ -123,7 +123,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:21 GMT + - Wed, 29 May 2013 21:19:04 GMT Content-Length: - '353' Content-Type: @@ -139,7 +139,7 @@ http_interactions: "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:21 GMT + recorded_at: Wed, 29 May 2013 21:19:05 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3 @@ -160,7 +160,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:22 GMT + - Wed, 29 May 2013 21:19:05 GMT Content-Length: - '353' Content-Type: @@ -175,7 +175,7 @@ http_interactions: "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:22 GMT + recorded_at: Wed, 29 May 2013 21:19:06 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4 @@ -196,7 +196,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:22 GMT + - Wed, 29 May 2013 21:19:05 GMT Content-Length: - '353' Content-Type: @@ -211,7 +211,7 @@ http_interactions: "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:22 GMT + recorded_at: Wed, 29 May 2013 21:19:06 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5 @@ -232,7 +232,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:22 GMT + - Wed, 29 May 2013 21:19:05 GMT Content-Length: - '355' Content-Type: @@ -247,7 +247,7 @@ http_interactions: "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:22 GMT + recorded_at: Wed, 29 May 2013 21:19:06 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6 @@ -268,7 +268,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:23 GMT + - Wed, 29 May 2013 21:19:05 GMT Content-Length: - '355' Content-Type: @@ -283,7 +283,7 @@ http_interactions: "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:23 GMT + recorded_at: Wed, 29 May 2013 21:19:06 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7 @@ -304,7 +304,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:23 GMT + - Wed, 29 May 2013 21:19:06 GMT Content-Length: - '357' Content-Type: @@ -320,7 +320,7 @@ http_interactions: "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:23 GMT + recorded_at: Wed, 29 May 2013 21:19:06 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8 @@ -341,7 +341,7 @@ http_interactions: message: headers: Date: - - Tue, 28 May 2013 22:11:23 GMT + - Wed, 29 May 2013 21:19:06 GMT Content-Length: - '358' Content-Type: @@ -357,5 +357,5 @@ http_interactions: "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Tue, 28 May 2013 22:11:23 GMT + recorded_at: Wed, 29 May 2013 21:19:07 GMT recorded_with: VCR 2.5.0 diff --git a/spec/integration/v1_integration_spec.rb b/spec/integration/v1_integration_spec.rb deleted file mode 100644 index a8f08a5..0000000 --- a/spec/integration/v1_integration_spec.rb +++ /dev/null @@ -1,35 +0,0 @@ -require 'integration_spec_helper' -require 'fog' -require 'knife/dsl' - -include Chef::Knife::DSL - -describe 'v1_api' do - before do - Chef::Config[:knife][:rackspace_version] = 'v1' - end - - it 'should list server flavors', :vcr do - stdout, stderr, status = knife_capture('rackspace flavor list') - status.should == 0 - stdout.should match_output(""" -ID Name Architecture RAM Disk -1 256 server 64-bit 256 10 GB -2 512 server 64-bit 512 20 GB -3 1GB server 64-bit 1024 40 GB -4 2GB server 64-bit 2048 80 GB -5 4GB server 64-bit 4096 160 GB -6 8GB server 64-bit 8192 320 GB -7 15.5GB server 64-bit 15872 620 GB -8 30GB server 64-bit 30720 1200 GB -""") - end - - it 'should list images', :vcr do - stdout, stderr, status = knife_capture('rackspace image list') - status.should == 0 - stdout = ANSI.unansi stdout - stdout.should match /^ID\s*Name\s*$/ - stdout.should include 'Ubuntu 12.04 LTS' - end -end diff --git a/spec/integration/v2_integration_spec.rb b/spec/integration/v2_integration_spec.rb index 54e3fa6..84f86e6 100644 --- a/spec/integration/v2_integration_spec.rb +++ b/spec/integration/v2_integration_spec.rb @@ -4,23 +4,32 @@ require 'chef/knife/rackspace_server_create' include Chef::Knife::DSL -describe 'v2_api' do - def server_list - stdout, stderr, status = knife_capture('rackspace server list') - status == 0 ? stdout : stderr - end +[:v1, :v2].each do |api| + describe api do + before(:each) do + Chef::Config[:knife][:rackspace_version] = api.to_s #v2 by default - before(:each) do - Chef::Config[:knife][:rackspace_version] = nil #v2 by default + Chef::Knife::Bootstrap.any_instance.stub(:run) + Chef::Knife::RackspaceServerCreate.any_instance.stub(:tcp_test_ssh).with(anything).and_return(true) + end - Chef::Knife::Bootstrap.any_instance.stub(:run) - Chef::Knife::RackspaceServerCreate.any_instance.stub(:tcp_test_ssh).with(anything).and_return(true) - end + it 'should list server flavors', :vcr do + stdout, stderr, status = knife_capture('rackspace flavor list') + status.should == 0 - it 'should list server flavors', :vcr do - stdout, stderr, status = knife_capture('rackspace flavor list') - status.should == 0 - stdout.should match_output(""" + expected_output = { + :v1 => """ +ID Name Architecture RAM Disk +1 256 server 64-bit 256 10 GB +2 512 server 64-bit 512 20 GB +3 1GB server 64-bit 1024 40 GB +4 2GB server 64-bit 2048 80 GB +5 4GB server 64-bit 4096 160 GB +6 8GB server 64-bit 8192 320 GB +7 15.5GB server 64-bit 15872 620 GB +8 30GB server 64-bit 30720 1200 GB +""", + :v2 => """ ID Name VCPUs RAM Disk 2 512MB Standard Instance 1 512 20 GB 3 1GB Standard Instance 1 1024 40 GB @@ -29,52 +38,53 @@ def server_list 6 8GB Standard Instance 4 8192 320 GB 7 15GB Standard Instance 6 15360 620 GB 8 30GB Standard Instance 8 30720 1200 GB -""") - end + """} + stdout = ANSI.unansi stdout + stdout.should match_output(expected_output[api]) + end - it 'should list images', :vcr do - stdout, stderr, status = knife_capture('rackspace image list') - status.should == 0 - stdout = ANSI.unansi stdout - stdout.should match /^ID\s*Name\s*$/ - stdout.should include 'Ubuntu 12.10 (Quantal Quetzal)' - end + it 'should list images', :vcr do + sample_image = { + :v1 => 'Ubuntu 12.04 LTS', + :v2 => 'Ubuntu 12.04 LTS (Precise Pangolin)' + } - it 'should manage servers', :vcr do - # image = '112' # v1 - image = '9922a7c7-5a42-4a56-bc6a-93f857ae2346' - # Faster? flavor 4, image 88130782-11ec-4795-b85f-b55a297ba446 - flavor = '2' - role = 'role[dummy_server_for_integration_test]' - server_list.should_not include 'test-node' + stdout, stderr, status = knife_capture('rackspace image list') + status.should == 0 + stdout = ANSI.unansi stdout + stdout.should match /^ID\s*Name\s*$/ + stdout.should include sample_image[api] + end - args = %W{rackspace server create -I #{image} -f #{flavor} -r 'role[webserver]' -N test-node -S test-server} - stdout, stderr, status = knife_capture(args) - status.should == 0 - instance_data = capture_instance_data(stdout, { - :name => 'Name', - :instance_id => 'Instance ID', - :public_ip => 'Public IP Address', - :private_ip => 'Private IP Address' - }) + it 'should manage servers', :vcr do + pending "The test works, but I'm in the process of cleaning up sensitive data in the cassettes" - # Wanted to assert active state, but got build during test - server_list.should match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ + image = { + :v1 => '112', + :v2 => 'e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce' + } + flavor = 2 + server_list.should_not include 'test-node' - args = %W{rackspace server delete #{instance_data[:instance_id]} -y} - stdout, stderr, status = knife_capture(args) - status.should == 0 + args = %W{rackspace server create -I #{image[api]} -f #{flavor} -N test-node -S test-server} + stdout, stderr, status = knife_capture(args) + status.should == 0 + instance_data = capture_instance_data(stdout, { + :name => 'Name', + :instance_id => 'Instance ID', + :public_ip => 'Public IP Address', + :private_ip => 'Private IP Address' + }) - # Need to deal with deleting vs deleted states before we can check this - # server_list.should_not match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ - end + # Wanted to assert active state, but got build during test + server_list.should match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ - def capture_instance_data(stdout, labels = {}) - result = {} - labels.each do | key, label | - result[key] = clean_output(stdout).match(/^#{label}: (.*)$/)[1] + args = %W{rackspace server delete #{instance_data[:instance_id]} -y} + stdout, stderr, status = knife_capture(args) + status.should == 0 + + # Need to deal with deleting vs deleted states before we can check this + # server_list.should_not match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ end - result end - -end +end \ No newline at end of file diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index 95743bd..c5e0dee 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -13,6 +13,7 @@ c.hook_into :excon c.configure_rspec_metadata! + # Sensitive data c.filter_sensitive_data('{RAX_USERNAME}') { Chef::Config[:knife][:rackspace_api_username] } c.filter_sensitive_data('{RAX_PASSWORD}') { Chef::Config[:knife][:rackspace_api_key] } c.filter_sensitive_data('{CDN-TENANT-NAME}') { ENV['RS_CDN_TENANT_NAME'] } @@ -78,4 +79,17 @@ def clean_output(output) description do 'Compare actual and expected output, ignoring ansi color and trailing whitespace' end -end \ No newline at end of file +end + +def server_list + stdout, stderr, status = knife_capture('rackspace server list') + status == 0 ? stdout : stderr +end + +def capture_instance_data(stdout, labels = {}) + result = {} + labels.each do | key, label | + result[key] = clean_output(stdout).match(/^#{label}: (.*)$/)[1] + end + result +end From 2bfb7b5c00f584bc60eaabd872dca06449863236 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 10:43:39 -0500 Subject: [PATCH 06/17] Ready for Travis --- .chef/knife.rb | 18 +++++++++++ .travis.yml | 18 +++++++++++ Rakefile | 4 +++ knife-rackspace.gemspec | 1 + ...ntegration_spec.rb => integration_spec.rb} | 2 +- spec/integration_spec_helper.rb | 31 +++++++++++++++++++ 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 .chef/knife.rb create mode 100644 .travis.yml rename spec/integration/{v2_integration_spec.rb => integration_spec.rb} (99%) diff --git a/.chef/knife.rb b/.chef/knife.rb new file mode 100644 index 0000000..67744d0 --- /dev/null +++ b/.chef/knife.rb @@ -0,0 +1,18 @@ +current_dir = File.dirname(__FILE__) +log_level :info +log_location STDOUT +#node_name "knife-rackspace" +#client_key "#{current_dir}/knife-rackspace.pem" +#validation_client_name "knife-rackspace-validator" +#validation_key "#{current_dir}/knife-rackspace-validator.pem" +#chef_server_url "https://api.opscode.com/organizations/knife-rackspace" +#cache_type 'basicfile' +#cache_options( :path => "#{env['home']}/.chef/checksums" ) +#cookbook_path ["#{current_dir}/../cookbooks"] + +#knife[:rackspace_api_username] = "#{env['os_username']}" +#knife[:rackspace_api_key] = "#{env['os_password']}" + +#https_proxy 'https://localhost:8888' +#knife[:ssl_verify_peer] = false + diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..3ac5968 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,18 @@ +--- +language: ruby +rvm: +- 2.0.0 +- 1.9.3 +- 1.8.7 +env: + global: + - secure: ! 'eEsikE/p2yz7/cFvCN/NOoljxBqjzsTWnKC7iZ+fEGGsyhKVJgWn4AasBusZ + + mhtQcOqwakRulzVc+EZN4pqWHgaMC7SnSwhqRU5u1E+BPI4iWNsu+7rjiXhE + + cJK1vE8YodgsgRDQ6evZVQLkwJpRk0qq2tM2LDqpzvy2MeQJIGc=' + - secure: ! 'V3ohIIF3I8lD05zTUs2nu+CcIzBYcvt1c1euRJ+SPcAH493b4cPquw1NZNFy + + WDIW+1qDQi1DXr8C3Yq8bL4+pY66SukHtxyLhx0V26lGUvI8naq3IqageBQK + + pkb2zZwVYO0a5mLEKOI/7omExBVHDxxX9Bw45vCHLKId3Wt21HE=' diff --git a/Rakefile b/Rakefile index 9c05b84..5814273 100644 --- a/Rakefile +++ b/Rakefile @@ -19,3 +19,7 @@ require 'bundler' Bundler::GemHelper.install_tasks + +require 'rspec/core/rake_task' +RSpec::Core::RakeTask.new(:spec) +task :default => :spec diff --git a/knife-rackspace.gemspec b/knife-rackspace.gemspec index 8a91b93..9ca41fa 100644 --- a/knife-rackspace.gemspec +++ b/knife-rackspace.gemspec @@ -26,4 +26,5 @@ Gem::Specification.new do |s| s.add_development_dependency "vcr" s.add_development_dependency "pry-debugger" s.add_development_dependency "ansi" + s.add_development_dependency "rake" end diff --git a/spec/integration/v2_integration_spec.rb b/spec/integration/integration_spec.rb similarity index 99% rename from spec/integration/v2_integration_spec.rb rename to spec/integration/integration_spec.rb index 84f86e6..f7cb827 100644 --- a/spec/integration/v2_integration_spec.rb +++ b/spec/integration/integration_spec.rb @@ -2,7 +2,7 @@ require 'fog' require 'knife/dsl' require 'chef/knife/rackspace_server_create' -include Chef::Knife::DSL +# include Chef::Knife::DSL [:v1, :v2].each do |api| describe api do diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index c5e0dee..dd085b0 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -93,3 +93,34 @@ def capture_instance_data(stdout, labels = {}) end result end + +# Ideally this belongs in knife-dsl, but it causes a scoping conflict with knife.rb. +# See https://github.com/chef-workflow/knife-dsl/issues/2 +def knife_capture(command, args=[], input=nil) + null = Gem.win_platform? ? File.open('NUL:', 'r') : File.open('/dev/null', 'r') + + if defined? Pry + Pry.config.input = STDIN + Pry.config.output = STDOUT + end + + warn = $VERBOSE + $VERBOSE = nil + old_stderr, old_stdout, old_stdin = $stderr, $stdout, $stdin + + $stderr = StringIO.new('', 'r+') + $stdout = StringIO.new('', 'r+') + $stdin = input ? StringIO.new(input, 'r') : null + $VERBOSE = warn + + status = Chef::Knife::DSL::Support.run_knife(command, args) + return $stdout.string, $stderr.string, status +ensure + warn = $VERBOSE + $VERBOSE = nil + $stderr = old_stderr + $stdout = old_stdout + $stdin = old_stdin + $VERBOSE = warn + null.close +end \ No newline at end of file From 4c0919d9b4d544e250286fe3e641b9d0e3b38e31 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 11:18:05 -0500 Subject: [PATCH 07/17] Default rake task runs once with cassettes, once without --- Rakefile | 15 ++++++++++++++- spec/integration_spec_helper.rb | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index 5814273..349c2d8 100644 --- a/Rakefile +++ b/Rakefile @@ -22,4 +22,17 @@ Bundler::GemHelper.install_tasks require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) -task :default => :spec +task :default => [:spec, 'integration:live'] + +namespace :integration do + desc 'Run the integration tests' + RSpec::Core::RakeTask.new(:test) do |t| + t.pattern = 'spec/integration/**' + end + + desc 'Run the integration tests live (no VCR cassettes)' + task :live do + ENV['INTEGRATION_TESTS'] = 'live' + Rake::Task['integration:test'].invoke + end +end \ No newline at end of file diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index dd085b0..f7b5163 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -43,6 +43,7 @@ # Ignores cache busting parameters. :match_requests_on => [:host, :path] } + c.default_cassette_options.merge!({:record => :all}) if ENV['INTEGRATION_TESTS'] == 'live' end def filter_headers(interaction, pattern, placeholder) From 8a521122090c4a1a899cd711f0ca020ff5c9ebb7 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 11:29:37 -0500 Subject: [PATCH 08/17] Switching placeholders from {...} to [...] to try to avoid invalid URIs --- spec/cassettes/v1/should_list_images.yml | 34 +-- .../v1/should_list_server_flavors.yml | 128 ++++---- spec/cassettes/v2/should_list_images.yml | 282 +++++++++--------- .../v2/should_list_server_flavors.yml | 156 +++++----- spec/integration_spec_helper.rb | 14 +- 5 files changed, 307 insertions(+), 307 deletions(-) diff --git a/spec/cassettes/v1/should_list_images.yml b/spec/cassettes/v1/should_list_images.yml index 8b887ee..d1f7b12 100644 --- a/spec/cassettes/v1/should_list_images.yml +++ b/spec/cassettes/v1/should_list_images.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '{RAX_PASSWORD}' + - ! '[RAX_PASSWORD]' X-Auth-User: - - ! '{RAX_USERNAME}' + - ! '[RAX_USERNAME]' response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] Cache-Control: - - s-maxage=65356 + - s-maxage=83181 X-Cloud-Auth: - 'true' Date: - - Wed, 29 May 2013 21:19:03 GMT + - Thu, 30 May 2013 16:28:39 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '{ONE-TIME-TOKEN}' - X-Storage-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Storage-Token: ! '[ONE-TIME-TOKEN]' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} + - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] body: encoding: UTF-8 string: '' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/images/detail.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/images/detail.json body: encoding: US-ASCII string: '' @@ -61,7 +61,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -74,7 +74,7 @@ http_interactions: Last-Modified: - Mon, 09 Jul 2012 17:15:23 GMT X-PURGE-KEY: - - /{TENANT-ID}/images + - /[TENANT-ID]/images Cache-Control: - s-maxage=1800 Content-Type: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '2547' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:39 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1561' + - '95' Via: - 1.1 varnish Connection: @@ -119,5 +119,5 @@ http_interactions: 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1/should_list_server_flavors.yml b/spec/cassettes/v1/should_list_server_flavors.yml index e632146..de79835 100644 --- a/spec/cassettes/v1/should_list_server_flavors.yml +++ b/spec/cassettes/v1/should_list_server_flavors.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '{RAX_PASSWORD}' + - ! '[RAX_PASSWORD]' X-Auth-User: - - ! '{RAX_USERNAME}' + - ! '[RAX_USERNAME]' response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] Cache-Control: - - s-maxage=65356 + - s-maxage=83182 X-Cloud-Auth: - 'true' Date: - - Wed, 29 May 2013 21:19:03 GMT + - Thu, 30 May 2013 16:28:38 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '{ONE-TIME-TOKEN}' - X-Storage-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Storage-Token: ! '[ONE-TIME-TOKEN]' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} + - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] body: encoding: UTF-8 string: '' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/detail.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/detail.json body: encoding: US-ASCII string: '' @@ -61,7 +61,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '422' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1613' + - '1576' Via: - 1.1 varnish Connection: @@ -98,10 +98,10 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/1.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/1.json body: encoding: US-ASCII string: '' @@ -110,7 +110,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -131,10 +131,10 @@ http_interactions: Content-Length: - '59' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1613' + - '1576' Via: - 1.1 varnish Connection: @@ -143,10 +143,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/2.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/2.json body: encoding: US-ASCII string: '' @@ -155,7 +155,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -176,10 +176,10 @@ http_interactions: Content-Length: - '59' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1469' + - '804' Via: - 1.1 varnish Connection: @@ -188,10 +188,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/3.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/3.json body: encoding: US-ASCII string: '' @@ -200,7 +200,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -221,10 +221,10 @@ http_interactions: Content-Length: - '60' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1612' + - '1575' Via: - 1.1 varnish Connection: @@ -233,10 +233,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/4.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/4.json body: encoding: US-ASCII string: '' @@ -245,7 +245,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -266,10 +266,10 @@ http_interactions: Content-Length: - '60' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1562' + - '1575' Via: - 1.1 varnish Connection: @@ -278,10 +278,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/5.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/5.json body: encoding: US-ASCII string: '' @@ -290,7 +290,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -311,10 +311,10 @@ http_interactions: Content-Length: - '61' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1612' + - '1575' Via: - 1.1 varnish Connection: @@ -323,10 +323,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:38 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/6.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/6.json body: encoding: US-ASCII string: '' @@ -335,7 +335,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -356,10 +356,10 @@ http_interactions: Content-Length: - '61' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:38 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '738' + - '1575' Via: - 1.1 varnish Connection: @@ -368,10 +368,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/7.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/7.json body: encoding: US-ASCII string: '' @@ -380,7 +380,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -401,10 +401,10 @@ http_interactions: Content-Length: - '65' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:39 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1561' + - '61' Via: - 1.1 varnish Connection: @@ -413,10 +413,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID}/flavors/8.json + uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/8.json body: encoding: US-ASCII string: '' @@ -425,7 +425,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 203 @@ -446,10 +446,10 @@ http_interactions: Content-Length: - '64' Date: - - Wed, 29 May 2013 21:19:03 GMT - X-Varnish: ! '{VARNISH-REQUEST-ID}' + - Thu, 30 May 2013 16:28:39 GMT + X-Varnish: ! '[VARNISH-REQUEST-ID]' Age: - - '1611' + - '123' Via: - 1.1 varnish Connection: @@ -458,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:04 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_images.yml b/spec/cassettes/v2/should_list_images.yml index edee897..aa4753c 100644 --- a/spec/cassettes/v2/should_list_images.yml +++ b/spec/cassettes/v2/should_list_images.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '{RAX_PASSWORD}' + - ! '[RAX_PASSWORD]' X-Auth-User: - - ! '{RAX_USERNAME}' + - ! '[RAX_USERNAME]' response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] Cache-Control: - - s-maxage=65353 + - s-maxage=83178 X-Cloud-Auth: - 'true' Date: - - Wed, 29 May 2013 21:19:06 GMT + - Thu, 30 May 2013 16:28:42 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '{ONE-TIME-TOKEN}' - X-Storage-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Storage-Token: ! '[ONE-TIME-TOKEN]' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} + - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] body: encoding: UTF-8 string: '' http_version: - recorded_at: Wed, 29 May 2013 21:19:07 GMT + recorded_at: Thu, 30 May 2013 16:28:42 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images body: encoding: US-ASCII string: '' @@ -63,227 +63,227 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:08 GMT + - Thu, 30 May 2013 16:28:47 GMT Content-Length: - '22207' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"images": [{"id": "3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 x64 SP2"}, {"id": "bfdb3838-152e-46c2-88a3-c45f7423bcd9", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Standard SP1"}, {"id": - "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 7 (Wheezy)"}, {"id": "fc62f5c8-ca85-4166-8483-46bfcbca45cd", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Web SP1"}, {"id": "1d6cf74a-af8a-4235-abf5-edddd9d58941", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Standard SP1"}, {"id": "f2527410-310d-46af-a2fe-7debe6cddc35", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2527410-310d-46af-a2fe-7debe6cddc35", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Standard SP1"}, {"id": "fc2448b4-da85-4893-b0e7-6c8794e608b4", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates)"}, {"id": "f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012"}, {"id": "74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Web SP1"}, {"id": "f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Standard SP1"}, {"id": "05313f52-c19b-4640-b5ed-c7b8e8d17775", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Web SP2"}, {"id": "37c9e70e-bf94-4631-b76c-de21246dff34", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/37c9e70e-bf94-4631-b76c-de21246dff34", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Standard SP2"}, {"id": "59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Web SP1"}, {"id": "5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Web SP2"}, {"id": "da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Standard SP2"}, {"id": - "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates)"}, {"id": "48df4181-040e-4821-8723-d9e4ba908d2f", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/48df4181-040e-4821-8723-d9e4ba908d2f", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1"}, {"id": "9922a7c7-5a42-4a56-bc6a-93f857ae2346", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 13.04 (Raring Ringtail)"}, {"id": "e298e0d7-4fea-45f0-9694-7643e300fb43", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e298e0d7-4fea-45f0-9694-7643e300fb43", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Gentoo 13.1"}, {"id": "89e9ce4a-1261-49c3-8a35-17224411659d", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/89e9ce4a-1261-49c3-8a35-17224411659d", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 18 (Spherical Cow)"}, {"id": "ae725da5-a942-496f-87ff-8319d23ddec1", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/ae725da5-a942-496f-87ff-8319d23ddec1", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/ae725da5-a942-496f-87ff-8319d23ddec1", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "FreeBSD - 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Arch 2013.2"}, {"id": "88130782-11ec-4795-b85f-b55a297ba446", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/88130782-11ec-4795-b85f-b55a297ba446", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/88130782-11ec-4795-b85f-b55a297ba446", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.10 (Quantal Quetzal)"}, {"id": "e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.04 LTS (Precise Pangolin)"}, {"id": "d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 10.04 LTS (Lucid Lynx)"}, {"id": "e189a89b-722e-4854-a886-25b22be8be7c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e189a89b-722e-4854-a886-25b22be8be7c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e189a89b-722e-4854-a886-25b22be8be7c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.3"}, {"id": "0119af00-161f-46f4-8e76-0cbf799d7e7e", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.1"}, {"id": "e21a4251-41c6-44b5-aa39-20e1982487f2", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e21a4251-41c6-44b5-aa39-20e1982487f2", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.8"}, {"id": "76856c8b-e56e-4301-b454-c8cd1be22cfb", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 17 (Beefy Miracle)"}, {"id": "8ae428cd-0490-4f3a-818f-28213a7286b0", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/8ae428cd-0490-4f3a-818f-28213a7286b0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 6.06 (Squeeze)"}, {"id": "da1f0392-8c64-468f-a839-a9e56caebf07", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/da1f0392-8c64-468f-a839-a9e56caebf07", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da1f0392-8c64-468f-a839-a9e56caebf07", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/92ac9889-2ede-4633-ab39-25560436d83a", + 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/92ac9889-2ede-4633-ab39-25560436d83a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/436727f4-9a72-4439-99b4-975f92c87c33", + 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/436727f4-9a72-4439-99b4-975f92c87c33", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2f15076a-dfd5-4441-9eba-3b001e4630de", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Web SP1"}, {"id": "efc98a61-3816-4049-a785-f5fe0923d2d6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/efc98a61-3816-4049-a785-f5fe0923d2d6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SharePoint 2013 Foundation with SQL 2012 Standard"}, {"id": - "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 SP1 Standard"}, - {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/224da8a8-130d-4195-b8c6-db5863eb8c84", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 Express"}, {"id": - "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/644be485-411d-4bac-aba5-5f60641d92b5", + "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/644be485-411d-4bac-aba5-5f60641d92b5", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.5"}, {"id": "096c55e5-39f3-48cf-a413-68d9377a3ab6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE 12.1"}]}' http_version: - recorded_at: Wed, 29 May 2013 21:19:09 GMT + recorded_at: Thu, 30 May 2013 16:28:47 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_server_flavors.yml b/spec/cassettes/v2/should_list_server_flavors.yml index d7cb49a..2d95006 100644 --- a/spec/cassettes/v2/should_list_server_flavors.yml +++ b/spec/cassettes/v2/should_list_server_flavors.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '{RAX_PASSWORD}' + - ! '[RAX_PASSWORD]' X-Auth-User: - - ! '{RAX_USERNAME}' + - ! '[RAX_USERNAME]' response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] Cache-Control: - - s-maxage=65355 + - s-maxage=83181 X-Cloud-Auth: - 'true' Date: - - Wed, 29 May 2013 21:19:04 GMT + - Thu, 30 May 2013 16:28:39 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '{ONE-TIME-TOKEN}' - X-Storage-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Storage-Token: ! '[ONE-TIME-TOKEN]' X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/{TENANT-ID} + - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/{CDN-TENANT-NAME} + - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] body: encoding: UTF-8 string: '' http_version: - recorded_at: Wed, 29 May 2013 21:19:05 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors body: encoding: US-ASCII string: '' @@ -63,49 +63,49 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:04 GMT + - Thu, 30 May 2013 16:28:39 GMT Content-Length: - '1697' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/2", + string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/2", "rel": "bookmark"}], "name": "512MB Standard Instance"}, {"id": "3", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/3", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/3", "rel": "bookmark"}], "name": "1GB Standard Instance"}, {"id": "4", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/4", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/4", "rel": "bookmark"}], "name": "2GB Standard Instance"}, {"id": "5", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/5", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/5", "rel": "bookmark"}], "name": "4GB Standard Instance"}, {"id": "6", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/6", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/6", "rel": "bookmark"}], "name": "8GB Standard Instance"}, {"id": "7", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/7", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/7", "rel": "bookmark"}], "name": "15GB Standard Instance"}, {"id": "8", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/8", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Wed, 29 May 2013 21:19:05 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/2 body: encoding: US-ASCII string: '' @@ -116,33 +116,33 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:04 GMT + - Thu, 30 May 2013 16:28:39 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "512MB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/2", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/2", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/2", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/2", "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:05 GMT + recorded_at: Thu, 30 May 2013 16:28:39 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/3 body: encoding: US-ASCII string: '' @@ -153,32 +153,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:05 GMT + - Thu, 30 May 2013 16:28:40 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/3", + string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/3", "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:06 GMT + recorded_at: Thu, 30 May 2013 16:28:40 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/4 body: encoding: US-ASCII string: '' @@ -189,32 +189,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:05 GMT + - Thu, 30 May 2013 16:28:40 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/4", + string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/4", "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:06 GMT + recorded_at: Thu, 30 May 2013 16:28:41 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/5 body: encoding: US-ASCII string: '' @@ -225,32 +225,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:05 GMT + - Thu, 30 May 2013 16:28:41 GMT Content-Length: - '355' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/5", + string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/5", "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:06 GMT + recorded_at: Thu, 30 May 2013 16:28:41 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/6 body: encoding: US-ASCII string: '' @@ -261,32 +261,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:05 GMT + - Thu, 30 May 2013 16:28:41 GMT Content-Length: - '355' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/6", + string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/6", "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:06 GMT + recorded_at: Thu, 30 May 2013 16:28:41 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/7 body: encoding: US-ASCII string: '' @@ -297,33 +297,33 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:06 GMT + - Thu, 30 May 2013 16:28:41 GMT Content-Length: - '357' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "15GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/7", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/7", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/7", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/7", "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:06 GMT + recorded_at: Thu, 30 May 2013 16:28:41 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8 + uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/8 body: encoding: US-ASCII string: '' @@ -334,28 +334,28 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '{ONE-TIME-TOKEN}' + X-Auth-Token: ! '[ONE-TIME-TOKEN]' response: status: code: 200 message: headers: Date: - - Wed, 29 May 2013 21:19:06 GMT + - Thu, 30 May 2013 16:28:41 GMT Content-Length: - '358' Content-Type: - application/json - X-Compute-Request-Id: ! '{COMPUTE-REQUEST-ID}' + X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "30GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/{TENANT-ID}/flavors/8", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/{TENANT-ID}/flavors/8", + "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/8", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/8", "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Wed, 29 May 2013 21:19:07 GMT + recorded_at: Thu, 30 May 2013 16:28:41 GMT recorded_with: VCR 2.5.0 diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index f7b5163..fba47cf 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -14,18 +14,18 @@ c.configure_rspec_metadata! # Sensitive data - c.filter_sensitive_data('{RAX_USERNAME}') { Chef::Config[:knife][:rackspace_api_username] } - c.filter_sensitive_data('{RAX_PASSWORD}') { Chef::Config[:knife][:rackspace_api_key] } - c.filter_sensitive_data('{CDN-TENANT-NAME}') { ENV['RS_CDN_TENANT_NAME'] } - c.filter_sensitive_data('{TENANT-ID}') { ENV['RS_TENANT_ID'] } + c.filter_sensitive_data('[RAX_USERNAME]') { Chef::Config[:knife][:rackspace_api_username] } + c.filter_sensitive_data('[RAX_PASSWORD]') { Chef::Config[:knife][:rackspace_api_key] } + c.filter_sensitive_data('[CDN-TENANT-NAME]') { ENV['RS_CDN_TENANT_NAME'] } + c.filter_sensitive_data('[TENANT-ID]') { ENV['RS_TENANT_ID'] } c.before_record do |interaction| # Sensitive data - filter_headers(interaction, /X-\w*-Token/, '{ONE-TIME-TOKEN}') + filter_headers(interaction, /X-\w*-Token/, '[ONE-TIME-TOKEN]') # Transient data (trying to avoid unnecessary cassette churn) - filter_headers(interaction, 'X-Compute-Request-Id', '{COMPUTE-REQUEST-ID}') - filter_headers(interaction, 'X-Varnish', '{VARNISH-REQUEST-ID}') + filter_headers(interaction, 'X-Compute-Request-Id', '[COMPUTE-REQUEST-ID]') + filter_headers(interaction, 'X-Varnish', '[VARNISH-REQUEST-ID]') # Throw away build state - just makes server.wait_for loops really long during replay begin From 46ec66e999a5c18b4b548263b2afa62124c55775 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 11:42:35 -0500 Subject: [PATCH 09/17] Continuing the quest for a placeholder that consistently passes URI validation. Not sure why the invalid URI error is not consistent across all systems. --- spec/cassettes/v1/should_list_images.yml | 36 +-- .../v1/should_list_server_flavors.yml | 130 ++++---- spec/cassettes/v2/should_list_images.yml | 282 +++++++++--------- .../v2/should_list_server_flavors.yml | 156 +++++----- spec/integration_spec_helper.rb | 14 +- 5 files changed, 309 insertions(+), 309 deletions(-) diff --git a/spec/cassettes/v1/should_list_images.yml b/spec/cassettes/v1/should_list_images.yml index d1f7b12..245ba4c 100644 --- a/spec/cassettes/v1/should_list_images.yml +++ b/spec/cassettes/v1/should_list_images.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '[RAX_PASSWORD]' + - _RAX_PASSWORD_ X-Auth-User: - - ! '[RAX_USERNAME]' + - _RAX_USERNAME_ response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=83181 + - s-maxage=82443 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:28:39 GMT + - Thu, 30 May 2013 16:40:57 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '[ONE-TIME-TOKEN]' - X-Storage-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ + X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] + - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://cdn1.clouddrive.com/v1/_CDN-TENANT-NAME_ body: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:57 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/images/detail.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/images/detail.json body: encoding: US-ASCII string: '' @@ -61,10 +61,10 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -74,7 +74,7 @@ http_interactions: Last-Modified: - Mon, 09 Jul 2012 17:15:23 GMT X-PURGE-KEY: - - /[TENANT-ID]/images + - /_TENANT-ID_/images Cache-Control: - s-maxage=1800 Content-Type: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '2547' Date: - - Thu, 30 May 2013 16:28:39 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:58 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '95' + - '0' Via: - 1.1 varnish Connection: @@ -119,5 +119,5 @@ http_interactions: 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:58 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1/should_list_server_flavors.yml b/spec/cassettes/v1/should_list_server_flavors.yml index de79835..cf67640 100644 --- a/spec/cassettes/v1/should_list_server_flavors.yml +++ b/spec/cassettes/v1/should_list_server_flavors.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '[RAX_PASSWORD]' + - _RAX_PASSWORD_ X-Auth-User: - - ! '[RAX_USERNAME]' + - _RAX_USERNAME_ response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=83182 + - s-maxage=82444 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:28:38 GMT + - Thu, 30 May 2013 16:40:56 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '[ONE-TIME-TOKEN]' - X-Storage-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ + X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] + - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://cdn1.clouddrive.com/v1/_CDN-TENANT-NAME_ body: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/detail.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/detail.json body: encoding: US-ASCII string: '' @@ -61,7 +61,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '422' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1576' + - '861' Via: - 1.1 varnish Connection: @@ -98,10 +98,10 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/1.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/1.json body: encoding: US-ASCII string: '' @@ -110,7 +110,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -131,10 +131,10 @@ http_interactions: Content-Length: - '59' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1576' + - '15' Via: - 1.1 varnish Connection: @@ -143,10 +143,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/2.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/2.json body: encoding: US-ASCII string: '' @@ -155,7 +155,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -176,10 +176,10 @@ http_interactions: Content-Length: - '59' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '804' + - '1542' Via: - 1.1 varnish Connection: @@ -188,10 +188,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/3.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/3.json body: encoding: US-ASCII string: '' @@ -200,7 +200,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -221,10 +221,10 @@ http_interactions: Content-Length: - '60' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1575' + - '15' Via: - 1.1 varnish Connection: @@ -233,10 +233,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/4.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/4.json body: encoding: US-ASCII string: '' @@ -245,10 +245,10 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -266,10 +266,10 @@ http_interactions: Content-Length: - '60' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1575' + - '0' Via: - 1.1 varnish Connection: @@ -278,10 +278,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/5.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/5.json body: encoding: US-ASCII string: '' @@ -290,7 +290,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -311,10 +311,10 @@ http_interactions: Content-Length: - '61' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1575' + - '1541' Via: - 1.1 varnish Connection: @@ -323,10 +323,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:38 GMT + recorded_at: Thu, 30 May 2013 16:40:56 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/6.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/6.json body: encoding: US-ASCII string: '' @@ -335,7 +335,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -356,10 +356,10 @@ http_interactions: Content-Length: - '61' Date: - - Thu, 30 May 2013 16:28:38 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:56 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1575' + - '14' Via: - 1.1 varnish Connection: @@ -368,10 +368,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:57 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/7.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/7.json body: encoding: US-ASCII string: '' @@ -380,7 +380,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -401,10 +401,10 @@ http_interactions: Content-Length: - '65' Date: - - Thu, 30 May 2013 16:28:39 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:57 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '61' + - '799' Via: - 1.1 varnish Connection: @@ -413,10 +413,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:57 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID]/flavors/8.json + uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/8.json body: encoding: US-ASCII string: '' @@ -425,7 +425,7 @@ http_interactions: - fog/1.11.1 Content-Type: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 203 @@ -446,10 +446,10 @@ http_interactions: Content-Length: - '64' Date: - - Thu, 30 May 2013 16:28:39 GMT - X-Varnish: ! '[VARNISH-REQUEST-ID]' + - Thu, 30 May 2013 16:40:57 GMT + X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '123' + - '861' Via: - 1.1 varnish Connection: @@ -458,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:57 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_images.yml b/spec/cassettes/v2/should_list_images.yml index aa4753c..7d2b694 100644 --- a/spec/cassettes/v2/should_list_images.yml +++ b/spec/cassettes/v2/should_list_images.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '[RAX_PASSWORD]' + - _RAX_PASSWORD_ X-Auth-User: - - ! '[RAX_USERNAME]' + - _RAX_USERNAME_ response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=83178 + - s-maxage=82441 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:28:42 GMT + - Thu, 30 May 2013 16:40:59 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '[ONE-TIME-TOKEN]' - X-Storage-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ + X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] + - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://cdn1.clouddrive.com/v1/_CDN-TENANT-NAME_ body: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:28:42 GMT + recorded_at: Thu, 30 May 2013 16:40:59 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images body: encoding: US-ASCII string: '' @@ -63,227 +63,227 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:47 GMT + - Thu, 30 May 2013 16:41:02 GMT Content-Length: - '22207' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"images": [{"id": "3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 x64 SP2"}, {"id": "bfdb3838-152e-46c2-88a3-c45f7423bcd9", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Standard SP1"}, {"id": - "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 7 (Wheezy)"}, {"id": "fc62f5c8-ca85-4166-8483-46bfcbca45cd", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Web SP1"}, {"id": "1d6cf74a-af8a-4235-abf5-edddd9d58941", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Standard SP1"}, {"id": "f2527410-310d-46af-a2fe-7debe6cddc35", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2527410-310d-46af-a2fe-7debe6cddc35", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Standard SP1"}, {"id": "fc2448b4-da85-4893-b0e7-6c8794e608b4", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates)"}, {"id": "f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012"}, {"id": "74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Web SP1"}, {"id": "f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Standard SP1"}, {"id": "05313f52-c19b-4640-b5ed-c7b8e8d17775", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Web SP2"}, {"id": "37c9e70e-bf94-4631-b76c-de21246dff34", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/37c9e70e-bf94-4631-b76c-de21246dff34", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Standard SP2"}, {"id": "59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Web SP1"}, {"id": "5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Web SP2"}, {"id": "da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Standard SP2"}, {"id": - "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates)"}, {"id": "48df4181-040e-4821-8723-d9e4ba908d2f", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/48df4181-040e-4821-8723-d9e4ba908d2f", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1"}, {"id": "9922a7c7-5a42-4a56-bc6a-93f857ae2346", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 13.04 (Raring Ringtail)"}, {"id": "e298e0d7-4fea-45f0-9694-7643e300fb43", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e298e0d7-4fea-45f0-9694-7643e300fb43", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Gentoo 13.1"}, {"id": "89e9ce4a-1261-49c3-8a35-17224411659d", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/89e9ce4a-1261-49c3-8a35-17224411659d", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 18 (Spherical Cow)"}, {"id": "ae725da5-a942-496f-87ff-8319d23ddec1", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/ae725da5-a942-496f-87ff-8319d23ddec1", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/ae725da5-a942-496f-87ff-8319d23ddec1", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "FreeBSD - 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Arch 2013.2"}, {"id": "88130782-11ec-4795-b85f-b55a297ba446", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/88130782-11ec-4795-b85f-b55a297ba446", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/88130782-11ec-4795-b85f-b55a297ba446", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.10 (Quantal Quetzal)"}, {"id": "e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.04 LTS (Precise Pangolin)"}, {"id": "d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 10.04 LTS (Lucid Lynx)"}, {"id": "e189a89b-722e-4854-a886-25b22be8be7c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e189a89b-722e-4854-a886-25b22be8be7c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e189a89b-722e-4854-a886-25b22be8be7c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.3"}, {"id": "0119af00-161f-46f4-8e76-0cbf799d7e7e", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.1"}, {"id": "e21a4251-41c6-44b5-aa39-20e1982487f2", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e21a4251-41c6-44b5-aa39-20e1982487f2", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.8"}, {"id": "76856c8b-e56e-4301-b454-c8cd1be22cfb", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 17 (Beefy Miracle)"}, {"id": "8ae428cd-0490-4f3a-818f-28213a7286b0", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/8ae428cd-0490-4f3a-818f-28213a7286b0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 6.06 (Squeeze)"}, {"id": "da1f0392-8c64-468f-a839-a9e56caebf07", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/da1f0392-8c64-468f-a839-a9e56caebf07", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da1f0392-8c64-468f-a839-a9e56caebf07", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/92ac9889-2ede-4633-ab39-25560436d83a", + 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/92ac9889-2ede-4633-ab39-25560436d83a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/436727f4-9a72-4439-99b4-975f92c87c33", + 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/436727f4-9a72-4439-99b4-975f92c87c33", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2f15076a-dfd5-4441-9eba-3b001e4630de", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Web SP1"}, {"id": "efc98a61-3816-4049-a785-f5fe0923d2d6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/efc98a61-3816-4049-a785-f5fe0923d2d6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SharePoint 2013 Foundation with SQL 2012 Standard"}, {"id": - "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 SP1 Standard"}, - {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/224da8a8-130d-4195-b8c6-db5863eb8c84", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 Express"}, {"id": - "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/644be485-411d-4bac-aba5-5f60641d92b5", + "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/644be485-411d-4bac-aba5-5f60641d92b5", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.5"}, {"id": "096c55e5-39f3-48cf-a413-68d9377a3ab6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE 12.1"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:28:47 GMT + recorded_at: Thu, 30 May 2013 16:41:02 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_server_flavors.yml b/spec/cassettes/v2/should_list_server_flavors.yml index 2d95006..1053eca 100644 --- a/spec/cassettes/v2/should_list_server_flavors.yml +++ b/spec/cassettes/v2/should_list_server_flavors.yml @@ -10,9 +10,9 @@ http_interactions: User-Agent: - fog/1.11.1 X-Auth-Key: - - ! '[RAX_PASSWORD]' + - _RAX_PASSWORD_ X-Auth-User: - - ! '[RAX_USERNAME]' + - _RAX_USERNAME_ response: status: code: 204 @@ -24,19 +24,19 @@ http_interactions: - Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User X-Storage-Url: - - https://storage101.dfw1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=83181 + - s-maxage=82442 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:28:39 GMT + - Thu, 30 May 2013 16:40:58 GMT Front-End-Https: - 'on' - X-Auth-Token: ! '[ONE-TIME-TOKEN]' - X-Storage-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ + X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/[TENANT-ID] + - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -44,15 +44,15 @@ http_interactions: Connection: - keep-alive X-CDN-Management-Url: - - https://cdn1.clouddrive.com/v1/[CDN-TENANT-NAME] + - https://cdn1.clouddrive.com/v1/_CDN-TENANT-NAME_ body: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:58 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors body: encoding: US-ASCII string: '' @@ -63,49 +63,49 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:39 GMT + - Thu, 30 May 2013 16:40:58 GMT Content-Length: - '1697' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/2", + string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/2", "rel": "bookmark"}], "name": "512MB Standard Instance"}, {"id": "3", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/3", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/3", "rel": "bookmark"}], "name": "1GB Standard Instance"}, {"id": "4", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/4", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/4", "rel": "bookmark"}], "name": "2GB Standard Instance"}, {"id": "5", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/5", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/5", "rel": "bookmark"}], "name": "4GB Standard Instance"}, {"id": "6", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/6", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/6", "rel": "bookmark"}], "name": "8GB Standard Instance"}, {"id": "7", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/7", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/7", "rel": "bookmark"}], "name": "15GB Standard Instance"}, {"id": "8", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/8", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:58 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/2 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2 body: encoding: US-ASCII string: '' @@ -116,33 +116,33 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:39 GMT + - Thu, 30 May 2013 16:40:58 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "512MB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/2", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/2", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/2", "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:39 GMT + recorded_at: Thu, 30 May 2013 16:40:58 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/3 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3 body: encoding: US-ASCII string: '' @@ -153,32 +153,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:40 GMT + - Thu, 30 May 2013 16:40:58 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/3", + string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/3", "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:40 GMT + recorded_at: Thu, 30 May 2013 16:40:58 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/4 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4 body: encoding: US-ASCII string: '' @@ -189,32 +189,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:40 GMT + - Thu, 30 May 2013 16:40:58 GMT Content-Length: - '353' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/4", + string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/4", "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:41 GMT + recorded_at: Thu, 30 May 2013 16:40:58 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/5 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5 body: encoding: US-ASCII string: '' @@ -225,32 +225,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:41 GMT + - Thu, 30 May 2013 16:40:58 GMT Content-Length: - '355' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/5", + string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/5", "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:41 GMT + recorded_at: Thu, 30 May 2013 16:40:59 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/6 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6 body: encoding: US-ASCII string: '' @@ -261,32 +261,32 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:41 GMT + - Thu, 30 May 2013 16:40:59 GMT Content-Length: - '355' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/6", + string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/6", "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:41 GMT + recorded_at: Thu, 30 May 2013 16:40:59 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/7 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7 body: encoding: US-ASCII string: '' @@ -297,33 +297,33 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:41 GMT + - Thu, 30 May 2013 16:40:59 GMT Content-Length: - '357' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "15GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/7", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/7", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/7", "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:41 GMT + recorded_at: Thu, 30 May 2013 16:40:59 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/8 + uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8 body: encoding: US-ASCII string: '' @@ -334,28 +334,28 @@ http_interactions: - application/json Accept: - application/json - X-Auth-Token: ! '[ONE-TIME-TOKEN]' + X-Auth-Token: _ONE-TIME-TOKEN_ response: status: code: 200 message: headers: Date: - - Thu, 30 May 2013 16:28:41 GMT + - Thu, 30 May 2013 16:40:59 GMT Content-Length: - '358' Content-Type: - application/json - X-Compute-Request-Id: ! '[COMPUTE-REQUEST-ID]' + X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ Server: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 string: ! '{"flavor": {"name": "30GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/[TENANT-ID]/flavors/8", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/[TENANT-ID]/flavors/8", + "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8", "rel": + "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/8", "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Thu, 30 May 2013 16:28:41 GMT + recorded_at: Thu, 30 May 2013 16:40:59 GMT recorded_with: VCR 2.5.0 diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index fba47cf..977815e 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -14,18 +14,18 @@ c.configure_rspec_metadata! # Sensitive data - c.filter_sensitive_data('[RAX_USERNAME]') { Chef::Config[:knife][:rackspace_api_username] } - c.filter_sensitive_data('[RAX_PASSWORD]') { Chef::Config[:knife][:rackspace_api_key] } - c.filter_sensitive_data('[CDN-TENANT-NAME]') { ENV['RS_CDN_TENANT_NAME'] } - c.filter_sensitive_data('[TENANT-ID]') { ENV['RS_TENANT_ID'] } + c.filter_sensitive_data('_RAX_USERNAME_') { Chef::Config[:knife][:rackspace_api_username] } + c.filter_sensitive_data('_RAX_PASSWORD_') { Chef::Config[:knife][:rackspace_api_key] } + c.filter_sensitive_data('_CDN-TENANT-NAME_') { ENV['RS_CDN_TENANT_NAME'] } + c.filter_sensitive_data('_TENANT-ID_') { ENV['RS_TENANT_ID'] } c.before_record do |interaction| # Sensitive data - filter_headers(interaction, /X-\w*-Token/, '[ONE-TIME-TOKEN]') + filter_headers(interaction, /X-\w*-Token/, '_ONE-TIME-TOKEN_') # Transient data (trying to avoid unnecessary cassette churn) - filter_headers(interaction, 'X-Compute-Request-Id', '[COMPUTE-REQUEST-ID]') - filter_headers(interaction, 'X-Varnish', '[VARNISH-REQUEST-ID]') + filter_headers(interaction, 'X-Compute-Request-Id', '_COMPUTE-REQUEST-ID_') + filter_headers(interaction, 'X-Varnish', '_VARNISH-REQUEST-ID_') # Throw away build state - just makes server.wait_for loops really long during replay begin From d21f926e458e292ea1de86e55b01c47d5ad88894 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 11:43:16 -0500 Subject: [PATCH 10/17] Don't require pry-debugger, it isn't ruby 1.8.7 friendly. --- knife-rackspace.gemspec | 1 - 1 file changed, 1 deletion(-) diff --git a/knife-rackspace.gemspec b/knife-rackspace.gemspec index 9ca41fa..891c142 100644 --- a/knife-rackspace.gemspec +++ b/knife-rackspace.gemspec @@ -24,7 +24,6 @@ Gem::Specification.new do |s| # s.add_development_dependency "knife-dsl" s.add_development_dependency "rspec" s.add_development_dependency "vcr" - s.add_development_dependency "pry-debugger" s.add_development_dependency "ansi" s.add_development_dependency "rake" end From 0e6a5541bfcd526146f8060301934aed452ef455 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 12:09:49 -0500 Subject: [PATCH 11/17] Secure travis variables for rackspace tenant info (not automatically detected) --- .travis.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.travis.yml b/.travis.yml index 3ac5968..fbdce5f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,3 +16,13 @@ env: WDIW+1qDQi1DXr8C3Yq8bL4+pY66SukHtxyLhx0V26lGUvI8naq3IqageBQK pkb2zZwVYO0a5mLEKOI/7omExBVHDxxX9Bw45vCHLKId3Wt21HE=' + - secure: ! 'OyKQU1muVBijz2/EkLUgBWbwPKG2UqRhIfpB1ZFkfdQ/06+Vaf82ZEQk3DvY + + 2lYFrzvSN1yWrKTMU3XES/dPlVlH87LDOrRhNhgW/NeHhC5BzdwrtvBm08RN + + 64ACuFG8fch9zIbx2VTkyLV8xsFXPPSaKMbEXrnikLwqnl5M8PQ=' + - secure: ! 'DoDVG0HwFg2a7Fj72tlxb8KJto+cBEh7J9YQZ35hK2cmeTsBAcZ4oSOUeAFg + + s2MvBhX0man0zjYPStbL1vcpuS1Ecea3kGzefG0lYhHAzvK7wqqRqhKNFsnd + + FPEVgZrcj3/Lc7mlkbigZouDM7BJLQbMGOv/KOS6f3nYzIhkOfE=' From 0e93a220ac88ce2a42b2669930a635901a9d6d3e Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 30 May 2013 12:25:48 -0500 Subject: [PATCH 12/17] Don't run if secure variables are not available on travis. Fail if they are available but not set. --- Rakefile | 7 +- spec/cassettes/v1/should_list_images.yml | 10 +-- .../v1/should_list_server_flavors.yml | 74 +++++++++---------- spec/cassettes/v2/should_list_images.yml | 10 +-- .../v2/should_list_server_flavors.yml | 38 +++++----- 5 files changed, 71 insertions(+), 68 deletions(-) diff --git a/Rakefile b/Rakefile index 349c2d8..a0db94f 100644 --- a/Rakefile +++ b/Rakefile @@ -32,7 +32,10 @@ namespace :integration do desc 'Run the integration tests live (no VCR cassettes)' task :live do - ENV['INTEGRATION_TESTS'] = 'live' - Rake::Task['integration:test'].invoke + unless ENV['TRAVIS'] == 'true' && ENV['TRAVIS_SECURE_ENV_VARS'] == 'false' + fail "Not all required variables detected" unless ENV['OS_USERNAME'] && ENV['OS_PASSWORD'] && ENV['RS_CDN_TENANT_NAME'] && ENV['RS_TENANT_ID'] + ENV['INTEGRATION_TESTS'] = 'live' + Rake::Task['integration:test'].invoke + end end end \ No newline at end of file diff --git a/spec/cassettes/v1/should_list_images.yml b/spec/cassettes/v1/should_list_images.yml index 245ba4c..c189bbe 100644 --- a/spec/cassettes/v1/should_list_images.yml +++ b/spec/cassettes/v1/should_list_images.yml @@ -26,11 +26,11 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=82443 + - s-maxage=79790 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:40:57 GMT + - Thu, 30 May 2013 17:25:10 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:40:57 GMT + recorded_at: Thu, 30 May 2013 17:25:10 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/images/detail.json @@ -82,7 +82,7 @@ http_interactions: Content-Length: - '2547' Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:11 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - '0' @@ -119,5 +119,5 @@ http_interactions: 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:40:58 GMT + recorded_at: Thu, 30 May 2013 17:25:11 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1/should_list_server_flavors.yml b/spec/cassettes/v1/should_list_server_flavors.yml index cf67640..f4e2d33 100644 --- a/spec/cassettes/v1/should_list_server_flavors.yml +++ b/spec/cassettes/v1/should_list_server_flavors.yml @@ -26,11 +26,11 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=82444 + - s-maxage=79792 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:08 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:08 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/detail.json @@ -64,7 +64,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '422' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:08 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '861' + - '0' Via: - 1.1 varnish Connection: @@ -98,7 +98,7 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:08 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/1.json @@ -113,7 +113,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -131,10 +131,10 @@ http_interactions: Content-Length: - '59' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:08 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '15' + - '0' Via: - 1.1 varnish Connection: @@ -143,7 +143,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:08 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/2.json @@ -158,7 +158,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -176,10 +176,10 @@ http_interactions: Content-Length: - '59' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:09 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1542' + - '0' Via: - 1.1 varnish Connection: @@ -188,7 +188,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:09 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/3.json @@ -203,7 +203,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -221,10 +221,10 @@ http_interactions: Content-Length: - '60' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:09 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '15' + - '0' Via: - 1.1 varnish Connection: @@ -233,7 +233,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:09 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/4.json @@ -266,7 +266,7 @@ http_interactions: Content-Length: - '60' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:09 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - '0' @@ -278,7 +278,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:09 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/5.json @@ -293,7 +293,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -311,10 +311,10 @@ http_interactions: Content-Length: - '61' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:09 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '1541' + - '0' Via: - 1.1 varnish Connection: @@ -323,7 +323,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:56 GMT + recorded_at: Thu, 30 May 2013 17:25:09 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/6.json @@ -338,7 +338,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -356,10 +356,10 @@ http_interactions: Content-Length: - '61' Date: - - Thu, 30 May 2013 16:40:56 GMT + - Thu, 30 May 2013 17:25:10 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '14' + - '0' Via: - 1.1 varnish Connection: @@ -368,7 +368,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:57 GMT + recorded_at: Thu, 30 May 2013 17:25:10 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/7.json @@ -383,7 +383,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -401,10 +401,10 @@ http_interactions: Content-Length: - '65' Date: - - Thu, 30 May 2013 16:40:57 GMT + - Thu, 30 May 2013 17:25:10 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '799' + - '0' Via: - 1.1 varnish Connection: @@ -413,7 +413,7 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:57 GMT + recorded_at: Thu, 30 May 2013 17:25:10 GMT - request: method: get uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/8.json @@ -428,7 +428,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 203 + code: 200 message: headers: Server: @@ -446,10 +446,10 @@ http_interactions: Content-Length: - '64' Date: - - Thu, 30 May 2013 16:40:57 GMT + - Thu, 30 May 2013 17:25:10 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '861' + - '0' Via: - 1.1 varnish Connection: @@ -458,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:57 GMT + recorded_at: Thu, 30 May 2013 17:25:10 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_images.yml b/spec/cassettes/v2/should_list_images.yml index 7d2b694..42b1969 100644 --- a/spec/cassettes/v2/should_list_images.yml +++ b/spec/cassettes/v2/should_list_images.yml @@ -26,11 +26,11 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=82441 + - s-maxage=79787 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:40:59 GMT + - Thu, 30 May 2013 17:25:13 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:40:59 GMT + recorded_at: Thu, 30 May 2013 17:25:13 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images @@ -70,7 +70,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:41:02 GMT + - Thu, 30 May 2013 17:25:23 GMT Content-Length: - '22207' Content-Type: @@ -285,5 +285,5 @@ http_interactions: "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE 12.1"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:41:02 GMT + recorded_at: Thu, 30 May 2013 17:25:23 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_server_flavors.yml b/spec/cassettes/v2/should_list_server_flavors.yml index 1053eca..e1241c1 100644 --- a/spec/cassettes/v2/should_list_server_flavors.yml +++ b/spec/cassettes/v2/should_list_server_flavors.yml @@ -26,11 +26,11 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=82442 + - s-maxage=79789 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:11 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ @@ -49,7 +49,7 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 16:40:58 GMT + recorded_at: Thu, 30 May 2013 17:25:11 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors @@ -70,7 +70,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:11 GMT Content-Length: - '1697' Content-Type: @@ -102,7 +102,7 @@ http_interactions: "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Thu, 30 May 2013 16:40:58 GMT + recorded_at: Thu, 30 May 2013 17:25:12 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2 @@ -123,7 +123,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:12 GMT Content-Length: - '353' Content-Type: @@ -139,7 +139,7 @@ http_interactions: "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:58 GMT + recorded_at: Thu, 30 May 2013 17:25:12 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3 @@ -160,7 +160,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:12 GMT Content-Length: - '353' Content-Type: @@ -175,7 +175,7 @@ http_interactions: "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:58 GMT + recorded_at: Thu, 30 May 2013 17:25:12 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4 @@ -196,7 +196,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:12 GMT Content-Length: - '353' Content-Type: @@ -211,7 +211,7 @@ http_interactions: "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:58 GMT + recorded_at: Thu, 30 May 2013 17:25:12 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5 @@ -232,7 +232,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:58 GMT + - Thu, 30 May 2013 17:25:13 GMT Content-Length: - '355' Content-Type: @@ -247,7 +247,7 @@ http_interactions: "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:59 GMT + recorded_at: Thu, 30 May 2013 17:25:13 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6 @@ -268,7 +268,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:59 GMT + - Thu, 30 May 2013 17:25:13 GMT Content-Length: - '355' Content-Type: @@ -283,7 +283,7 @@ http_interactions: "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:59 GMT + recorded_at: Thu, 30 May 2013 17:25:13 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7 @@ -304,7 +304,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:59 GMT + - Thu, 30 May 2013 17:25:13 GMT Content-Length: - '357' Content-Type: @@ -320,7 +320,7 @@ http_interactions: "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:59 GMT + recorded_at: Thu, 30 May 2013 17:25:13 GMT - request: method: get uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8 @@ -341,7 +341,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 16:40:59 GMT + - Thu, 30 May 2013 17:25:13 GMT Content-Length: - '358' Content-Type: @@ -357,5 +357,5 @@ http_interactions: "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Thu, 30 May 2013 16:40:59 GMT + recorded_at: Thu, 30 May 2013 17:25:13 GMT recorded_with: VCR 2.5.0 From 7311ab9ea954d0a3b06fab3dbe0224dfc02ab7df Mon Sep 17 00:00:00 2001 From: mlincoln Date: Fri, 31 May 2013 16:25:22 -0500 Subject: [PATCH 13/17] Fixing accidental downcasing --- .chef/knife.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.chef/knife.rb b/.chef/knife.rb index 67744d0..c74015d 100644 --- a/.chef/knife.rb +++ b/.chef/knife.rb @@ -7,11 +7,11 @@ #validation_key "#{current_dir}/knife-rackspace-validator.pem" #chef_server_url "https://api.opscode.com/organizations/knife-rackspace" #cache_type 'basicfile' -#cache_options( :path => "#{env['home']}/.chef/checksums" ) +#cache_options( :path => "#{ENV['home']}/.chef/checksums" ) #cookbook_path ["#{current_dir}/../cookbooks"] -#knife[:rackspace_api_username] = "#{env['os_username']}" -#knife[:rackspace_api_key] = "#{env['os_password']}" +knife[:rackspace_api_username] = "#{ENV['OS_USERNAME']}" +knife[:rackspace_api_key] = "#{ENV['OS_PASSWORD']}" #https_proxy 'https://localhost:8888' #knife[:ssl_verify_peer] = false From d1b696942cf0b95b98f462795e4ea37061b3d21a Mon Sep 17 00:00:00 2001 From: mlincoln Date: Fri, 31 May 2013 16:31:32 -0500 Subject: [PATCH 14/17] Revert "Fixing accidental downcasing" This reverts commit 7311ab9ea954d0a3b06fab3dbe0224dfc02ab7df. --- .chef/knife.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.chef/knife.rb b/.chef/knife.rb index c74015d..67744d0 100644 --- a/.chef/knife.rb +++ b/.chef/knife.rb @@ -7,11 +7,11 @@ #validation_key "#{current_dir}/knife-rackspace-validator.pem" #chef_server_url "https://api.opscode.com/organizations/knife-rackspace" #cache_type 'basicfile' -#cache_options( :path => "#{ENV['home']}/.chef/checksums" ) +#cache_options( :path => "#{env['home']}/.chef/checksums" ) #cookbook_path ["#{current_dir}/../cookbooks"] -knife[:rackspace_api_username] = "#{ENV['OS_USERNAME']}" -knife[:rackspace_api_key] = "#{ENV['OS_PASSWORD']}" +#knife[:rackspace_api_username] = "#{env['os_username']}" +#knife[:rackspace_api_key] = "#{env['os_password']}" #https_proxy 'https://localhost:8888' #knife[:ssl_verify_peer] = false From b5b9513db7e87e5ed22604995b14d8f795678c4e Mon Sep 17 00:00:00 2001 From: mlincoln Date: Fri, 31 May 2013 16:25:22 -0500 Subject: [PATCH 15/17] Fixing accidental downcasing --- .chef/knife.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.chef/knife.rb b/.chef/knife.rb index 67744d0..c74015d 100644 --- a/.chef/knife.rb +++ b/.chef/knife.rb @@ -7,11 +7,11 @@ #validation_key "#{current_dir}/knife-rackspace-validator.pem" #chef_server_url "https://api.opscode.com/organizations/knife-rackspace" #cache_type 'basicfile' -#cache_options( :path => "#{env['home']}/.chef/checksums" ) +#cache_options( :path => "#{ENV['home']}/.chef/checksums" ) #cookbook_path ["#{current_dir}/../cookbooks"] -#knife[:rackspace_api_username] = "#{env['os_username']}" -#knife[:rackspace_api_key] = "#{env['os_password']}" +knife[:rackspace_api_username] = "#{ENV['OS_USERNAME']}" +knife[:rackspace_api_key] = "#{ENV['OS_PASSWORD']}" #https_proxy 'https://localhost:8888' #knife[:ssl_verify_peer] = false From 7b8eaa0877be76172f55ed9b07c087ecebe5f9d2 Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 6 Jun 2013 10:51:39 -0500 Subject: [PATCH 16/17] New cassettes, with integer placeholder for tenant id --- spec/cassettes/v1/should_list_images.yml | 20 +- .../v1/should_list_server_flavors.yml | 90 +++--- spec/cassettes/v2/should_list_images.yml | 274 +++++++++--------- .../v2/should_list_server_flavors.yml | 124 ++++---- 4 files changed, 256 insertions(+), 252 deletions(-) diff --git a/spec/cassettes/v1/should_list_images.yml b/spec/cassettes/v1/should_list_images.yml index c189bbe..e35996c 100644 --- a/spec/cassettes/v1/should_list_images.yml +++ b/spec/cassettes/v1/should_list_images.yml @@ -26,17 +26,17 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=79790 + - s-maxage=85673 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 17:25:10 GMT + - Thu, 06 Jun 2013 15:49:24 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ + - https://servers.api.rackspacecloud.com/v1.0/000000 VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -49,10 +49,10 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 17:25:10 GMT + recorded_at: Thu, 06 Jun 2013 15:49:23 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/images/detail.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/images/detail.json body: encoding: US-ASCII string: '' @@ -64,7 +64,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -74,7 +74,7 @@ http_interactions: Last-Modified: - Mon, 09 Jul 2012 17:15:23 GMT X-PURGE-KEY: - - /_TENANT-ID_/images + - /000000/images Cache-Control: - s-maxage=1800 Content-Type: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '2547' Date: - - Thu, 30 May 2013 17:25:11 GMT + - Thu, 06 Jun 2013 15:49:24 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '720' Via: - 1.1 varnish Connection: @@ -119,5 +119,5 @@ http_interactions: 5.8"},{"id":89,"status":"ACTIVE","updated":"2011-10-04T08:39:34-05:00","name":"Windows Server 2008 R2 x64 + SQL Server 2008 R2 Web"}]}' http_version: - recorded_at: Thu, 30 May 2013 17:25:11 GMT + recorded_at: Thu, 06 Jun 2013 15:49:23 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v1/should_list_server_flavors.yml b/spec/cassettes/v1/should_list_server_flavors.yml index f4e2d33..9559e52 100644 --- a/spec/cassettes/v1/should_list_server_flavors.yml +++ b/spec/cassettes/v1/should_list_server_flavors.yml @@ -26,17 +26,17 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=79792 + - s-maxage=85674 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 17:25:08 GMT + - Thu, 06 Jun 2013 15:49:22 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ + - https://servers.api.rackspacecloud.com/v1.0/000000 VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -49,10 +49,10 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 17:25:08 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/detail.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/detail.json body: encoding: US-ASCII string: '' @@ -64,7 +64,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -82,10 +82,10 @@ http_interactions: Content-Length: - '422' Date: - - Thu, 30 May 2013 17:25:08 GMT + - Thu, 06 Jun 2013 15:49:22 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '708' Via: - 1.1 varnish Connection: @@ -98,10 +98,10 @@ http_interactions: server"},{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"},{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}]}' http_version: - recorded_at: Thu, 30 May 2013 17:25:08 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/1.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/1.json body: encoding: US-ASCII string: '' @@ -113,7 +113,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -131,10 +131,10 @@ http_interactions: Content-Length: - '59' Date: - - Thu, 30 May 2013 17:25:08 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '708' Via: - 1.1 varnish Connection: @@ -143,10 +143,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":1,"ram":256,"disk":10,"name":"256 server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:08 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/2.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/2.json body: encoding: US-ASCII string: '' @@ -158,7 +158,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -176,10 +176,10 @@ http_interactions: Content-Length: - '59' Date: - - Thu, 30 May 2013 17:25:09 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '724' Via: - 1.1 varnish Connection: @@ -188,10 +188,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":2,"ram":512,"disk":20,"name":"512 server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:09 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/3.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/3.json body: encoding: US-ASCII string: '' @@ -203,7 +203,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -221,10 +221,10 @@ http_interactions: Content-Length: - '60' Date: - - Thu, 30 May 2013 17:25:09 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '708' Via: - 1.1 varnish Connection: @@ -233,10 +233,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":3,"ram":1024,"disk":40,"name":"1GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:09 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/4.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/4.json body: encoding: US-ASCII string: '' @@ -248,7 +248,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -266,10 +266,10 @@ http_interactions: Content-Length: - '60' Date: - - Thu, 30 May 2013 17:25:09 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '10' Via: - 1.1 varnish Connection: @@ -278,10 +278,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":4,"ram":2048,"disk":80,"name":"2GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:09 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/5.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/5.json body: encoding: US-ASCII string: '' @@ -311,7 +311,7 @@ http_interactions: Content-Length: - '61' Date: - - Thu, 30 May 2013 17:25:09 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - '0' @@ -323,10 +323,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":5,"ram":4096,"disk":160,"name":"4GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:09 GMT + recorded_at: Thu, 06 Jun 2013 15:49:22 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/6.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/6.json body: encoding: US-ASCII string: '' @@ -356,7 +356,7 @@ http_interactions: Content-Length: - '61' Date: - - Thu, 30 May 2013 17:25:10 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - '0' @@ -368,10 +368,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":6,"ram":8192,"disk":320,"name":"8GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:10 GMT + recorded_at: Thu, 06 Jun 2013 15:49:23 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/7.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/7.json body: encoding: US-ASCII string: '' @@ -383,7 +383,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -401,10 +401,10 @@ http_interactions: Content-Length: - '65' Date: - - Thu, 30 May 2013 17:25:10 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '721' Via: - 1.1 varnish Connection: @@ -413,10 +413,10 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:10 GMT + recorded_at: Thu, 06 Jun 2013 15:49:23 GMT - request: method: get - uri: https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_/flavors/8.json + uri: https://servers.api.rackspacecloud.com/v1.0/000000/flavors/8.json body: encoding: US-ASCII string: '' @@ -428,7 +428,7 @@ http_interactions: X-Auth-Token: _ONE-TIME-TOKEN_ response: status: - code: 200 + code: 203 message: headers: Server: @@ -446,10 +446,10 @@ http_interactions: Content-Length: - '64' Date: - - Thu, 30 May 2013 17:25:10 GMT + - Thu, 06 Jun 2013 15:49:23 GMT X-Varnish: _VARNISH-REQUEST-ID_ Age: - - '0' + - '10' Via: - 1.1 varnish Connection: @@ -458,5 +458,5 @@ http_interactions: encoding: UTF-8 string: ! '{"flavor":{"id":8,"ram":30720,"disk":1200,"name":"30GB server"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:10 GMT + recorded_at: Thu, 06 Jun 2013 15:49:23 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_images.yml b/spec/cassettes/v2/should_list_images.yml index 42b1969..452a7b8 100644 --- a/spec/cassettes/v2/should_list_images.yml +++ b/spec/cassettes/v2/should_list_images.yml @@ -26,17 +26,17 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=79787 + - s-maxage=85670 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 17:25:13 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ + - https://servers.api.rackspacecloud.com/v1.0/000000 VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -49,10 +49,10 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 17:25:13 GMT + recorded_at: Thu, 06 Jun 2013 15:49:26 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/images body: encoding: US-ASCII string: '' @@ -70,9 +70,9 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:23 GMT + - Thu, 06 Jun 2013 15:49:29 GMT Content-Length: - - '22207' + - '22713' Content-Type: - application/json X-Compute-Request-Id: _COMPUTE-REQUEST-ID_ @@ -80,210 +80,214 @@ http_interactions: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"images": [{"id": "3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + string: ! '{"images": [{"id": "49153930-a4d8-48f6-9432-d457e4c897bf", "links": + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/49153930-a4d8-48f6-9432-d457e4c897bf", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/49153930-a4d8-48f6-9432-d457e4c897bf", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/49153930-a4d8-48f6-9432-d457e4c897bf", + "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "winrm_template"}, + {"id": "3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/3e4871d9-cd30-4a8c-bdb3-c962a6730c1c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 x64 SP2"}, {"id": "bfdb3838-152e-46c2-88a3-c45f7423bcd9", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/bfdb3838-152e-46c2-88a3-c45f7423bcd9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Standard SP1"}, {"id": - "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "18189eb3-5415-4e13-aef4-0c9d40bda4a3", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/18189eb3-5415-4e13-aef4-0c9d40bda4a3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 7 (Wheezy)"}, {"id": "fc62f5c8-ca85-4166-8483-46bfcbca45cd", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/fc62f5c8-ca85-4166-8483-46bfcbca45cd", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Web SP1"}, {"id": "1d6cf74a-af8a-4235-abf5-edddd9d58941", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/1d6cf74a-af8a-4235-abf5-edddd9d58941", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SQL Server 2012 Standard SP1"}, {"id": "f2527410-310d-46af-a2fe-7debe6cddc35", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2527410-310d-46af-a2fe-7debe6cddc35", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f2527410-310d-46af-a2fe-7debe6cddc35", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f2527410-310d-46af-a2fe-7debe6cddc35", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Standard SP1"}, {"id": "fc2448b4-da85-4893-b0e7-6c8794e608b4", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/fc2448b4-da85-4893-b0e7-6c8794e608b4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates)"}, {"id": "f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f7f274f3-5d04-4a2c-9159-29b9d295cf76", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012"}, {"id": "74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/74461803-4d7f-413f-b9ae-1d7d1c13e1c8", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Web SP1"}, {"id": "f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f2f52d05-86c7-4ebf-9e3e-cc1a81ab1d99", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2012 Standard SP1"}, {"id": "05313f52-c19b-4640-b5ed-c7b8e8d17775", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/05313f52-c19b-4640-b5ed-c7b8e8d17775", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Web SP2"}, {"id": "37c9e70e-bf94-4631-b76c-de21246dff34", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/37c9e70e-bf94-4631-b76c-de21246dff34", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/37c9e70e-bf94-4631-b76c-de21246dff34", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/37c9e70e-bf94-4631-b76c-de21246dff34", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SQL Server 2008 R2 Standard SP2"}, {"id": "59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/59909b8d-4a36-40c9-bd4e-fa1bd31285ad", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2012 Web SP1"}, {"id": "5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/5e514a8e-9aaf-4d50-a7fc-1c992db194f3", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Web SP2"}, {"id": "da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/da18bdc0-5fb6-4b60-a7b5-c097db527c7b", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates) + SQL Server 2008 R2 Standard SP2"}, {"id": - "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "d47aeca3-38d6-4dcb-bccf-534492986ae0", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/d47aeca3-38d6-4dcb-bccf-534492986ae0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 (with updates)"}, {"id": "48df4181-040e-4821-8723-d9e4ba908d2f", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/48df4181-040e-4821-8723-d9e4ba908d2f", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/48df4181-040e-4821-8723-d9e4ba908d2f", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/48df4181-040e-4821-8723-d9e4ba908d2f", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1"}, {"id": "9922a7c7-5a42-4a56-bc6a-93f857ae2346", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/9922a7c7-5a42-4a56-bc6a-93f857ae2346", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 13.04 (Raring Ringtail)"}, {"id": "e298e0d7-4fea-45f0-9694-7643e300fb43", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e298e0d7-4fea-45f0-9694-7643e300fb43", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e298e0d7-4fea-45f0-9694-7643e300fb43", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e298e0d7-4fea-45f0-9694-7643e300fb43", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Gentoo 13.1"}, {"id": "89e9ce4a-1261-49c3-8a35-17224411659d", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/89e9ce4a-1261-49c3-8a35-17224411659d", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/89e9ce4a-1261-49c3-8a35-17224411659d", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/89e9ce4a-1261-49c3-8a35-17224411659d", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 18 (Spherical Cow)"}, {"id": "ae725da5-a942-496f-87ff-8319d23ddec1", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/ae725da5-a942-496f-87ff-8319d23ddec1", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/ae725da5-a942-496f-87ff-8319d23ddec1", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/ae725da5-a942-496f-87ff-8319d23ddec1", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/ae725da5-a942-496f-87ff-8319d23ddec1", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "FreeBSD - 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + 9.1"}, {"id": "2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/2c9736a0-a56d-481e-9d85-a9ad93ecdcc4", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Arch 2013.2"}, {"id": "88130782-11ec-4795-b85f-b55a297ba446", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/88130782-11ec-4795-b85f-b55a297ba446", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/88130782-11ec-4795-b85f-b55a297ba446", + "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/88130782-11ec-4795-b85f-b55a297ba446", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/88130782-11ec-4795-b85f-b55a297ba446", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.10 (Quantal Quetzal)"}, {"id": "e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e4dbdba7-b2a4-4ee5-8e8f-4595b6d694ce", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 12.04 LTS (Precise Pangolin)"}, {"id": "d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/d4c7b93d-9f18-45dc-aa7c-3e3b126e3792", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Ubuntu 10.04 LTS (Lucid Lynx)"}, {"id": "e189a89b-722e-4854-a886-25b22be8be7c", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e189a89b-722e-4854-a886-25b22be8be7c", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e189a89b-722e-4854-a886-25b22be8be7c", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e189a89b-722e-4854-a886-25b22be8be7c", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e189a89b-722e-4854-a886-25b22be8be7c", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.3"}, {"id": "0119af00-161f-46f4-8e76-0cbf799d7e7e", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/0119af00-161f-46f4-8e76-0cbf799d7e7e", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 6.1"}, {"id": "e21a4251-41c6-44b5-aa39-20e1982487f2", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e21a4251-41c6-44b5-aa39-20e1982487f2", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e21a4251-41c6-44b5-aa39-20e1982487f2", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/e21a4251-41c6-44b5-aa39-20e1982487f2", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.8"}, {"id": "76856c8b-e56e-4301-b454-c8cd1be22cfb", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/76856c8b-e56e-4301-b454-c8cd1be22cfb", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Fedora 17 (Beefy Miracle)"}, {"id": "8ae428cd-0490-4f3a-818f-28213a7286b0", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/8ae428cd-0490-4f3a-818f-28213a7286b0", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/8ae428cd-0490-4f3a-818f-28213a7286b0", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/8ae428cd-0490-4f3a-818f-28213a7286b0", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Debian 6.06 (Squeeze)"}, {"id": "da1f0392-8c64-468f-a839-a9e56caebf07", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da1f0392-8c64-468f-a839-a9e56caebf07", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/da1f0392-8c64-468f-a839-a9e56caebf07", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/da1f0392-8c64-468f-a839-a9e56caebf07", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/da1f0392-8c64-468f-a839-a9e56caebf07", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/92ac9889-2ede-4633-ab39-25560436d83a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/92ac9889-2ede-4633-ab39-25560436d83a", + 6.3"}, {"id": "92ac9889-2ede-4633-ab39-25560436d83a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/92ac9889-2ede-4633-ab39-25560436d83a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/92ac9889-2ede-4633-ab39-25560436d83a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + 6.2"}, {"id": "7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/7b06ce2d-d166-4e23-ac7f-2ea0c79064e9", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + 6.0"}, {"id": "f5889c60-5e1a-4c6f-96db-d63c91083ca7", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/f5889c60-5e1a-4c6f-96db-d63c91083ca7", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/436727f4-9a72-4439-99b4-975f92c87c33", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/436727f4-9a72-4439-99b4-975f92c87c33", + 5.9"}, {"id": "436727f4-9a72-4439-99b4-975f92c87c33", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/436727f4-9a72-4439-99b4-975f92c87c33", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/436727f4-9a72-4439-99b4-975f92c87c33", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2f15076a-dfd5-4441-9eba-3b001e4630de", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + 5.8"}, {"id": "2f15076a-dfd5-4441-9eba-3b001e4630de", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/2f15076a-dfd5-4441-9eba-3b001e4630de", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/2f15076a-dfd5-4441-9eba-3b001e4630de", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "CentOS - 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + 5.6"}, {"id": "17282573-81b3-4a2d-80e4-7fcf16d4ac08", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/17282573-81b3-4a2d-80e4-7fcf16d4ac08", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 (with updates) + SQL Server 2012 Web SP1"}, {"id": "efc98a61-3816-4049-a785-f5fe0923d2d6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/efc98a61-3816-4049-a785-f5fe0923d2d6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/efc98a61-3816-4049-a785-f5fe0923d2d6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/efc98a61-3816-4049-a785-f5fe0923d2d6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2012 + SharePoint 2013 Foundation with SQL 2012 Standard"}, {"id": - "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "5ca993f8-92c7-4ace-8698-4531a8674d7a", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/5ca993f8-92c7-4ace-8698-4531a8674d7a", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 SP1 Standard"}, - {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/224da8a8-130d-4195-b8c6-db5863eb8c84", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + {"id": "224da8a8-130d-4195-b8c6-db5863eb8c84", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/224da8a8-130d-4195-b8c6-db5863eb8c84", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/224da8a8-130d-4195-b8c6-db5863eb8c84", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Windows Server 2008 R2 SP1 + SharePoint Foundation with SQL 2008 R2 Express"}, {"id": - "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/644be485-411d-4bac-aba5-5f60641d92b5", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/644be485-411d-4bac-aba5-5f60641d92b5", + "644be485-411d-4bac-aba5-5f60641d92b5", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/644be485-411d-4bac-aba5-5f60641d92b5", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/644be485-411d-4bac-aba5-5f60641d92b5", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "Red Hat Enterprise Linux 5.5"}, {"id": "096c55e5-39f3-48cf-a413-68d9377a3ab6", - "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", - "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", + "rel": "bookmark"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/images/096c55e5-39f3-48cf-a413-68d9377a3ab6", "type": "application/vnd.openstack.image", "rel": "alternate"}], "name": "openSUSE 12.1"}]}' http_version: - recorded_at: Thu, 30 May 2013 17:25:23 GMT + recorded_at: Thu, 06 Jun 2013 15:49:28 GMT recorded_with: VCR 2.5.0 diff --git a/spec/cassettes/v2/should_list_server_flavors.yml b/spec/cassettes/v2/should_list_server_flavors.yml index e1241c1..3678527 100644 --- a/spec/cassettes/v2/should_list_server_flavors.yml +++ b/spec/cassettes/v2/should_list_server_flavors.yml @@ -26,17 +26,17 @@ http_interactions: X-Storage-Url: - https://storage101.dfw1.clouddrive.com/v1/_CDN-TENANT-NAME_ Cache-Control: - - s-maxage=79789 + - s-maxage=85673 X-Cloud-Auth: - 'true' Date: - - Thu, 30 May 2013 17:25:11 GMT + - Thu, 06 Jun 2013 15:49:24 GMT Front-End-Https: - 'on' X-Auth-Token: _ONE-TIME-TOKEN_ X-Storage-Token: _ONE-TIME-TOKEN_ X-Server-Management-Url: - - https://servers.api.rackspacecloud.com/v1.0/_TENANT-ID_ + - https://servers.api.rackspacecloud.com/v1.0/000000 VIA: - 1.0 Repose (Repose/2.3.5) X-Global-Auth: @@ -49,10 +49,10 @@ http_interactions: encoding: UTF-8 string: '' http_version: - recorded_at: Thu, 30 May 2013 17:25:11 GMT + recorded_at: Thu, 06 Jun 2013 15:49:23 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors body: encoding: US-ASCII string: '' @@ -70,7 +70,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:11 GMT + - Thu, 06 Jun 2013 15:49:24 GMT Content-Length: - '1697' Content-Type: @@ -80,32 +80,32 @@ http_interactions: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/2", + string: ! '{"flavors": [{"id": "2", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/2", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/2", "rel": "bookmark"}], "name": "512MB Standard Instance"}, {"id": "3", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/3", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/3", "rel": "bookmark"}], "name": "1GB Standard Instance"}, {"id": "4", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/4", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/4", "rel": "bookmark"}], "name": "2GB Standard Instance"}, {"id": "5", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/5", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/5", "rel": "bookmark"}], "name": "4GB Standard Instance"}, {"id": "6", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/6", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/6", "rel": "bookmark"}], "name": "8GB Standard Instance"}, {"id": "7", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/7", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/7", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/7", "rel": "bookmark"}], "name": "15GB Standard Instance"}, {"id": "8", "links": - [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/8", + [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/8", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/8", "rel": "bookmark"}], "name": "30GB Standard Instance"}]}' http_version: - recorded_at: Thu, 30 May 2013 17:25:12 GMT + recorded_at: Thu, 06 Jun 2013 15:49:24 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/2 body: encoding: US-ASCII string: '' @@ -123,7 +123,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:12 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '353' Content-Type: @@ -134,15 +134,15 @@ http_interactions: body: encoding: UTF-8 string: ! '{"flavor": {"name": "512MB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/2", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/2", - "rel": "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, - "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 20, "id": "2"}}' + "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/2", "rel": "self"}, + {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/2", "rel": + "bookmark"}], "ram": 512, "vcpus": 1, "swap": 512, "rxtx_factor": 2.0, "OS-FLV-EXT-DATA:ephemeral": + 0, "disk": 20, "id": "2"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:12 GMT + recorded_at: Thu, 06 Jun 2013 15:49:25 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/3 body: encoding: US-ASCII string: '' @@ -160,7 +160,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:12 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '353' Content-Type: @@ -170,15 +170,15 @@ http_interactions: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/3", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/3", + string: ! '{"flavor": {"name": "1GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/3", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/3", "rel": "bookmark"}], "ram": 1024, "vcpus": 1, "swap": 1024, "rxtx_factor": 3.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 40, "id": "3"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:12 GMT + recorded_at: Thu, 06 Jun 2013 15:49:25 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/4 body: encoding: US-ASCII string: '' @@ -196,7 +196,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:12 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '353' Content-Type: @@ -206,15 +206,15 @@ http_interactions: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/4", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/4", + string: ! '{"flavor": {"name": "2GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/4", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/4", "rel": "bookmark"}], "ram": 2048, "vcpus": 2, "swap": 2048, "rxtx_factor": 6.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 80, "id": "4"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:12 GMT + recorded_at: Thu, 06 Jun 2013 15:49:25 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/5 body: encoding: US-ASCII string: '' @@ -232,7 +232,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:13 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '355' Content-Type: @@ -242,15 +242,15 @@ http_interactions: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/5", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/5", + string: ! '{"flavor": {"name": "4GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/5", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/5", "rel": "bookmark"}], "ram": 4096, "vcpus": 2, "swap": 2048, "rxtx_factor": 10.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 160, "id": "5"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:13 GMT + recorded_at: Thu, 06 Jun 2013 15:49:25 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/6 body: encoding: US-ASCII string: '' @@ -268,7 +268,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:13 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '355' Content-Type: @@ -278,15 +278,15 @@ http_interactions: - Jetty(8.0.y.z-SNAPSHOT) body: encoding: UTF-8 - string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/6", - "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/6", + string: ! '{"flavor": {"name": "8GB Standard Instance", "links": [{"href": "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/6", + "rel": "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/6", "rel": "bookmark"}], "ram": 8192, "vcpus": 4, "swap": 2048, "rxtx_factor": 15.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 320, "id": "6"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:13 GMT + recorded_at: Thu, 06 Jun 2013 15:49:25 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/7 body: encoding: US-ASCII string: '' @@ -304,7 +304,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:13 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '357' Content-Type: @@ -315,15 +315,15 @@ http_interactions: body: encoding: UTF-8 string: ! '{"flavor": {"name": "15GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/7", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/7", - "rel": "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": - 20.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' + "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/7", "rel": "self"}, + {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/7", "rel": + "bookmark"}], "ram": 15360, "vcpus": 6, "swap": 2048, "rxtx_factor": 20.0, + "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 620, "id": "7"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:13 GMT + recorded_at: Thu, 06 Jun 2013 15:49:26 GMT - request: method: get - uri: https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8 + uri: https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/8 body: encoding: US-ASCII string: '' @@ -341,7 +341,7 @@ http_interactions: message: headers: Date: - - Thu, 30 May 2013 17:25:13 GMT + - Thu, 06 Jun 2013 15:49:26 GMT Content-Length: - '358' Content-Type: @@ -352,10 +352,10 @@ http_interactions: body: encoding: UTF-8 string: ! '{"flavor": {"name": "30GB Standard Instance", "links": [{"href": - "https://dfw.servers.api.rackspacecloud.com/v2/_TENANT-ID_/flavors/8", "rel": - "self"}, {"href": "https://dfw.servers.api.rackspacecloud.com/_TENANT-ID_/flavors/8", - "rel": "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": - 30.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' + "https://dfw.servers.api.rackspacecloud.com/v2/000000/flavors/8", "rel": "self"}, + {"href": "https://dfw.servers.api.rackspacecloud.com/000000/flavors/8", "rel": + "bookmark"}], "ram": 30720, "vcpus": 8, "swap": 2048, "rxtx_factor": 30.0, + "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 1200, "id": "8"}}' http_version: - recorded_at: Thu, 30 May 2013 17:25:13 GMT + recorded_at: Thu, 06 Jun 2013 15:49:26 GMT recorded_with: VCR 2.5.0 From ec305a89638a635059ea7e6e77e4f7532d36212b Mon Sep 17 00:00:00 2001 From: mlincoln Date: Thu, 6 Jun 2013 10:52:13 -0500 Subject: [PATCH 17/17] Updates so rake should work when secure environment variables are not available on travis. --- Rakefile | 16 +++++++++++++--- spec/integration/integration_spec.rb | 10 +++++----- spec/integration_spec_helper.rb | 11 +++++++++-- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/Rakefile b/Rakefile index a0db94f..4c1b84c 100644 --- a/Rakefile +++ b/Rakefile @@ -22,7 +22,18 @@ Bundler::GemHelper.install_tasks require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) -task :default => [:spec, 'integration:live'] +task :default => [:credentials, :spec, 'integration:live'] + +task :credentials do + if ENV['TRAVIS_SECURE_ENV_VARS'] == 'false' + puts "Setting vars" + ENV['OS_USERNAME'] = '_RAX_USERNAME_' + ENV['OS_PASSWORD'] = '_RAX_PASSWORD_' + ENV['RS_TENANT_ID'] = '000000' + ENV['RS_CDN_TENANT_NAME'] = '_CDN-TENANT-NAME_' + end + fail "Not all required variables detected" unless ENV['OS_USERNAME'] && ENV['OS_PASSWORD'] && ENV['RS_CDN_TENANT_NAME'] && ENV['RS_TENANT_ID'] +end namespace :integration do desc 'Run the integration tests' @@ -33,9 +44,8 @@ namespace :integration do desc 'Run the integration tests live (no VCR cassettes)' task :live do unless ENV['TRAVIS'] == 'true' && ENV['TRAVIS_SECURE_ENV_VARS'] == 'false' - fail "Not all required variables detected" unless ENV['OS_USERNAME'] && ENV['OS_PASSWORD'] && ENV['RS_CDN_TENANT_NAME'] && ENV['RS_TENANT_ID'] ENV['INTEGRATION_TESTS'] = 'live' Rake::Task['integration:test'].invoke end end -end \ No newline at end of file +end diff --git a/spec/integration/integration_spec.rb b/spec/integration/integration_spec.rb index f7cb827..724466a 100644 --- a/spec/integration/integration_spec.rb +++ b/spec/integration/integration_spec.rb @@ -15,7 +15,7 @@ it 'should list server flavors', :vcr do stdout, stderr, status = knife_capture('rackspace flavor list') - status.should == 0 + status.should be(0), "Non-zero exit code.\n#{stdout}\n#{stderr}" expected_output = { :v1 => """ @@ -50,8 +50,8 @@ } stdout, stderr, status = knife_capture('rackspace image list') - status.should == 0 - stdout = ANSI.unansi stdout + status.should be(0), "Non-zero exit code.\n#{stdout}\n#{stderr}" + stdout = clean_output(stdout) stdout.should match /^ID\s*Name\s*$/ stdout.should include sample_image[api] end @@ -68,7 +68,7 @@ args = %W{rackspace server create -I #{image[api]} -f #{flavor} -N test-node -S test-server} stdout, stderr, status = knife_capture(args) - status.should == 0 + status.should be(0), "Non-zero exit code.\n#{stdout}\n#{stderr}" instance_data = capture_instance_data(stdout, { :name => 'Name', :instance_id => 'Instance ID', @@ -81,7 +81,7 @@ args = %W{rackspace server delete #{instance_data[:instance_id]} -y} stdout, stderr, status = knife_capture(args) - status.should == 0 + status.should be(0), "Non-zero exit code.\n#{stdout}\n#{stderr}" # Need to deal with deleting vs deleted states before we can check this # server_list.should_not match /#{instance_data[:instance_id]}\s*#{instance_data[:name]}\s*#{instance_data[:public_ip]}\s*#{instance_data[:private_ip]}\s*#{flavor}\s*#{image}/ diff --git a/spec/integration_spec_helper.rb b/spec/integration_spec_helper.rb index 977815e..21ac357 100644 --- a/spec/integration_spec_helper.rb +++ b/spec/integration_spec_helper.rb @@ -17,7 +17,7 @@ c.filter_sensitive_data('_RAX_USERNAME_') { Chef::Config[:knife][:rackspace_api_username] } c.filter_sensitive_data('_RAX_PASSWORD_') { Chef::Config[:knife][:rackspace_api_key] } c.filter_sensitive_data('_CDN-TENANT-NAME_') { ENV['RS_CDN_TENANT_NAME'] } - c.filter_sensitive_data('_TENANT-ID_') { ENV['RS_TENANT_ID'] } + c.filter_sensitive_data('000000') { ENV['RS_TENANT_ID'] } c.before_record do |interaction| # Sensitive data @@ -38,6 +38,10 @@ end end + c.before_playback do | interaction | + interaction.filter!('_TENANT-ID_', '0000000') + end + c.default_cassette_options = { # :record => :none, # Ignores cache busting parameters. @@ -62,7 +66,10 @@ def filter_headers(interaction, pattern, placeholder) end def clean_output(output) - ANSI.unansi(output).gsub(/\s+$/,'') + output = ANSI.unansi(output) + output.gsub!(/\s+$/,'') + output.gsub!("\e[0G", '') + output end RSpec::Matchers.define :match_output do |expected_output|