Remove forwarded_port_key/destination from config, replace with guest_port
This commit is contained in:
parent
00a31ff27b
commit
acaabd5aa3
|
@ -6,8 +6,7 @@ Vagrant::Config.run do |config|
|
||||||
|
|
||||||
config.ssh.username = "vagrant"
|
config.ssh.username = "vagrant"
|
||||||
config.ssh.host = "127.0.0.1"
|
config.ssh.host = "127.0.0.1"
|
||||||
config.ssh.forwarded_port_key = "ssh"
|
config.ssh.guest_port = 22
|
||||||
config.ssh.forwarded_port_destination = 22
|
|
||||||
config.ssh.max_tries = 100
|
config.ssh.max_tries = 100
|
||||||
config.ssh.timeout = 10
|
config.ssh.timeout = 10
|
||||||
config.ssh.forward_agent = false
|
config.ssh.forward_agent = false
|
||||||
|
|
|
@ -3,24 +3,44 @@ module Vagrant
|
||||||
class SSHConfig < Base
|
class SSHConfig < Base
|
||||||
attr_accessor :username
|
attr_accessor :username
|
||||||
attr_accessor :host
|
attr_accessor :host
|
||||||
attr_accessor :forwarded_port_key
|
attr_accessor :port
|
||||||
attr_accessor :forwarded_port_destination
|
attr_accessor :guest_port
|
||||||
attr_accessor :max_tries
|
attr_accessor :max_tries
|
||||||
attr_accessor :timeout
|
attr_accessor :timeout
|
||||||
attr_accessor :private_key_path
|
attr_accessor :private_key_path
|
||||||
attr_accessor :forward_agent
|
attr_accessor :forward_agent
|
||||||
attr_accessor :forward_x11
|
attr_accessor :forward_x11
|
||||||
attr_accessor :shell
|
attr_accessor :shell
|
||||||
attr_accessor :port
|
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@shell = "bash"
|
@shell = "bash"
|
||||||
@port = nil
|
@port = nil
|
||||||
@forward_agent = false
|
@guest_port = nil
|
||||||
@forward_x11 = false
|
@forward_agent = false
|
||||||
|
@forward_x11 = false
|
||||||
@private_key_path = nil
|
@private_key_path = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def forwarded_port_key=(value)
|
||||||
|
raise Errors::DeprecationError, :message => <<-MESSAGE
|
||||||
|
`config.ssh.forwarded_port_key` is now gone. You must now use
|
||||||
|
`config.ssh.guest_port` which is expected to be the port on the
|
||||||
|
guest that SSH is listening on. Vagrant will automatically scan
|
||||||
|
the forwarded ports to look for a forwarded port from this port
|
||||||
|
and use it.
|
||||||
|
MESSAGE
|
||||||
|
end
|
||||||
|
|
||||||
|
def forwarded_port_destination=(value)
|
||||||
|
raise Errors::DeprecationError, :message => <<-MESSAGE
|
||||||
|
`config.ssh.forwarded_port_destination` is now gone. You must now use
|
||||||
|
`config.ssh.guest_port` which is expected to be the port on the
|
||||||
|
guest that SSH is listening on. Vagrant will automatically scan
|
||||||
|
the forwarded ports to look for a forwarded port from this port
|
||||||
|
and use it.
|
||||||
|
MESSAGE
|
||||||
|
end
|
||||||
|
|
||||||
def validate(env, errors)
|
def validate(env, errors)
|
||||||
[:username, :host, :forwarded_port_key, :max_tries, :timeout].each do |field|
|
[:username, :host, :forwarded_port_key, :max_tries, :timeout].each do |field|
|
||||||
errors.add(I18n.t("vagrant.config.common.error_empty", :field => field)) if !instance_variable_get("@#{field}".to_sym)
|
errors.add(I18n.t("vagrant.config.common.error_empty", :field => field)) if !instance_variable_get("@#{field}".to_sym)
|
||||||
|
|
|
@ -434,6 +434,16 @@ module Vagrant
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# This reads the SSH port from the VM.
|
||||||
|
def ssh_port(expected_port)
|
||||||
|
# Look for the forwarded port only by comparing the guest port
|
||||||
|
read_forwarded_ports.each do |_, _, hostport, guestport|
|
||||||
|
return hostport if guestport == expected_port
|
||||||
|
end
|
||||||
|
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
# Starts the virtual machine in the given mode.
|
# Starts the virtual machine in the given mode.
|
||||||
#
|
#
|
||||||
# @param [String] mode Mode to boot the VM: either "headless" or "gui"
|
# @param [String] mode Mode to boot the VM: either "headless" or "gui"
|
||||||
|
|
|
@ -188,26 +188,12 @@ module Vagrant
|
||||||
return @vm.config.ssh.port if @vm.config.ssh.port
|
return @vm.config.ssh.port if @vm.config.ssh.port
|
||||||
|
|
||||||
# Check if we have an SSH forwarded port
|
# Check if we have an SSH forwarded port
|
||||||
pnum_by_name = nil
|
|
||||||
pnum_by_destination = nil
|
|
||||||
@vm.driver.read_forwarded_ports.each do |_, name, hostport, guestport|
|
@vm.driver.read_forwarded_ports.each do |_, name, hostport, guestport|
|
||||||
# Record the forwarded port if we find it by name
|
if guestport == @vm.config.ssh.guest_port
|
||||||
if name == @vm.config.ssh.forwarded_port_key
|
return hostport
|
||||||
pnum_by_name = hostport
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if guestport == @vm.config.ssh.forwarded_port_destination
|
|
||||||
pnum_by_destination = hostport
|
|
||||||
end
|
|
||||||
|
|
||||||
# pnum_by_name is what we're looking for here, so break early
|
|
||||||
# if we have it.
|
|
||||||
break if pnum_by_name
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return pnum_by_name if pnum_by_name
|
|
||||||
return pnum_by_destination if pnum_by_destination
|
|
||||||
|
|
||||||
# This should NEVER happen.
|
# This should NEVER happen.
|
||||||
raise Errors::SSHPortNotDetected
|
raise Errors::SSHPortNotDetected
|
||||||
end
|
end
|
||||||
|
|
|
@ -81,7 +81,7 @@ module Vagrant
|
||||||
def ssh_info
|
def ssh_info
|
||||||
results = {
|
results = {
|
||||||
:host => config.ssh.host,
|
:host => config.ssh.host,
|
||||||
:port => config.ssh.port || driver.ssh_port,
|
:port => config.ssh.port || driver.ssh_port(config.ssh.guest_port),
|
||||||
:username => config.ssh.username,
|
:username => config.ssh.username,
|
||||||
:forward_agent => config.ssh.forward_agent,
|
:forward_agent => config.ssh.forward_agent,
|
||||||
:forward_x11 => config.ssh.forward_x11
|
:forward_x11 => config.ssh.forward_x11
|
||||||
|
|
Loading…
Reference in New Issue