mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[vcloud|compute] server tests
This commit is contained in:
parent
001559350f
commit
4cb93026c4
2 changed files with 63 additions and 0 deletions
11
tests/compute/models/vcloud/helper.rb
Normal file
11
tests/compute/models/vcloud/helper.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
class Vcloud
|
||||
module Compute
|
||||
module TestSupport
|
||||
def self.template
|
||||
ENV['VCLOUD_TEMPLATE'] || raise('Specify VApp template URI in VCLOUD_TEMPLATE env var')
|
||||
end
|
||||
end
|
||||
module Formats
|
||||
end
|
||||
end
|
||||
end
|
52
tests/compute/models/vcloud/servers_tests.rb
Normal file
52
tests/compute/models/vcloud/servers_tests.rb
Normal file
|
@ -0,0 +1,52 @@
|
|||
Shindo.tests("Vcloud::Compute | servers", ['vcloud']) do
|
||||
|
||||
tests("#server.new('#{Vcloud::Compute::TestSupport::template}')").returns(true) do
|
||||
pending if Fog.mocking?
|
||||
@svr = Vcloud.servers.create(Vcloud::Compute::TestSupport::template, :name => 'fog_test_run', :password => 'password')
|
||||
print "Waiting for server to be ready"
|
||||
@svr.wait_for(1200) { print '.' ; ready? }
|
||||
puts ""
|
||||
@svr.ready?
|
||||
end
|
||||
|
||||
tests("#svr.power_on()").returns(true) do
|
||||
pending if Fog.mocking?
|
||||
@svr.power_on
|
||||
@svr.wait_for { on? }
|
||||
@svr.wait_for { ready? }
|
||||
@svr.on?
|
||||
end
|
||||
|
||||
# Power off only stops the OS, doesn't free up resources. #undeploy is for this.
|
||||
tests("#svr.undeploy()").returns(true) do
|
||||
pending if Fog.mocking?
|
||||
@svr.undeploy
|
||||
@svr.wait_for { off? }
|
||||
@svr.wait_for { ready? }
|
||||
@svr.off?
|
||||
end
|
||||
|
||||
tests("#svr.memory(384)").returns(384) do
|
||||
pending if Fog.mocking?
|
||||
raise 'Server template memory already 384m - change to something different' if @svr.memory[:amount] == 384
|
||||
@svr.wait_for { ready? }
|
||||
@svr.memory = 384
|
||||
@svr.save
|
||||
@svr.wait_for { ready? }
|
||||
# Can take a little while for the VM to know it has different ram, and not tied to a task..
|
||||
(1..20).each do |i|
|
||||
break if @svr.reload.memory[:amount] == '384'
|
||||
sleep 1
|
||||
end
|
||||
@svr.reload.memory[:amount]
|
||||
end
|
||||
|
||||
tests("#svr.destroy").raises(Excon::Errors::Forbidden) do
|
||||
pending if Fog.mocking?
|
||||
@svr.destroy
|
||||
sleep 5 # allow cleanup..
|
||||
Vcloud.servers.get(@svr.href) == nil
|
||||
end
|
||||
|
||||
|
||||
end
|
Loading…
Add table
Reference in a new issue