From 2f5e15da558adee620225263fdcff8d10f1c1457 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Wed, 10 May 2017 12:26:57 -0700 Subject: [PATCH] Fetch first network device and pass to template for rendering --- plugins/guests/debian/cap/configure_networks.rb | 3 ++- templates/guests/debian/network_dhcp.erb | 4 ++-- test/unit/templates/guests/debian/network_dhcp_test.rb | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/guests/debian/cap/configure_networks.rb b/plugins/guests/debian/cap/configure_networks.rb index 263fe924a..99d6681de 100644 --- a/plugins/guests/debian/cap/configure_networks.rb +++ b/plugins/guests/debian/cap/configure_networks.rb @@ -15,11 +15,12 @@ module VagrantPlugins entries = [] interfaces = machine.guest.capability(:network_interfaces) + root_device = interfaces.first networks.each do |network| network[:device] = interfaces[network[:interface]] entry = TemplateRenderer.render("guests/debian/network_#{network[:type]}", - options: network, + options: network.merge(:root_device => root_device), ) entries << entry end diff --git a/templates/guests/debian/network_dhcp.erb b/templates/guests/debian/network_dhcp.erb index fb3d47b54..b518f20e8 100644 --- a/templates/guests/debian/network_dhcp.erb +++ b/templates/guests/debian/network_dhcp.erb @@ -6,8 +6,8 @@ iface <%= options[:device] %> inet dhcp post-up route del default dev $IFACE || true <% else %> # We need to disable eth0, see GH-2648 - post-up route del default dev $IFACE || true + post-up route del default dev <%= options[:root_device] %> || true post-up dhclient $IFACE - pre-down route add default dev $IFACE + pre-down route add default dev <%= options[:root_device] %> <% end %> #VAGRANT-END diff --git a/test/unit/templates/guests/debian/network_dhcp_test.rb b/test/unit/templates/guests/debian/network_dhcp_test.rb index f30bbd950..daffdcea3 100644 --- a/test/unit/templates/guests/debian/network_dhcp_test.rb +++ b/test/unit/templates/guests/debian/network_dhcp_test.rb @@ -23,6 +23,7 @@ describe "templates/guests/debian/network_dhcp" do it "renders the template" do result = Vagrant::Util::TemplateRenderer.render(template, options: { device: "eth1", + root_device: "eth0", use_dhcp_assigned_default_route: true, }) expect(result).to eq <<-EOH.gsub(/^ {8}/, "") @@ -31,9 +32,9 @@ describe "templates/guests/debian/network_dhcp" do auto eth1 iface eth1 inet dhcp # We need to disable eth0, see GH-2648 - post-up route del default dev $IFACE || true + post-up route del default dev eth0 || true post-up dhclient $IFACE - pre-down route add default dev $IFACE + pre-down route add default dev eth0 #VAGRANT-END EOH end