Clean up acceptance specs utilities

This commit is contained in:
Fabio Rehm 2013-04-21 18:47:15 -03:00
parent 6adebb695c
commit 8c7cfd7720

View file

@ -3,43 +3,54 @@ module AcceptanceExampleGroup
base.metadata[:type] = :acceptance base.metadata[:type] = :acceptance
end end
ID_FILE = "/vagrant/spec/.vagrant/machines/default/lxc/id"
def vagrant_container_name
File.read(ID_FILE).strip.chomp if File.exists?(ID_FILE)
end
def destroy_container def destroy_container
`sudo lxc-shutdown -n \`cat /vagrant/spec/.vagrant/machines/default/lxc/id\` 2>/dev/null` if name = vagrant_container_name
`sudo lxc-wait -n \`cat /vagrant/spec/.vagrant/machines/default/lxc/id\` --state STOPPED 2>/dev/null` `sudo lxc-shutdown -n #{name} 2>/dev/null`
`sudo lxc-destroy -n \`cat /vagrant/spec/.vagrant/machines/default/lxc/id\` 2>/dev/null` `sudo lxc-wait -n #{name} --state STOPPED 2>/dev/null`
`sudo lxc-destroy -n #{name} 2>/dev/null`
end
`sudo killall -9 redir 2>/dev/null` `sudo killall -9 redir 2>/dev/null`
end end
def vagrant_up def with_vagrant_environment
opts = { cwd: 'spec' } opts = { cwd: 'spec', ui_class: TestUI }
env = Vagrant::Environment.new(opts) env = Vagrant::Environment.new(opts)
env.cli('up', '--provider', 'lxc') yield env
env.unload env.unload
end end
def vagrant_up
with_vagrant_environment do |env|
env.cli('up', '--provider', 'lxc')
end
end
def vagrant_halt def vagrant_halt
opts = { cwd: 'spec' } with_vagrant_environment do |env|
env = Vagrant::Environment.new(opts)
env.cli('halt') env.cli('halt')
env.unload end
end end
def vagrant_destroy def vagrant_destroy
opts = { cwd: 'spec' } with_vagrant_environment do |env|
env = Vagrant::Environment.new(opts)
env.cli('destroy', '-f') env.cli('destroy', '-f')
env.unload end
end end
def vagrant_ssh(cmd) def vagrant_ssh(cmd)
opts = { cwd: 'spec', ui_class: TestUI } output = nil
env = Vagrant::Environment.new(opts) with_vagrant_environment do |env|
result = env.cli('ssh', '-c', cmd) result = env.cli('ssh', '-c', cmd)
if result.to_i != 0 if result.to_i != 0
raise "SSH command failed: '#{cmd}'\n#{env.ui.messages.inspect}" raise "SSH command failed: '#{cmd}'\n#{env.ui.messages.inspect}"
end end
output = env.ui.messages[:info].join("\n").chomp output = env.ui.messages[:info].join("\n").chomp
env.unload end
output output
end end
end end