mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
81fccc5ce5
This moves the setting up of an `at_exit` callback from when the file is required to when the matching helper is used. This prevents it failing on any run where OpenVZ is excluded.
47 lines
1.1 KiB
Ruby
47 lines
1.1 KiB
Ruby
|
|
# Shortcut for Fog::Compute[:openvz]
|
|
def openvz_service
|
|
Fog::Compute[:openvz]
|
|
end
|
|
|
|
# Create a long lived server for the tests
|
|
def openvz_fog_test_server
|
|
server = openvz_service.servers.find { |s| s.ctid == '104' }
|
|
unless server
|
|
server = openvz_service.servers.create :ctid => '104'
|
|
server.start
|
|
server.reload
|
|
# Wait for the server to come up
|
|
begin
|
|
server.wait_for(120) { server.reload rescue nil; server.ready? }
|
|
rescue Fog::Errors::TimeoutError
|
|
# Server bootstrap took more than 120 secs!
|
|
end
|
|
end
|
|
|
|
openvz_fog_test_cleanup
|
|
|
|
server
|
|
end
|
|
|
|
# Destroy the long lived server
|
|
def openvz_fog_test_server_destroy
|
|
server = openvz_service.servers.find { |s| s.ctid == '104' }
|
|
server.destroy if server
|
|
end
|
|
|
|
# Prepare a callback to destroy the long lived test server
|
|
def openvz_fog_test_cleanup
|
|
at_exit do
|
|
unless Fog.mocking?
|
|
server = openvz_service.servers.find { |s| s.name == '104' }
|
|
if server
|
|
server.wait_for(120) do
|
|
reload rescue nil; ready?
|
|
end
|
|
end
|
|
server.stop
|
|
openvz_fog_test_server_destroy
|
|
end
|
|
end
|
|
end
|