class Pennyworth::VM
Represents a virtual machine that can be started, stopped, and interacted with.
Attributes
ip[RW]
runner[RW]
Public Class Methods
new(runner)
click to toggle source
# File lib/pennyworth/vm.rb, line 28 def initialize(runner) @runner = runner end
Public Instance Methods
cleanup_directory(dir)
click to toggle source
# File lib/pennyworth/vm.rb, line 77 def cleanup_directory(dir) runner.cleanup_directory(dir) end
extract_file(source, destination)
click to toggle source
# File lib/pennyworth/vm.rb, line 69 def extract_file(source, destination) command_runner.extract_file(source, destination) end
inject_directory(source, destination, opts = {})
click to toggle source
# File lib/pennyworth/vm.rb, line 73 def inject_directory(source, destination, opts = {}) command_runner.inject_directory(source, destination, opts) end
inject_file(source, destination, opts = {})
click to toggle source
# File lib/pennyworth/vm.rb, line 65 def inject_file(source, destination, opts = {}) command_runner.inject_file(source, destination, opts) end
run_command(*args)
click to toggle source
# File lib/pennyworth/vm.rb, line 40 def run_command(*args) opts = args.last.is_a?(Hash) ? args.pop : {} opts.merge!( stdout: :capture, stderr: :capture ) result = CommandResult.new result.cmd = args.join(" ") begin stdout, stderr = command_runner.run(*args, opts) result.exit_code = 0 result.stdout = stdout result.stderr = stderr rescue Cheetah::ExecutionFailed => e result.error = e result.exit_code = e.status.exitstatus result.stdout = e.stdout result.stderr = e.stderr end result end
start()
click to toggle source
# File lib/pennyworth/vm.rb, line 32 def start @ip = @runner.start end
stop()
click to toggle source
# File lib/pennyworth/vm.rb, line 36 def stop @runner.stop end
Private Instance Methods
command_runner()
click to toggle source
# File lib/pennyworth/vm.rb, line 83 def command_runner @runner.command_runner end