class Puter::CLI::Vm
Public Instance Methods
apply(instance_name, context)
click to toggle source
# File lib/puter/cli/vm.rb, line 21 def apply(instance_name, context) CLI.run_cli do instance_path = "#{options[:instances]}/#{instance_name}" puterfile_path = File.expand_path 'Puterfile', context puterfile = Puter::Puterfile.from_path puterfile_path vm.host(instance_path) do |host| Puter.ui.info "Applying '#{puterfile_path}' to '#{instance_path}' at #{host}" backend = Puter::Backend::Ssh.new(host, Puter::CLI::SSH_OPTS) ret = puterfile.apply(context, backend, Puter.ui) end Puter.ui.info "Successfully applied '#{puterfile_path}' to '#{instance_name}'" end end
build(image_name, context)
click to toggle source
# File lib/puter/cli/vm.rb, line 40 def build(image_name, context) CLI.run_cli do build_path = "#{options[:build]}/#{image_name}" images_path = "#{options[:images]}/#{image_name}" puterfile_path = File.expand_path 'Puterfile', context puterfile = Puter::Puterfile.from_path puterfile_path Puter.ui.info "Building '#{images_path}' FROM '#{options[:images]}/#{puterfile.from}'" Puter.ui.info "Waiting for SSH" vm.build(build_path, images_path, "#{options[:images]}/#{puterfile.from}", options) do |host| Puter.ui.info "Applying '#{puterfile_path}' to '#{build_path}' at #{host}" backend = Puter::Backend::Ssh.new(host, Puter::CLI::SSH_OPTS) ret = puterfile.apply(context, backend, Puter.ui) Puter.ui.info "Stopping '#{build_path}' and moving to '#{images_path}'" end Puter.ui.info "Successfully built '#{image_name}'" end end
create(image_name, instance_name)
click to toggle source
# File lib/puter/cli/vm.rb, line 74 def create(image_name, instance_name) CLI.run_cli do image_path = "#{options[:images]}/#{image_name}" instance_path = "#{options[:instances]}/#{instance_name}" vm.create image_path, instance_path, options Puter.ui.info "Created instance '#{instance_path}' from '#{image_path}'" end end
images()
click to toggle source
# File lib/puter/cli/vm.rb, line 13 def images() CLI.run_cli do vm.images(options[:images]).each { |i| Puter.ui.info i } end end
init(path = '/Puter')
click to toggle source
# File lib/puter/cli/vm.rb, line 153 def init(path = '/Puter') CLI.run_cli do vm.init(path) Puter.ui.info "Create Puter folders under #{path}" end end
kill(instance_name)
click to toggle source
# File lib/puter/cli/vm.rb, line 120 def kill(instance_name) CLI.run_cli do instance_path = "#{options[:instances]}/#{instance_name}" Puter.ui.info "Killing instance '#{instance_path}'" vm.kill instance_path Puter.ui.info "Killed '#{instance_path}'." end end
ps()
click to toggle source
# File lib/puter/cli/vm.rb, line 87 def ps() CLI.run_cli do vm.ps(options[:instances], options[:all]).each { |i| Puter.ui.info i } end end
rm(instance_name)
click to toggle source
# File lib/puter/cli/vm.rb, line 132 def rm(instance_name) CLI.run_cli do instance_path = "#{options[:instances]}/#{instance_name}" vm.rm instance_path Puter.ui.info "Removed instance '#{instance_path}'" end end
rmi(image_name)
click to toggle source
# File lib/puter/cli/vm.rb, line 62 def rmi(image_name) image_path = "#{options[:images]}/#{image_name}" CLI.run_cli do vm.rmi image_path Puter.ui.info "Removed image '#{image_path}'" end end
start(instance_name)
click to toggle source
# File lib/puter/cli/vm.rb, line 95 def start(instance_name) CLI.run_cli do instance_path = "#{options[:instances]}/#{instance_name}" Puter.ui.info "Starting instance '#{instance_path}', waiting for SSH..." vm.start instance_path do |host| Puter.ui.info "Started '#{instance_path}' at #{host}." end end end
stop(instance_name)
click to toggle source
# File lib/puter/cli/vm.rb, line 108 def stop(instance_name) CLI.run_cli do instance_path = "#{options[:instances]}/#{instance_name}" Puter.ui.info "Stopping instance '#{instance_path}', waiting for shutdown..." vm.stop instance_path Puter.ui.info "Stopped '#{instance_path}'." end end
Private Instance Methods
vm()
click to toggle source
# File lib/puter/cli/vm.rb, line 162 def vm @vm ||= Puter::Provider::Vm.new end