Class: VagrantPlugins::DockerProvider::Action::ForwardPorts

Inherits:
Object
  • Object
show all
Defined in:
lib/docker-provider/action/forward_ports.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ ForwardPorts

Returns a new instance of ForwardPorts.



5
6
7
# File 'lib/docker-provider/action/forward_ports.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
# File 'lib/docker-provider/action/forward_ports.rb', line 9

def call(env)
  @env = env

  env[:forwarded_ports] = compile_forwarded_ports(env[:machine].config)

  if env[:forwarded_ports].any?
    env[:ui].info I18n.t("vagrant.actions.vm.forward_ports.forwarding")
    inform_forwarded_ports(env[:forwarded_ports])
  end

  # FIXME: Check whether the container has already been created with
  #        different exposed ports and let the user know about it

  @app.call env
end

#inform_forwarded_ports(ports) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/docker-provider/action/forward_ports.rb', line 25

def inform_forwarded_ports(ports)
  ports.each do |fp|
    message_attributes = {
      :adapter    => 'eth0',
      :guest_port => fp[:guest],
      :host_port  => fp[:host]
    }

    @env[:ui].info(I18n.t("vagrant.actions.vm.forward_ports.forwarding_entry",
                          message_attributes))
  end
end