Shindo.tests('Fog::Compute[:serverlove] | drive requests', ['serverlove']) do @image_format = { 'drive' => String, 'name' => String, 'user' => String, 'size' => Integer, 'claimed' => Fog::Nullable::String, 'status' => String, 'encryption:cipher' => String, 'read:bytes' => String, 'write:bytes' => String, 'read:requests' => String, 'write:requests' => String } tests('success') do attributes = { 'name' => 'Test', 'size' => '24234567890' } tests("#create_image").formats(@image_format) do @image = Fog::Compute[:serverlove].create_image(attributes).body end tests("#list_images").succeeds do Fog::Compute[:serverlove].images end tests("#update_image").returns(true) do @image['name'] = "Diff" Fog::Compute[:serverlove].update_image(@image['drive'], { :name => @image['name'], :size => @image['size']}) Fog::Compute[:serverlove].images.get(@image['drive']).name == "Diff" end tests("#load_standard_image").returns(true) do # Load centos Fog::Compute[:serverlove].load_standard_image(@image['drive'], '88ed067f-d2b8-42ce-a25f-5297818a3b6f') Fog::Compute[:serverlove].images.get(@image['drive']).imaging != "" # This will be "x%" when imaging end tests("waits for imaging...").returns(true) do while(percent_complete = Fog::Compute[:serverlove].images.get(@image['drive']).imaging) sleep(1) STDERR.print "#{percent_complete} " break if percent_complete.include?("100") end STDERR.print "100% " true end tests("#destroy_image").succeeds do Fog::Compute[:serverlove].destroy_image(@image['drive']) end end end