Class: Fog::OpenStack::Image::V2::Mock
- Inherits:
-
Object
- Object
- Fog::OpenStack::Image::V2::Mock
- Defined in:
- lib/fog/openstack/image/v2.rb,
lib/fog/openstack/image/v2/requests/get_image.rb,
lib/fog/openstack/image/v2/requests/set_tenant.rb,
lib/fog/openstack/image/v2/requests/list_images.rb,
lib/fog/openstack/image/v2/requests/create_image.rb,
lib/fog/openstack/image/v2/requests/delete_image.rb,
lib/fog/openstack/image/v2/requests/update_image.rb,
lib/fog/openstack/image/v2/requests/upload_image.rb,
lib/fog/openstack/image/v2/requests/download_image.rb,
lib/fog/openstack/image/v2/requests/get_image_by_id.rb,
lib/fog/openstack/image/v2/requests/add_tag_to_image.rb,
lib/fog/openstack/image/v2/requests/deactivate_image.rb,
lib/fog/openstack/image/v2/requests/reactivate_image.rb,
lib/fog/openstack/image/v2/requests/get_image_members.rb,
lib/fog/openstack/image/v2/requests/get_shared_images.rb,
lib/fog/openstack/image/v2/requests/get_member_details.rb,
lib/fog/openstack/image/v2/requests/add_member_to_image.rb,
lib/fog/openstack/image/v2/requests/update_image_member.rb,
lib/fog/openstack/image/v2/requests/remove_tag_from_image.rb,
lib/fog/openstack/image/v2/requests/remove_member_from_image.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_member_to_image(_image_id, _tenant_id) ⇒ Object
- #add_tag_to_image(_image_id, _tag) ⇒ Object
- #create_image(attributes) ⇒ Object
- #credentials ⇒ Object
- #data ⇒ Object
- #deactivate_image(_image_id) ⇒ Object
- #delete_image(_image_id) ⇒ Object
- #download_image(_image_id, _content_range = nil) ⇒ Object
- #get_image(_image_id) ⇒ Object
- #get_image_by_id(_image_id) ⇒ Object
- #get_image_members(_image_id) ⇒ Object
- #get_member_details(_image_id, _member_id) ⇒ Object
- #get_shared_images(_tenant_id) ⇒ Object
-
#initialize(options = {}) ⇒ Mock
constructor
A new instance of Mock.
- #list_images(_options = {}) ⇒ Object
- #reactivate_image(_image_id) ⇒ Object
- #remove_member_from_image(_image_id, _member_id) ⇒ Object
- #remove_tag_from_image(_image_id, _tag) ⇒ Object
- #reset_data ⇒ Object
- #set_tenant(_tenant) ⇒ Object
- #update_image(attributes) ⇒ Object
- #update_image_members(image_id, member) ⇒ Object
- #upload_image(_image_id, _body) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Mock
Returns a new instance of Mock.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/fog/openstack/image/v2.rb', line 61 def initialize( = {}) @openstack_username = [:openstack_username] @openstack_tenant = [:openstack_tenant] @openstack_auth_uri = URI.parse([:openstack_auth_url]) @auth_token = Fog::Mock.random_base64(64) @auth_token_expiration = (Time.now.utc + 86400).iso8601 management_url = URI.parse([:openstack_auth_url]) management_url.port = 9292 management_url.path = '/v2' @openstack_management_url = management_url.to_s @data ||= {:users => {}} unless @data[:users].detect { |u| u['name'] == [:openstack_username] } id = Fog::Mock.random_numbers(6).to_s @data[:users][id] = { 'id' => id, 'name' => [:openstack_username], 'email' => "#{[:openstack_username]}@mock.com", 'tenantId' => Fog::Mock.random_numbers(6).to_s, 'enabled' => true } end end |
Class Method Details
.data ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/fog/openstack/image/v2.rb', line 49 def self.data @data ||= Hash.new do |hash, key| hash[key] = { :images => {} } end end |
.reset ⇒ Object
57 58 59 |
# File 'lib/fog/openstack/image/v2.rb', line 57 def self.reset @data = nil end |
Instance Method Details
#add_member_to_image(_image_id, _tenant_id) ⇒ Object
17 18 19 20 21 |
# File 'lib/fog/openstack/image/v2/requests/add_member_to_image.rb', line 17 def add_member_to_image(_image_id, _tenant_id) response = Excon::Response.new response.status = 200 response end |
#add_tag_to_image(_image_id, _tag) ⇒ Object
16 17 18 19 20 |
# File 'lib/fog/openstack/image/v2/requests/add_tag_to_image.rb', line 16 def add_tag_to_image(_image_id, _tag) response = Excon::Response.new response.status = 204 response end |
#create_image(attributes) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/fog/openstack/image/v2/requests/create_image.rb', line 22 def create_image(attributes) response = Excon::Response.new response.status = 201 image_id = Fog::Mock.random_hex(32) image = data[:images][image_id] = { 'tags' => attributes[:tags] || [], 'name' => attributes[:name], 'size' => nil, 'min_disk' => attributes[:min_disk] || 0, 'disk_format' => attributes[:disk_format] || 'raw', 'created_at' => Time.now.strftime('%FT%T.%6N'), 'container_format' => attributes[:container_format] || 'bare', 'deleted_at' => nil, 'updated_at' => Time.now.strftime('%FT%T.%6N'), 'checksum' => nil, 'id' => image_id, 'visibility' => attributes[:visibility] || 'public', 'status' => 'queued', 'min_ram' => attributes[:min_ram] || 0, 'owner' => attributes[:owner] || Fog::Mock.random_hex(32) } response.body = image response end |
#credentials ⇒ Object
95 96 97 98 99 100 101 |
# File 'lib/fog/openstack/image/v2.rb', line 95 def credentials {:provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_region => @openstack_region, :openstack_management_url => @openstack_management_url} end |
#data ⇒ Object
87 88 89 |
# File 'lib/fog/openstack/image/v2.rb', line 87 def data self.class.data[@openstack_username] end |
#deactivate_image(_image_id) ⇒ Object
16 17 18 19 20 |
# File 'lib/fog/openstack/image/v2/requests/deactivate_image.rb', line 16 def deactivate_image(_image_id) response = Excon::Response.new response.status = 204 response end |
#delete_image(_image_id) ⇒ Object
16 17 18 19 20 |
# File 'lib/fog/openstack/image/v2/requests/delete_image.rb', line 16 def delete_image(_image_id) response = Excon::Response.new response.status = 204 response end |
#download_image(_image_id, _content_range = nil) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/fog/openstack/image/v2/requests/download_image.rb', line 19 def download_image(_image_id, _content_range = nil) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = "" response end |
#get_image(_image_id) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fog/openstack/image/v2/requests/get_image.rb', line 16 def get_image(_image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.headers = {"X-Image-Meta-Is_public" => "True", "X-Image-Meta-Min_disk" => "0", "X-Image-Meta-Property-Ramdisk_id" => "b45aa128-cd36-4ad9-a026-1a1c2bfd8fdc", "X-Image-Meta-Disk_format" => "ami", "X-Image-Meta-Created_at" => "2012-02-21T07:32:26", "X-Image-Meta-Container_format" => "ami", "Etag" => "2f81976cae15c16ef0010c51e3a6c163", "Location" => "http://192.168.27.100:9292/v1/images/0e09fbd6-43c5-448a-83e9-0d3d05f9747e", "X-Image-Meta-Protected" => "False", "Date" => "Fri, 24 Feb 2012 02:14:25 GMT", "X-Image-Meta-Name" => "cirros-0.3.0-x86_64-blank", "X-Image-Meta-Min_ram" => "0", "Content-Type" => "text/html; charset=UTF-8", "X-Image-Meta-Updated_at" => "2012-02-21T07:32:29", "X-Image-Meta-Property-Kernel_id" => "cd28951e-e1c2-4bc5-95d3-f0495abbcdc5", "X-Image-Meta-Size" => "25165824", "X-Image-Meta-Checksum" => "2f81976cae15c16ef0010c51e3a6c163", "X-Image-Meta-Deleted" => "False", "Content-Length" => "0", "X-Image-Meta-Owner" => "ff528b20431645ebb5fa4b0a71ca002f", "X-Image-Meta-Status" => "active", "X-Image-Meta-Id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e"} response.body = "" response end |
#get_image_by_id(_image_id) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/openstack/image/v2/requests/get_image_by_id.rb', line 16 def get_image_by_id(_image_id) response = Excon::Response.new response.status = [200][rand(2)] response.body = { "images" => [{ "name" => "mock-image-name", "size" => 25165824, "disk_format" => "ami", "container_format" => "ami", "id" => "0e09fbd6-43c5-448a-83e9-0d3d05f9747e", "checksum" => "2f81976cae15c16ef0010c51e3a6c163" }] } response end |
#get_image_members(_image_id) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/openstack/image/v2/requests/get_image_members.rb', line 16 def get_image_members(_image_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "members" => [ {"member_id" => "ff528b20431645ebb5fa4b0a71ca002f", "can_share" => false} ] } response end |
#get_member_details(_image_id, _member_id) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/openstack/image/v2/requests/get_member_details.rb', line 16 def get_member_details(_image_id, _member_id) response = Excon::Response.new response.status = 200 response.body = { :status => "pending", :created_at => "2013-11-26T07:21:21Z", :updated_at => "2013-11-26T07:21:21Z", :image_id => "0ae74cc5-5147-4239-9ce2-b0c580f7067e", :member_id => "8989447062e04a818baf9e073fd04fa7", :schema => "/v2/schemas/member" } response end |
#get_shared_images(_tenant_id) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/openstack/image/v2/requests/get_shared_images.rb', line 16 def get_shared_images(_tenant_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "shared_images" => [ {"image_id" => "ff528b20431645ebb5fa4b0a71ca002f", "can_share" => false} ] } response end |
#list_images(_options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/fog/openstack/image/v2/requests/list_images.rb', line 17 def list_images( = {}) response = Excon::Response.new response.status = [200, 204][rand(2)] response.body = { "images" => [{ "name" => Fog::Mock.random_letters(10), "size" => Fog::Mock.random_numbers(8).to_i, "disk_format" => "iso", "container_format" => "bare", "id" => Fog::Mock.random_hex(36), "checksum" => Fog::Mock.random_hex(32) }] } response end |
#reactivate_image(_image_id) ⇒ Object
16 17 18 19 20 |
# File 'lib/fog/openstack/image/v2/requests/reactivate_image.rb', line 16 def reactivate_image(_image_id) response = Excon::Response.new response.status = 204 response end |
#remove_member_from_image(_image_id, _member_id) ⇒ Object
16 17 18 19 20 |
# File 'lib/fog/openstack/image/v2/requests/remove_member_from_image.rb', line 16 def remove_member_from_image(_image_id, _member_id) response = Excon::Response.new response.status = [200, 204][rand(2)] response end |
#remove_tag_from_image(_image_id, _tag) ⇒ Object
16 17 18 19 20 |
# File 'lib/fog/openstack/image/v2/requests/remove_tag_from_image.rb', line 16 def remove_tag_from_image(_image_id, _tag) response = Excon::Response.new response.status = 204 response end |
#reset_data ⇒ Object
91 92 93 |
# File 'lib/fog/openstack/image/v2.rb', line 91 def reset_data self.class.data.delete(@openstack_username) end |
#set_tenant(_tenant) ⇒ Object
14 15 16 |
# File 'lib/fog/openstack/image/v2/requests/set_tenant.rb', line 14 def set_tenant(_tenant) true end |
#update_image(attributes) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fog/openstack/image/v2/requests/update_image.rb', line 18 def update_image(attributes) response = Excon::Response.new response.status = 200 image = images.last response.body = { 'image' => { 'name' => attributes[:name] || image.name, 'size' => image.size, 'min_disk' => (attributes[:min_disk] || image.min_disk).to_i, 'disk_format' => attributes[:disk_format] || image.disk_format, 'created_at' => image.created_at, 'container_format' => attributes[:container_format] || image.container_format, 'deleted_at' => nil, 'updated_at' => Time.now.to_s, 'checksum' => image.checksum, 'id' => attributes[:id], 'deleted' => false, 'protected' => false, 'is_public' => attributes[:is_public] || image.is_public, 'status' => image.status, 'min_ram' => (attributes[:min_ram] || image.min_ram).to_i, 'owner' => attributes[:owner] || image.owner, 'properties' => attributes[:properties] || image.properties } } response end |
#update_image_members(image_id, member) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/openstack/image/v2/requests/update_image_member.rb', line 17 def update_image_members(image_id, member) response = Excon::Response.new response.status = 204 response.body = { :status => "accepted", :created_at => "2013-11-26T07:21:21Z", :updated_at => "2013-11-26T07:21:21Z", :image_id => image_id, :member_id => member['member_id'], :schema => "/v2/schemas/member" } response end |
#upload_image(_image_id, _body) ⇒ Object
22 23 24 25 |
# File 'lib/fog/openstack/image/v2/requests/upload_image.rb', line 22 def upload_image(_image_id, _body) response = Excon::Response.new response.status = 204 end |