Class: VagrantPlugins::QEMU::Action::PrepareForwardedPortCollisionParams

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-qemu/action/prepare_forwarded_port_collision_params.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ PrepareForwardedPortCollisionParams

Returns a new instance of PrepareForwardedPortCollisionParams.



5
6
7
# File 'lib/vagrant-qemu/action/prepare_forwarded_port_collision_params.rb', line 5

def initialize(app, env)
@app = app
end

Instance Method Details

#call(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/vagrant-qemu/action/prepare_forwarded_port_collision_params.rb', line 9

def call(env)
machine = env[:machine]

# TODO: not supported
other_used_ports = {}
env[:port_collision_extra_in_use] = other_used_ports

# Build the remap for any existing collision detections
remap = {}
env[:port_collision_remap] = remap

has_ssh_forward = false
machine.config.vm.networks.each do |type, options|
  next if type != :forwarded_port

  # update ssh.host to ssh_port
  if options[:id] == "ssh"
    options[:host] = machine.provider_config.ssh_port
    options[:auto_correct] = machine.provider_config.ssh_auto_correct
    has_ssh_forward = true
    break
  end
end

if !has_ssh_forward
  machine.config.vm.network :forwarded_port,
    :guest => 22, 
    :host => machine.provider_config.ssh_port, 
    :host_ip => "127.0.0.1", 
    :id => "ssh", 
    :auto_correct => machine.provider_config.ssh_auto_correct,
    :protocol => "tcp"
end

@app.call(env)
end