From b24d4252c57b9f2098bf7c22db2d9ea207f2c3ed Mon Sep 17 00:00:00 2001 From: sophia Date: Wed, 10 Feb 2021 10:41:57 -0600 Subject: [PATCH] Check if interface exists before shutting it down --- plugins/guests/alpine/cap/configure_networks.rb | 2 +- .../unit/plugins/guests/alpine/cap/configure_networks_test.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/guests/alpine/cap/configure_networks.rb b/plugins/guests/alpine/cap/configure_networks.rb index 361e64610..83b72e7d9 100644 --- a/plugins/guests/alpine/cap/configure_networks.rb +++ b/plugins/guests/alpine/cap/configure_networks.rb @@ -45,7 +45,7 @@ module VagrantPlugins # each specifically, we avoid reconfiguring eth0 (the NAT interface) so # SSH never dies. interfaces.each do |interface| - comm.sudo("/sbin/ifdown eth#{interface} 2> /dev/null") + comm.sudo("if [[ $(/sbin/ip a show eth#{interface} | grep UP) ]]; then /sbin/ifdown eth#{interface} 2> /dev/null; fi") comm.sudo("/sbin/ip addr flush dev eth#{interface} 2> /dev/null") end diff --git a/test/unit/plugins/guests/alpine/cap/configure_networks_test.rb b/test/unit/plugins/guests/alpine/cap/configure_networks_test.rb index 31a361beb..56ee605ff 100644 --- a/test/unit/plugins/guests/alpine/cap/configure_networks_test.rb +++ b/test/unit/plugins/guests/alpine/cap/configure_networks_test.rb @@ -23,9 +23,9 @@ describe 'VagrantPlugins::GuestAlpine::Cap::ConfigureNetworks' do expect(communicator).to receive(:sudo).with("sed -e '/^#VAGRANT-BEGIN/,$ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces.pre") expect(communicator).to receive(:sudo).with("sed -ne '/^#VAGRANT-END/,$ p' /etc/network/interfaces | tail -n +2 > /tmp/vagrant-network-interfaces.post") - expect(communicator).to receive(:sudo).with('/sbin/ifdown eth0 2> /dev/null') + expect(communicator).to receive(:sudo).with(/\/sbin\/ifdown eth0/) expect(communicator).to receive(:sudo).with('/sbin/ip addr flush dev eth0 2> /dev/null') - expect(communicator).to receive(:sudo).with('/sbin/ifdown eth1 2> /dev/null') + expect(communicator).to receive(:sudo).with(/\/sbin\/ifdown eth1/) expect(communicator).to receive(:sudo).with('/sbin/ip addr flush dev eth1 2> /dev/null') expect(communicator).to receive(:sudo).with('cat /tmp/vagrant-network-interfaces.pre /tmp/vagrant-network-entry /tmp/vagrant-network-interfaces.post > /etc/network/interfaces') expect(communicator).to receive(:sudo).with('rm -f /tmp/vagrant-network-interfaces.pre /tmp/vagrant-network-entry /tmp/vagrant-network-interfaces.post')