diff --git a/lib/fog/serverlove/compute.rb b/lib/fog/serverlove/compute.rb index 17567b8c6..e2a1e4c59 100644 --- a/lib/fog/serverlove/compute.rb +++ b/lib/fog/serverlove/compute.rb @@ -16,6 +16,7 @@ module Fog request :destroy_image request :create_image request :update_image + request :load_standard_image # Server request :get_servers diff --git a/lib/fog/serverlove/models/compute/image.rb b/lib/fog/serverlove/models/compute/image.rb index 8ad2be231..fcc3532f2 100644 --- a/lib/fog/serverlove/models/compute/image.rb +++ b/lib/fog/serverlove/models/compute/image.rb @@ -30,6 +30,11 @@ module Fog self end + def load_standard_image(standard_image_uuid) + requires :identity + connection.load_standard_image(identity, standard_image_uuid) + end + def ready? status.upcase == 'ACTIVE' end diff --git a/lib/fog/serverlove/requests/compute/load_standard_image.rb b/lib/fog/serverlove/requests/compute/load_standard_image.rb new file mode 100644 index 000000000..341b5c5c1 --- /dev/null +++ b/lib/fog/serverlove/requests/compute/load_standard_image.rb @@ -0,0 +1,13 @@ +module Fog + module Compute + class Serverlove + class Real + + def load_standard_image(destination_image, source_image) + request(:method => "post", :path => "/drives/#{destination_image}/image/#{source_image}", :expects => 204) + end + + end + end + end +end diff --git a/tests/serverlove/requests/compute/image_tests.rb b/tests/serverlove/requests/compute/image_tests.rb index 4ea87e77f..97fc3da74 100644 --- a/tests/serverlove/requests/compute/image_tests.rb +++ b/tests/serverlove/requests/compute/image_tests.rb @@ -16,7 +16,7 @@ Shindo.tests('Fog::Compute[:serverlove] | drive requests', ['serverlove']) do tests('success') do - attributes = { name: 'Test', size: 12345 } + attributes = { 'name' => 'Test', 'size' => '1234567890' } tests("#create_image").formats(@image_format) do @image = Fog::Compute[:serverlove].create_image(attributes).body @@ -32,6 +32,11 @@ Shindo.tests('Fog::Compute[:serverlove] | drive requests', ['serverlove']) do Fog::Compute[:serverlove].images.get(@image['drive']).name == "Diff" end + tests("#load_standard_image").succeeds do + # Load centos + Fog::Compute[:serverlove].load_standard_image(@image['drive'], '679f5f44-0be7-4745-a658-cccd4334c1aa') + end + tests("#destroy_image").succeeds do Fog::Compute[:serverlove].destroy_image(@image['drive']) end