From e91a410cc6ffcc51803ea32892060ab004b1e47c Mon Sep 17 00:00:00 2001 From: Brad Gignac Date: Fri, 1 Feb 2013 16:37:33 -0500 Subject: [PATCH] [rackspace|networks] Add mock responses. --- lib/fog/rackspace/mock_data.rb | 200 +++++++++--------- .../requests/compute_v2/create_network.rb | 13 ++ .../requests/compute_v2/delete_network.rb | 10 + .../requests/compute_v2/get_network.rb | 10 + .../requests/compute_v2/list_networks.rb | 7 + 5 files changed, 143 insertions(+), 97 deletions(-) diff --git a/lib/fog/rackspace/mock_data.rb b/lib/fog/rackspace/mock_data.rb index f20e01d28..41dec5aa9 100644 --- a/lib/fog/rackspace/mock_data.rb +++ b/lib/fog/rackspace/mock_data.rb @@ -4,111 +4,117 @@ module Fog def data @@data ||= Hash.new do |hash, key| hash[key] = begin + #Compute V2 + flavor_id = Fog.credentials[:rackspace_flavor_id].to_s ||= Fog::Mock.random_numbers(1) + image_id = Fog.credentials[:rackspace_image_id] ||= Fog::Rackspace::MockData.uuid + image_name = Fog::Mock.random_letters(6) + network_id = Fog::Rackspace::MockData.uuid - #Compute V2 - flavor_id = Fog.credentials[:rackspace_flavor_id].to_s ||= Fog::Mock.random_numbers(1) - image_id = Fog.credentials[:rackspace_image_id] ||= Fog::Rackspace::MockData.uuid - image_name = Fog::Mock.random_letters(6) + flavor = { + "OS-FLV-DISABLED:disabled" => false, + "disk" => 20, + "id" => flavor_id, + "links" => [ + { + "href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/flavors/#{flavor_id}", + "rel" => "self" + }, + { + "href" => "https://dfw.servers.api.rackspacecloud.com/010101/flavors/#{flavor_id}", + "rel" => "bookmark" + } + ], + "name" => "512MB Standard Instance", + "ram" => 512, + "rxtx_factor" => 2.0, + "swap" => 512, + "vcpus" => 1, + } - flavor = { - "OS-FLV-DISABLED:disabled" => false, - "disk" => 20, - "id" => flavor_id, - "links" => [ - { - "href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/flavors/#{flavor_id}", - "rel" => "self" - }, - { - "href" => "https://dfw.servers.api.rackspacecloud.com/010101/flavors/#{flavor_id}", - "rel" => "bookmark" - } - ], - "name" => "512MB Standard Instance", - "ram" => 512, - "rxtx_factor" => 2.0, - "swap" => 512, - "vcpus" => 1, - } + image = { + "OS-DCF:diskConfig" => "AUTO", + "created" => "2012-02-28T19:38:57Z", + "id" => image_id, + "links" => [ + { + "href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/images/#{image_id}", + "rel" => "self" + }, + { + "href" => "https://dfw.servers.api.rackspacecloud.com/010101/images/#{image_id}", + "rel" => "bookmark" + }, + { + "href" => "https://dfw.servers.api.rackspacecloud.com/010101/images/#{image_id}", + "rel" => "alternate", + "type" => "application/vnd.openstack.image" + } + ], + "metadata" => { + "arch" => "x86-64", + "auto_disk_config" => "True", + "com.rackspace__1__build_core" => "1", + "com.rackspace__1__build_managed" => "0", + "com.rackspace__1__build_rackconnect" => "0", + "com.rackspace__1__options" => "0", + "com.rackspace__1__visible_core" => "1", + "com.rackspace__1__visible_managed" => "0", + "com.rackspace__1__visible_rackconnect" => "0", + "image_type" => "base", + "org.openstack__1__architecture" => "x64", + "org.openstack__1__os_distro" => "org.ubuntu", + "org.openstack__1__os_version" => "11.10", + "os_distro" => "ubuntu", + "os_type" => "linux", + "os_version" => "11.10", + "rax_managed" => "false", + "rax_options" => "0" + }, + "minDisk" => 10, + "minRam" => 256, + "name" => image_name, + "progress" => 100, + "status" => "ACTIVE", + "updated" => "2012-02-28T19:39:05Z" + } - image = { - "OS-DCF:diskConfig" => "AUTO", - "created" => "2012-02-28T19:38:57Z", - "id" => image_id, - "links" => [ - { - "href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/images/#{image_id}", - "rel" => "self" - }, - { - "href" => "https://dfw.servers.api.rackspacecloud.com/010101/images/#{image_id}", - "rel" => "bookmark" - }, - { - "href" => "https://dfw.servers.api.rackspacecloud.com/010101/images/#{image_id}", - "rel" => "alternate", - "type" => "application/vnd.openstack.image" - } - ], - "metadata" => { - "arch" => "x86-64", - "auto_disk_config" => "True", - "com.rackspace__1__build_core" => "1", - "com.rackspace__1__build_managed" => "0", - "com.rackspace__1__build_rackconnect" => "0", - "com.rackspace__1__options" => "0", - "com.rackspace__1__visible_core" => "1", - "com.rackspace__1__visible_managed" => "0", - "com.rackspace__1__visible_rackconnect" => "0", - "image_type" => "base", - "org.openstack__1__architecture" => "x64", - "org.openstack__1__os_distro" => "org.ubuntu", - "org.openstack__1__os_version" => "11.10", - "os_distro" => "ubuntu", - "os_type" => "linux", - "os_version" => "11.10", - "rax_managed" => "false", - "rax_options" => "0" - }, - "minDisk" => 10, - "minRam" => 256, - "name" => image_name, - "progress" => 100, - "status" => "ACTIVE", - "updated" => "2012-02-28T19:39:05Z" - } + network = { + 'id' => network_id, + 'label' => 'network label', + 'cidr' => '192.168.0.0/24' + } + #Block Storage + volume_type1_id = Fog::Mock.random_numbers(3).to_i + volume_type2_id = Fog::Mock.random_numbers(3).to_i - #Block Storage - volume_type1_id = Fog::Mock.random_numbers(3).to_i - volume_type2_id = Fog::Mock.random_numbers(3).to_i + volume_type1 = { + "id" => volume_type1_id, + "name" => "SATA", + "extra_specs" => {}, + } - volume_type1 = { - "id" => volume_type1_id, - "name" => "SATA", - "extra_specs" => {}, - } + volume_type2 = { + "id" => volume_type2_id, + "name" => "SSD", + "extra_specs" => {}, + } - volume_type2 = { - "id" => volume_type2_id, - "name" => "SSD", - "extra_specs" => {}, - } + #Mock Data Hash + { + #Compute V2 + :flavors => {flavor_id => flavor}, + :images => {image_id => image}, + :servers => {}, + :networks => { network_id => network }, - #Mock Data Hash - { - #Compute V2 - :flavors => {flavor_id => flavor}, - :images => {image_id => image}, - :servers => {}, - - #Block Storage - :volumes => {}, - :snapshots => {}, - :volume_attachments => [], - :volume_types => {volume_type1_id => volume_type1, volume_type2_id => volume_type2}, - } - end + #Block Storage + :volumes => {}, + :snapshots => {}, + :volume_attachments => [], + :volume_types => {volume_type1_id => volume_type1, volume_type2_id => volume_type2}, + } + end end[@rackspace_api_key] end diff --git a/lib/fog/rackspace/requests/compute_v2/create_network.rb b/lib/fog/rackspace/requests/compute_v2/create_network.rb index aede54f4e..de96e3e89 100644 --- a/lib/fog/rackspace/requests/compute_v2/create_network.rb +++ b/lib/fog/rackspace/requests/compute_v2/create_network.rb @@ -18,6 +18,19 @@ module Fog ) end end + + class Mock + def create_network(label, cidr) + network_id = Fog::Rackspace::MockData.uuid + + self.data[:networks][network_id] = { + 'id' => network_id, + 'label' => label, + 'cidr' => cidr + } + response(:body => { 'network' => self.data[:networks][network_id] }) + end + end end end end diff --git a/lib/fog/rackspace/requests/compute_v2/delete_network.rb b/lib/fog/rackspace/requests/compute_v2/delete_network.rb index 39d84d412..694931d33 100644 --- a/lib/fog/rackspace/requests/compute_v2/delete_network.rb +++ b/lib/fog/rackspace/requests/compute_v2/delete_network.rb @@ -6,6 +6,16 @@ module Fog request(:method => 'DELETE', :path => "os-networksv2/#{id}", :expects => 202) end end + + class Mock + def delete_network(id) + unless self.data[:networks].has_key?(id) + raise Fog::Compute::RackspaceV2::NotFound + end + + response(:body => '', :status => 202) + end + end end end end diff --git a/lib/fog/rackspace/requests/compute_v2/get_network.rb b/lib/fog/rackspace/requests/compute_v2/get_network.rb index 5bb825ab3..424701564 100644 --- a/lib/fog/rackspace/requests/compute_v2/get_network.rb +++ b/lib/fog/rackspace/requests/compute_v2/get_network.rb @@ -6,6 +6,16 @@ module Fog request(:method => 'GET', :path => "os-networksv2/#{id}", :expects => 200) end end + + class Mock + def get_network(id) + unless self.data[:networks].has_key?(id) + raise Fog::Compute::RackspaceV2::NotFound + end + + response(:body => { 'network' => self.data[:networks][id] }) + end + end end end end diff --git a/lib/fog/rackspace/requests/compute_v2/list_networks.rb b/lib/fog/rackspace/requests/compute_v2/list_networks.rb index 19061b5e2..6b76b5e75 100644 --- a/lib/fog/rackspace/requests/compute_v2/list_networks.rb +++ b/lib/fog/rackspace/requests/compute_v2/list_networks.rb @@ -6,6 +6,13 @@ module Fog request(:method => 'GET', :path => 'os-networksv2', :expects => 200) end end + + class Mock + def list_networks + networks = self.data[:networks].values + response(:body => { 'networks' => networks }) + end + end end end end