22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/vagrant/action/vm/network.rb', line 22
def call(env)
@env = env
@logger.debug("Determining adapters and networks...")
adapters = []
networks = []
env[:vm].config.vm.networks.each do |type, args|
config = send("#{type}_config", args)
adapter = send("#{type}_adapter", config)
adapters << adapter
network = send("#{type}_network_config", config)
network[:_auto_config] = true if config[:auto_config]
networks << network
end
if !adapters.empty?
@logger.debug("Assigning adapter locations...")
assign_adapter_locations(adapters)
verify_adapters(adapters)
@logger.info("Enabling adapters...")
env[:ui].info I18n.t("vagrant.actions.vm.network.preparing")
env[:vm].driver.enable_adapters(adapters)
end
@app.call(env)
if !adapters.empty? && !networks.empty?
assign_interface_numbers(networks, adapters)
networks_to_configure = networks.select { |n| n[:_auto_config] }
env[:ui].info I18n.t("vagrant.actions.vm.network.configuring")
env[:vm].guest.configure_networks(networks_to_configure)
end
end
|