Clean up acceptance specs utilities
This commit is contained in:
parent
6adebb695c
commit
8c7cfd7720
1 changed files with 32 additions and 21 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue