providers/docker: clean up forwarded port handling
This commit is contained in:
parent
6ea6ad3e08
commit
4dabfc1aff
|
@ -39,7 +39,6 @@ module VagrantPlugins
|
||||||
b2.use SyncedFolderCleanup
|
b2.use SyncedFolderCleanup
|
||||||
b2.use SyncedFolders
|
b2.use SyncedFolders
|
||||||
b2.use PrepareNFSSettings
|
b2.use PrepareNFSSettings
|
||||||
b2.use ForwardPorts
|
|
||||||
# This will actually create and start, but that's fine
|
# This will actually create and start, but that's fine
|
||||||
b2.use Create
|
b2.use Create
|
||||||
b2.use action_boot
|
b2.use action_boot
|
||||||
|
@ -224,7 +223,6 @@ module VagrantPlugins
|
||||||
action_root = Pathname.new(File.expand_path("../action", __FILE__))
|
action_root = Pathname.new(File.expand_path("../action", __FILE__))
|
||||||
autoload :Create, action_root.join("create")
|
autoload :Create, action_root.join("create")
|
||||||
autoload :Destroy, action_root.join("destroy")
|
autoload :Destroy, action_root.join("destroy")
|
||||||
autoload :ForwardPorts, action_root.join("forward_ports")
|
|
||||||
autoload :HasSSH, action_root.join("has_ssh")
|
autoload :HasSSH, action_root.join("has_ssh")
|
||||||
autoload :HostMachine, action_root.join("host_machine")
|
autoload :HostMachine, action_root.join("host_machine")
|
||||||
autoload :HostMachineRequired, action_root.join("host_machine_required")
|
autoload :HostMachineRequired, action_root.join("host_machine_required")
|
||||||
|
|
|
@ -26,6 +26,9 @@ module VagrantPlugins
|
||||||
params[:volumes].each do |volume|
|
params[:volumes].each do |volume|
|
||||||
env[:ui].detail("Volume: #{volume}")
|
env[:ui].detail("Volume: #{volume}")
|
||||||
end
|
end
|
||||||
|
params[:ports].each do |pair|
|
||||||
|
env[:ui].detail(" Port: #{pair}")
|
||||||
|
end
|
||||||
|
|
||||||
cid = @driver.create(params)
|
cid = @driver.create(params)
|
||||||
end
|
end
|
||||||
|
@ -54,7 +57,14 @@ module VagrantPlugins
|
||||||
end
|
end
|
||||||
|
|
||||||
def forwarded_ports
|
def forwarded_ports
|
||||||
@env[:forwarded_ports].map do |fp|
|
mappings = {}
|
||||||
|
@machine.config.vm.networks.each do |type, options|
|
||||||
|
if type == :forwarded_port && options[:id] != 'ssh'
|
||||||
|
mappings[options[:host]] = options
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
mappings.values.map do |fp|
|
||||||
# TODO: Support for the protocol argument
|
# TODO: Support for the protocol argument
|
||||||
"#{fp[:host]}:#{fp[:guest]}"
|
"#{fp[:host]}:#{fp[:guest]}"
|
||||||
end.compact
|
end.compact
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
module VagrantPlugins
|
|
||||||
module DockerProvider
|
|
||||||
module Action
|
|
||||||
class ForwardPorts
|
|
||||||
def initialize(app, env)
|
|
||||||
@app = app
|
|
||||||
end
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def compile_forwarded_ports(config)
|
|
||||||
mappings = {}
|
|
||||||
|
|
||||||
config.vm.networks.each do |type, options|
|
|
||||||
if type == :forwarded_port && options[:id] != 'ssh'
|
|
||||||
mappings[options[:host]] = options
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
mappings.values
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue