class Sidedock::Machine

Public Class Methods

new(name) click to toggle source
# File lib/sidedock/machine.rb, line 3
def initialize(name)
  @name = name
end

Public Instance Methods

cli() click to toggle source
# File lib/sidedock/machine.rb, line 55
def cli
  @cli ||= DockerCLI.new options_to_let_docker_connect_to_it
end
create() click to toggle source
# File lib/sidedock/machine.rb, line 22
def create
  puts "Creating docker machine `#{@name}`. This may take a while."
  docker_machine "create -d virtualbox #{@name}"
end
docker_machine(command) click to toggle source
# File lib/sidedock/machine.rb, line 50
def docker_machine(command)
  @machine_cli ||= MachineCLI.new
  @machine_cli.execute command
end
ensure_exists() click to toggle source
# File lib/sidedock/machine.rb, line 7
def ensure_exists
  create unless exists?
  raise "Could not create docker machine #{@name}" unless exists?
end
ensure_running() click to toggle source
# File lib/sidedock/machine.rb, line 12
def ensure_running
  ensure_exists
  start unless running?
  raise "Could not start docker machine #{@name}" unless running?
end
execute(command) click to toggle source
# File lib/sidedock/machine.rb, line 45
def execute(command)
  ensure_running
  cli.execute command
end
exists?() click to toggle source
# File lib/sidedock/machine.rb, line 34
def exists?
  return true if @exists
  if docker_machine("ls -q").include? @name
    @exists = true
  end
end
ip() click to toggle source
# File lib/sidedock/machine.rb, line 41
def ip
  docker_machine "ip #{@name}"
end
options_to_let_docker_connect_to_it() click to toggle source
# File lib/sidedock/machine.rb, line 59
def options_to_let_docker_connect_to_it
  docker_machine("config #{@name}").gsub("\n", ' ')
end
running?() click to toggle source
# File lib/sidedock/machine.rb, line 27
def running?
  return true if @running
  if docker_machine("ls -q --filter state=Running").include? @name
    @running = true
  end
end
start() click to toggle source
# File lib/sidedock/machine.rb, line 18
def start
  docker_machine "start #{@name}"
end