class Pennyworth::VagrantCommand
Attributes
vagrant[R]
Public Class Methods
new()
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 22 def initialize @vagrant = Pennyworth::Vagrant.new(Pennyworth::Cli.settings.vagrant_dir) end
parse_status(output)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 26 def self.parse_status output result = [] parsing_vms = false output.each_line do |line| line.strip! if line.empty? break if parsing_vms parsing_vms = true elsif parsing_vms line =~ /^(.*?)\s+(.*)$/ vm_name = $1 vm_state = $2 if vm_state =~ /running/ vm_name += " (running)" end result.push vm_name end end result end
setup_environment(dir)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 47 def self.setup_environment(dir) if !File.exists?(File.join(dir, "Vagrantfile")) vagrant = Pennyworth::Vagrant.new(dir) FileUtils.mkdir_p(dir) vagrant.run("init") end end
Public Instance Methods
add_box(box, box_path)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 116 def add_box box, box_path @vagrant.run "box", "add", box, box_path, "--force" end
destroy()
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 112 def destroy @vagrant.run "destroy" end
down(vm_name)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 69 def down(vm_name) if vm_name log "Stopping VM #{vm_name}..." @vagrant.run "halt", vm_name else log "Stopping test environment..." @vagrant.run "halt" end end
env_clean?()
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 79 def env_clean? status = @vagrant.run "status", :stdout => :capture return status.index("running").nil? end
list()
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 103 def list boxes = @vagrant.run "box", "list", :stdout => :capture boxes.split("\n") end
reset(vm_name)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 85 def reset(vm_name) if vm_name log "Resetting VM #{vm_name}..." @vagrant.run "destroy", vm_name else log "Resetting test environment..." @vagrant.run "destroy" end end
ssh(vm_name, cmd, stdout = nil)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 95 def ssh(vm_name, cmd, stdout = nil) if vm_name @vagrant.run "ssh", vm_name, "-c", cmd, :stdout => stdout else @vagrant.run "ssh", "-c", cmd, :stdout => stdout end end
status()
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 108 def status Pennyworth::VagrantCommand.parse_status( @vagrant.run "status", :stdout => :capture ) end
up(vm_name, destroy)
click to toggle source
# File lib/pennyworth/vagrant_command.rb, line 55 def up(vm_name, destroy) Pennyworth::Libvirt.ensure_libvirt_env_started if vm_name log "Starting VM #{vm_name}..." @vagrant.run "destroy", vm_name if destroy @vagrant.run "up", vm_name else log "Starting test environment..." @vagrant.run "destroy" if destroy @vagrant.run "up" end end