Shindo.tests('Fog::Compute[:ibm] | server', ['ibm']) do tests('success') do # TODO: Fix this for non-mock tests @server = nil @instance_id = nil @name = "fog-test-instance-" + Time.now.to_i.to_s(32) @image_id = "20010001" @instance_type = "BRZ32.1/2048/60*175" @location_id = "41" @key_name = "fog-test-key-" + Time.now.to_i.to_s(32) @key = Fog::Compute[:ibm].keys.create(:name => @key_name) tests('Fog::Compute::IBM::Server.new') do @server = Fog::Compute[:ibm].servers.new( :name => @name, :image_id => @image_id, :instance_type => @instance_type, :location_id => @location, :key_name => @key_name ) returns(@name) { @server.name } end tests('Fog::Compute::IBM::Server#save') do returns(true) { @server.save } returns(String) { @server.id.class } @instance_id = @server.id end tests('Fog::Compute::IBM::Server#wait_for { ready? }') do @server = Fog::Compute[:ibm].servers.get(@instance_id) @server.wait_for { ready? } end tests('Fog::Compute::IBM::Server#id') do returns(@instance_id) { @server.id } end tests('Fog::Compute::IBM::Server#ready?') do returns(true) { @server.ready? } end tests('Fog::Compute::IBM::Server#status') do returns("Active") { @server.state } end # TODO: make this work # tests('Fog::Compute::IBM::Server#reboot') do # returns(true) { @server.reboot } # end tests('Fog::Compute::IBM::Server#rename("name")') do name = @server.name + "-rename" returns(true) { @server.rename(name) } returns(name) { @server.name } end tests('Fog::Compute::IBM::Server#image') do returns(@image_id) { @server.image.id } end tests('Fog::Compute::IBM::Server#to_image') do body = @server.to_image(:name => @server.name) returns(@server.name) { body['name'] } image = Fog::Compute[:ibm].images.get(body['id']) image.wait_for { ready? || state == 'New' } returns(true) { Fog::Compute[:ibm].delete_image(image.id).body['success'] } end tests('Fog::Compute::IBM::Server#expire_at') do returns(true) { @server.expire_at(Time.now + 60) } end tests('Fog::Compute::IBM::Server#destroy') do returns(true) { @server.destroy } end @key.wait_for { instance_ids.empty? } @key.destroy end end