lib/vagrant/commands/ssh.rb in vagrant-0.3.4 vs lib/vagrant/commands/ssh.rb in vagrant-0.4.0
- old
+ new
@@ -8,15 +8,37 @@
class SSH < Base
Base.subcommand "ssh", self
description "SSH into the currently running environment"
def execute(args=[])
- env.require_persisted_vm
- env.ssh.connect
+ args = parse_options(args)
+ ssh_connect(args[0])
end
+ def ssh_connect(name)
+ if name.nil? && env.multivm?
+ if env.primary_vm.nil?
+ error_and_exit(:ssh_multivm)
+ return # for tests
+ end
+ end
+
+ vm = name.nil? ? env.primary_vm : env.vms[name.to_sym]
+ if vm.nil?
+ error_and_exit(:unknown_vm, :vm => name)
+ return # for tests
+ end
+
+ if !vm.created?
+ error_and_exit(:environment_not_created)
+ return
+ else
+ vm.ssh.connect
+ end
+ end
+
def options_spec(opts)
opts.banner = "Usage: vagrant ssh"
end
end
end
-end
\ No newline at end of file
+end