#14 Backport fix to F29
Merged 5 years ago by pvalena. Opened 5 years ago by pvalena.
rpms/ pvalena/vagrant rebase-f29  into  f29

@@ -0,0 +1,594 @@ 

+ From 80006251f422a8d534ff9bafa0e0c45d9c98143c Mon Sep 17 00:00:00 2001

+ From: Joe Doss <jdoss@kennasecurity.com>

+ Date: Mon, 17 Sep 2018 13:30:55 -0500

+ Subject: [PATCH 01/10] Add in logic to restart NetworkManager if it is

+  enabled.

+ 

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 8 +++++++-

+  1 file changed, 7 insertions(+), 1 deletion(-)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index 55fcdc4b48..8f32650035 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -29,7 +29,13 @@ def self.change_host_name(machine, name)

+                }

+  

+                # Restart network

+ -              service network restart

+ +              if (test -f /etc/init.d/network && /etc/init.d/network status &> /dev/null ); then

+ +                service network restart

+ +              elif (test -f /usr/lib/systemd/system/NetworkManager.service && systemctl is-enabled NetworkManager.service &> /dev/null ); then

+ +                systemctl restart NetworkManager.service

+ +              else

+ +                printf "Could not restart the network to set the new hostname!\n"

+ +              fi

+              EOH

+            end

+          end

+ 

+ From 94954739b53ee4c6741a35c366c2fe5c9853e0ed Mon Sep 17 00:00:00 2001

+ From: Joe Doss <jdoss@kennasecurity.com>

+ Date: Mon, 17 Sep 2018 14:30:57 -0500

+ Subject: [PATCH 02/10] Simplified if statements.

+ 

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 4 ++--

+  1 file changed, 2 insertions(+), 2 deletions(-)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index 8f32650035..e9c0b1d80e 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -29,9 +29,9 @@ def self.change_host_name(machine, name)

+                }

+  

+                # Restart network

+ -              if (test -f /etc/init.d/network && /etc/init.d/network status &> /dev/null ); then

+ +              if test -f /etc/init.d/network; then

+                  service network restart

+ -              elif (test -f /usr/lib/systemd/system/NetworkManager.service && systemctl is-enabled NetworkManager.service &> /dev/null ); then

+ +              elif systemctl -q is-enabled NetworkManager.service; then

+                  systemctl restart NetworkManager.service

+                else

+                  printf "Could not restart the network to set the new hostname!\n"

+ 

+ From c14a4a09f723230682c5ef5f9dc53662e2968b92 Mon Sep 17 00:00:00 2001

+ From: Joe Doss <jdoss@kennasecurity.com>

+ Date: Mon, 17 Sep 2018 14:56:06 -0500

+ Subject: [PATCH 03/10] Switch if statements, check for systemctl, and switch

+  to is-active.

+ 

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 6 +++---

+  1 file changed, 3 insertions(+), 3 deletions(-)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index e9c0b1d80e..70bd496943 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -29,10 +29,10 @@ def self.change_host_name(machine, name)

+                }

+  

+                # Restart network

+ -              if test -f /etc/init.d/network; then

+ -                service network restart

+ -              elif systemctl -q is-enabled NetworkManager.service; then

+ +              if (test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service); then

+                  systemctl restart NetworkManager.service

+ +              elif test -f /etc/init.d/network; then

+ +                service network restart

+                else

+                  printf "Could not restart the network to set the new hostname!\n"

+                fi

+ 

+ From 19aa9578c797c99a8632955a703490d5e6b50a26 Mon Sep 17 00:00:00 2001

+ From: Joe Doss <jdoss@kennasecurity.com>

+ Date: Tue, 18 Sep 2018 13:15:26 -0500

+ Subject: [PATCH 04/10] Exit 1 if we cannot set the hostname.

+ 

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 1 +

+  1 file changed, 1 insertion(+)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index 70bd496943..ae02460156 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -35,6 +35,7 @@ def self.change_host_name(machine, name)

+                  service network restart

+                else

+                  printf "Could not restart the network to set the new hostname!\n"

+ +                exit 1

+                fi

+              EOH

+            end

+ 

+ From 86ab4533b180009ed476026374110fc0bd79f522 Mon Sep 17 00:00:00 2001

+ From: Joe Doss <jdoss@kennasecurity.com>

+ Date: Tue, 18 Sep 2018 13:16:12 -0500

+ Subject: [PATCH 05/10] Fix the test to check for systemctl restart

+  NetworkManager.service too.

+ 

+ ---

+  test/unit/plugins/guests/redhat/cap/change_host_name_test.rb | 2 +-

+  1 file changed, 1 insertion(+), 1 deletion(-)

+ 

+ diff --git a/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb b/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ index 7662935458..10f43a3593 100644

+ --- a/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ +++ b/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ @@ -31,7 +31,7 @@

+        expect(comm.received_commands[1]).to match(/\/etc\/sysconfig\/network-scripts\/ifcfg/)

+        expect(comm.received_commands[1]).to match(/hostnamectl set-hostname --static '#{name}'/)

+        expect(comm.received_commands[1]).to match(/hostnamectl set-hostname --transient '#{name}'/)

+ -      expect(comm.received_commands[1]).to match(/service network restart/)

+ +      expect(comm.received_commands[1]).to match(/service network restart|systemctl restart NetworkManager.service/)

+      end

+  

+      it "does not change the hostname if already set" do

+ 

+ From a12b09b098ea87eec815e166d0e1395f6f47f937 Mon Sep 17 00:00:00 2001

+ From: shotop <samuel.j.hotop@gmail.com>

+ Date: Thu, 20 Sep 2018 14:21:40 -0500

+ Subject: [PATCH 06/10] add specs around network restart logic

+ 

+ ---

+  .../redhat/cap/change_host_name_test.rb       | 27 +++++++++++++++++++

+  1 file changed, 27 insertions(+)

+ 

+ diff --git a/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb b/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ index 10f43a3593..b85802e947 100644

+ --- a/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ +++ b/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ @@ -39,5 +39,32 @@

+        cap.change_host_name(machine, name)

+        expect(comm.received_commands.size).to eq(1)

+      end

+ +

+ +    context "restarts the network" do

+ +      it "uses systemctl and NetworkManager.service" do

+ +        comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ +        comm.stub_command("test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service", exit_code: 0)

+ +        cap.change_host_name(machine, name)

+ +        expect(comm.received_commands[1]).to match(/systemctl restart NetworkManager.service/)

+ +      end

+ +

+ +      it "uses the service command" do

+ +        comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ +        comm.stub_command("test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service", exit_code: 1)

+ +        comm.stub_command("test -f /etc/init.d/network", exit_code: 0)

+ +        cap.change_host_name(machine, name)

+ +        expect(comm.received_commands[1]).to match(/service network restart/)

+ +      end

+ +    end

+ +

+ +    context "cannot restart the network" do

+ +      it "prints cannot restart message" do

+ +        comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ +        comm.stub_command("test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service", exit_code: 1)

+ +        comm.stub_command("test -f /etc/init.d/network", exit_code: 1)

+ +        cap.change_host_name(machine, name)

+ +        expect(comm.received_commands[1]).to match(/printf "Could not restart the network to set the new hostname!/)

+ +      end

+ +    end

+    end

+  end

+ 

+ From fb5fc0e657a10ee1eaf046980827cc1802c4d0f9 Mon Sep 17 00:00:00 2001

+ From: Chris Roberts <croberts@hashicorp.com>

+ Date: Thu, 20 Sep 2018 16:42:39 -0700

+ Subject: [PATCH 07/10] Update guest inspection utility module

+ 

+ Use sudo option for communicator test command instead of inline sudo

+ to properly use configured sudo value. Use command for checking

+ availability of hostnamectl. Use is-active for determining if a

+ service is being actively managed by systemd.

+ ---

+  lib/vagrant/util/guest_inspection.rb | 19 ++++++++++++++++---

+  1 file changed, 16 insertions(+), 3 deletions(-)

+ 

+ diff --git a/lib/vagrant/util/guest_inspection.rb b/lib/vagrant/util/guest_inspection.rb

+ index 86ab1dc69e..5a1902d8da 100644

+ --- a/lib/vagrant/util/guest_inspection.rb

+ +++ b/lib/vagrant/util/guest_inspection.rb

+ @@ -17,22 +17,34 @@ module Linux

+  

+          # systemd-networkd.service is in use

+          #

+ +        # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @return [Boolean]

+          def systemd_networkd?(comm)

+ -          comm.test("sudo systemctl status systemd-networkd.service")

+ +          comm.test("systemctl -q is-active systemd-networkd.service", sudo: true)

+ +        end

+ +

+ +        # Check if given service is controlled by systemd

+ +        #

+ +        # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+ +        # @param [String] service_name Name of the service to check

+ +        # @return [Boolean]

+ +        def systemd_controlled?(comm, service_name)

+ +          comm.test("systemctl -q is-active #{service_name}", sudo: true)

+          end

+  

+          # systemd hostname set is via hostnamectl

+          #

+ +        # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @return [Boolean]

+          def hostnamectl?(comm)

+ -          comm.test("hostnamectl")

+ +          comm.test("command -v hostnamectl")

+          end

+  

+          ## netplan helpers

+  

+          # netplan is installed

+          #

+ +        # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @return [Boolean]

+          def netplan?(comm)

+            comm.test("netplan -h")

+ @@ -42,6 +54,7 @@ def netplan?(comm)

+  

+          # nmcli is installed

+          #

+ +        # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @return [Boolean]

+          def nmcli?(comm)

+            comm.test("nmcli")

+ @@ -49,7 +62,7 @@ def nmcli?(comm)

+  

+          # NetworkManager currently controls device

+          #

+ -        # @param comm [Communicator]

+ +        # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @param device_name [String]

+          # @return [Boolean]

+          def nm_controlled?(comm, device_name)

+ 

+ From ff021fcab404c95e52566bfca4207da9c0101e01 Mon Sep 17 00:00:00 2001

+ From: Chris Roberts <croberts@hashicorp.com>

+ Date: Thu, 20 Sep 2018 16:44:08 -0700

+ Subject: [PATCH 08/10] Update redhat change host name capability to support

+  systemd

+ 

+ Update capability to use guest inspection module for determining

+ correct actions to execute. When systemd is in use restart the

+ correct active service, either NetworkManager or networkd. Default

+ to using the original service restart when systemd service is not

+ found.

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 41 ++++++++++---------

+  1 file changed, 21 insertions(+), 20 deletions(-)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index ae02460156..5da660df05 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -2,6 +2,9 @@ module VagrantPlugins

+    module GuestRedHat

+      module Cap

+        class ChangeHostName

+ +

+ +        extend Vagrant::Util::GuestInspection

+ +

+          def self.change_host_name(machine, name)

+            comm = machine.communicate

+  

+ @@ -10,34 +13,32 @@ def self.change_host_name(machine, name)

+              comm.sudo <<-EOH.gsub(/^ {14}/, '')

+                # Update sysconfig

+                sed -i 's/\\(HOSTNAME=\\).*/\\1#{name}/' /etc/sysconfig/network

+ -

+                # Update DNS

+                sed -i 's/\\(DHCP_HOSTNAME=\\).*/\\1\"#{basename}\"/' /etc/sysconfig/network-scripts/ifcfg-*

+ -

+                # Set the hostname - use hostnamectl if available

+                echo '#{name}' > /etc/hostname

+ -              if command -v hostnamectl; then

+ -                hostnamectl set-hostname --static '#{name}'

+ -                hostnamectl set-hostname --transient '#{name}'

+ -              else

+ -                hostname -F /etc/hostname

+ -              fi

+ -

+ -              # Prepend ourselves to /etc/hosts

+                grep -w '#{name}' /etc/hosts || {

+                  sed -i'' '1i 127.0.0.1\\t#{name}\\t#{basename}' /etc/hosts

+                }

+ -

+ -              # Restart network

+ -              if (test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service); then

+ -                systemctl restart NetworkManager.service

+ -              elif test -f /etc/init.d/network; then

+ -                service network restart

+ -              else

+ -                printf "Could not restart the network to set the new hostname!\n"

+ -                exit 1

+ -              fi

+              EOH

+ +

+ +            if hostnamectl?(comm)

+ +              comm.sudo("hostnamectl set-hostname --static '#{name}' ; " \

+ +                "hostnamectl set-hostname --transient '#{name}'")

+ +            else

+ +              comm.sudo("hostname -F /etc/hostname")

+ +            end

+ +

+ +            restart_command = "service network restart"

+ +

+ +            if systemd?

+ +              if systemd_networkd?(comm)

+ +                restart_command = "systemctl restart systemd-networkd.service"

+ +              elsif systemd_controlled?(comm, "NetworkManager.service")

+ +                restart_command = "systemctl restart NetworkManager.service"

+ +              end

+ +            end

+ +            comm.sudo(restart_command)

+            end

+          end

+        end

+ 

+ From bc217d5e577457df5ac4ecdfffa17fd0a8c85b18 Mon Sep 17 00:00:00 2001

+ From: Chris Roberts <croberts@hashicorp.com>

+ Date: Thu, 20 Sep 2018 16:46:45 -0700

+ Subject: [PATCH 09/10] Update redhat change host name capability tests for

+  systemd/NetworkManger updates

+ 

+ ---

+  .../redhat/cap/change_host_name_test.rb       | 95 +++++++++++++------

+  1 file changed, 68 insertions(+), 27 deletions(-)

+ 

+ diff --git a/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb b/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ index b85802e947..8d0c9ebd4b 100644

+ --- a/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ +++ b/test/unit/plugins/guests/redhat/cap/change_host_name_test.rb

+ @@ -20,50 +20,91 @@

+  

+    describe ".change_host_name" do

+      let(:cap) { caps.get(:change_host_name) }

+ -

+      let(:name) { "banana-rama.example.com" }

+ +    let(:hostname_changed) { true }

+ +    let(:systemd) { true }

+ +    let(:hostnamectl) { true }

+ +    let(:networkd) { true }

+ +    let(:network_manager) { false }

+  

+ -    it "sets the hostname" do

+ -      comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ +    before do

+ +      comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: hostname_changed ? 1 : 0)

+ +      allow(cap).to receive(:systemd?).and_return(systemd)

+ +      allow(cap).to receive(:hostnamectl?).and_return(hostnamectl)

+ +      allow(cap).to receive(:systemd_networkd?).and_return(networkd)

+ +      allow(cap).to receive(:systemd_controlled?).with(anything, /NetworkManager/).and_return(network_manager)

+ +    end

+  

+ +    it "sets the hostname" do

+        cap.change_host_name(machine, name)

+        expect(comm.received_commands[1]).to match(/\/etc\/sysconfig\/network/)

+        expect(comm.received_commands[1]).to match(/\/etc\/sysconfig\/network-scripts\/ifcfg/)

+ -      expect(comm.received_commands[1]).to match(/hostnamectl set-hostname --static '#{name}'/)

+ -      expect(comm.received_commands[1]).to match(/hostnamectl set-hostname --transient '#{name}'/)

+ -      expect(comm.received_commands[1]).to match(/service network restart|systemctl restart NetworkManager.service/)

+      end

+  

+ -    it "does not change the hostname if already set" do

+ -      comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 0)

+ -      cap.change_host_name(machine, name)

+ -      expect(comm.received_commands.size).to eq(1)

+ -    end

+ +    context "when hostnamectl is in use" do

+ +      let(:hostnamectl) { true }

+  

+ -    context "restarts the network" do

+ -      it "uses systemctl and NetworkManager.service" do

+ -        comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ -        comm.stub_command("test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service", exit_code: 0)

+ +      it "sets hostname with hostnamectl" do

+          cap.change_host_name(machine, name)

+ -        expect(comm.received_commands[1]).to match(/systemctl restart NetworkManager.service/)

+ +        expect(comm.received_commands[2]).to match(/hostnamectl/)

+        end

+ +    end

+ +

+ +    context "when hostnamectl is not in use" do

+ +      let(:hostnamectl) { false }

+  

+ -      it "uses the service command" do

+ -        comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ -        comm.stub_command("test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service", exit_code: 1)

+ -        comm.stub_command("test -f /etc/init.d/network", exit_code: 0)

+ +      it "sets hostname with hostname command" do

+          cap.change_host_name(machine, name)

+ -        expect(comm.received_commands[1]).to match(/service network restart/)

+ +        expect(comm.received_commands[2]).to match(/hostname -F/)

+        end

+      end

+  

+ -    context "cannot restart the network" do

+ -      it "prints cannot restart message" do

+ -        comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1)

+ -        comm.stub_command("test -f /usr/bin/systemctl && systemctl -q is-active NetworkManager.service", exit_code: 1)

+ -        comm.stub_command("test -f /etc/init.d/network", exit_code: 1)

+ +    context "when host name is already set" do

+ +      let(:hostname_changed) { false }

+ +

+ +      it "does not change the hostname" do

+          cap.change_host_name(machine, name)

+ -        expect(comm.received_commands[1]).to match(/printf "Could not restart the network to set the new hostname!/)

+ +        expect(comm.received_commands.size).to eq(1)

+ +      end

+ +    end

+ +

+ +    context "restarts the network" do

+ +      context "when networkd is in use" do

+ +        let(:networkd) { true }

+ +

+ +        it "restarts networkd with systemctl" do

+ +          cap.change_host_name(machine, name)

+ +          expect(comm.received_commands[3]).to match(/systemctl restart systemd-networkd/)

+ +        end

+ +      end

+ +

+ +      context "when NetworkManager is in use" do

+ +        let(:networkd) { false }

+ +        let(:network_manager) { true }

+ +

+ +        it "restarts NetworkManager with systemctl" do

+ +          cap.change_host_name(machine, name)

+ +          expect(comm.received_commands[3]).to match(/systemctl restart NetworkManager/)

+ +        end

+ +      end

+ +

+ +      context "when networkd and NetworkManager are not in use" do

+ +        let(:networkd) { false }

+ +        let(:network_manager) { false }

+ +

+ +        it "restarts the network using service" do

+ +          cap.change_host_name(machine, name)

+ +          expect(comm.received_commands[3]).to match(/service network restart/)

+ +        end

+ +      end

+ +

+ +      context "when systemd is not in use" do

+ +        let(:systemd) { false }

+ +

+ +        it "restarts the network using service" do

+ +          cap.change_host_name(machine, name)

+ +          expect(comm.received_commands[3]).to match(/service network restart/)

+ +        end

+        end

+      end

+    end

+ 

+ From 8fd05fe3c1b773777f08ca50dd651cbaf33838d3 Mon Sep 17 00:00:00 2001

+ From: Chris Roberts <croberts@hashicorp.com>

+ Date: Fri, 21 Sep 2018 09:19:40 -0700

+ Subject: [PATCH 10/10] Use `command -v` for checks in all inspection helpers.

+  Fix stubs in tests.

+ 

+ ---

+  lib/vagrant/util/guest_inspection.rb               |  4 ++--

+  .../guests/debian/cap/configure_networks_test.rb   | 14 +++++++-------

+  2 files changed, 9 insertions(+), 9 deletions(-)

+ 

+ diff --git a/lib/vagrant/util/guest_inspection.rb b/lib/vagrant/util/guest_inspection.rb

+ index 5a1902d8da..cd0a96d3ef 100644

+ --- a/lib/vagrant/util/guest_inspection.rb

+ +++ b/lib/vagrant/util/guest_inspection.rb

+ @@ -47,7 +47,7 @@ def hostnamectl?(comm)

+          # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @return [Boolean]

+          def netplan?(comm)

+ -          comm.test("netplan -h")

+ +          comm.test("command -v netplan")

+          end

+  

+          ## nmcli helpers

+ --- a/lib/vagrant/util/guest_inspection.rb

+ +++ b/lib/vagrant/util/guest_inspection.rb

+ @@ -57,7 +57,7 @@ def netplan?(comm)

+          # @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator

+          # @return [Boolean]

+          def nmcli?(comm)

+ -          comm.test("nmcli")

+ +          comm.test("command -v nmcli")

+          end

+  

+          # NetworkManager currently controls device

+ diff --git a/test/unit/plugins/guests/debian/cap/configure_networks_test.rb b/test/unit/plugins/guests/debian/cap/configure_networks_test.rb

+ index b4691d0fd4..d3a523c95b 100644

+ --- a/test/unit/plugins/guests/debian/cap/configure_networks_test.rb

+ +++ b/test/unit/plugins/guests/debian/cap/configure_networks_test.rb

+ @@ -67,9 +67,9 @@

+      before do

+        allow(comm).to receive(:test).with("nmcli d show eth1").and_return(false)

+        allow(comm).to receive(:test).with("nmcli d show eth2").and_return(false)

+ -      allow(comm).to receive(:test).with("ps -o comm= 1 | grep systemd").and_return(false)

+ -      allow(comm).to receive(:test).with("sudo systemctl status systemd-networkd.service").and_return(false)

+ -      allow(comm).to receive(:test).with("netplan -h").and_return(false)

+ +      allow(comm).to receive(:test).with("ps -o comm= 1 | grep systemd").and_return(false)

+ +      allow(comm).to receive(:test).with("systemctl -q is-active systemd-networkd.service", anything).and_return(false)

+ +      allow(comm).to receive(:test).with("command -v netplan").and_return(false)

+      end

+  

+      it "creates and starts the networks using net-tools" do

+ @@ -85,8 +85,8 @@

+  

+      context "with systemd" do

+        before do

+ -        expect(comm).to receive(:test).with("ps -o comm= 1 | grep systemd").and_return(true)

+ -        allow(comm).to receive(:test).with("netplan -h").and_return(false)

+ +        expect(comm).to receive(:test).with("ps -o comm= 1 | grep systemd").and_return(true)

+ +        allow(comm).to receive(:test).with("command -v netplan").and_return(false)

+        end

+  

+        it "creates and starts the networks using net-tools" do

+ @@ -102,7 +102,7 @@

+  

+        context "with systemd-networkd" do

+          before do

+ -          expect(comm).to receive(:test).with("sudo systemctl status systemd-networkd.service").and_return(true)

+ +          expect(comm).to receive(:test).with("systemctl -q is-active systemd-networkd.service", anything).and_return(true)

+          end

+  

+          it "creates and starts the networks using systemd-networkd" do

+ @@ -117,7 +117,7 @@

+  

+        context "with netplan" do

+          before do

+ -          expect(comm).to receive(:test).with("netplan -h").and_return(true)

+ +          expect(comm).to receive(:test).with("command -v netplan").and_return(true)

+          end

+  

+          let(:nm_yml) { "---\nnetwork:\n  version: 2\n  renderer: NetworkManager\n  ethernets:\n    eth1:\n      dhcp4: true\n    eth2:\n      addresses:\n      - 33.33.33.10/16\n      gateway4: 33.33.0.1\n" }

+ 

+ From 1797798760eb72d6b02724f75bc54dd83815e986 Mon Sep 17 00:00:00 2001

+ From: Chris Roberts <croberts@hashicorp.com>

+ Date: Fri, 28 Sep 2018 07:59:39 -0700

+ Subject: [PATCH] Fix module name

+ 

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 2 +-

+  1 file changed, 1 insertion(+), 1 deletion(-)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index 5da660df05..37c8912a80 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -3,7 +3,7 @@ module GuestRedHat

+      module Cap

+        class ChangeHostName

+  

+ -        extend Vagrant::Util::GuestInspection

+ +        extend Vagrant::Util::GuestInspection::Linux

+  

+          def self.change_host_name(machine, name)

+            comm = machine.communicate

+ 

+ From 11b0d58fa081cd9a27c272244a0d119acc81f32e Mon Sep 17 00:00:00 2001

+ From: Chris Roberts <croberts@hashicorp.com>

+ Date: Mon, 1 Oct 2018 08:43:49 -0700

+ Subject: [PATCH] Include communicator on call

+ 

+ ---

+  plugins/guests/redhat/cap/change_host_name.rb | 2 +-

+  1 file changed, 1 insertion(+), 1 deletion(-)

+ 

+ diff --git a/plugins/guests/redhat/cap/change_host_name.rb b/plugins/guests/redhat/cap/change_host_name.rb

+ index 37c8912a80..5ceb63665a 100644

+ --- a/plugins/guests/redhat/cap/change_host_name.rb

+ +++ b/plugins/guests/redhat/cap/change_host_name.rb

+ @@ -31,7 +31,7 @@ def self.change_host_name(machine, name)

+  

+              restart_command = "service network restart"

+  

+ -            if systemd?

+ +            if systemd?(comm)

+                if systemd_networkd?(comm)

+                  restart_command = "systemctl restart systemd-networkd.service"

+                elsif systemd_controlled?(comm, "NetworkManager.service")

file modified
+12 -1
@@ -4,7 +4,7 @@ 

  

  Name: vagrant

  Version: 2.1.2

- Release: 2%{?dist}

+ Release: 3%{?dist}

  Summary: Build and distribute virtualized development environments

  Group: Development/Languages

  License: MIT
@@ -30,6 +30,13 @@ 

  # https://github.com/hashicorp/vagrant/pull/9935/commits/f0b9d025e481eaf03db9a92ed51f3fe07541fa76

  Patch1: vagrant-2.1.3-Fix-change-in-packaging-for-nfs-in-Fedora.patch

  

+ # Update restart logic in redhat change_host_name cap

+ # https://bugzilla.redhat.com/show_bug.cgi?id=1624068

+ # https://github.com/hashicorp/vagrant/pull/10223

+ # https://github.com/hashicorp/vagrant/commit/11b0d58fa081cd9a27c272244a0d119acc81f32e

+ # https://github.com/hashicorp/vagrant/commit/1797798760eb72d6b02724f75bc54dd83815e986

+ Patch2: vagrant-2.1.6-update-restart-logic-in-redhat.patch

+ 

  Requires: ruby(release)

  Requires: ruby(rubygems) >= 1.3.6

  # Explicitly specify MRI, since Vagrant does not work with JRuby ATM.
@@ -103,6 +110,7 @@ 

  

  %patch0 -p1

  %patch1 -p1

+ %patch2 -p1

  

  %build

  gem build %{name}.gemspec
@@ -320,6 +328,9 @@ 

  

  

  %changelog

+ * Wed Oct 24 2018 Pavel Valena <pvalena@redhat.com> - 2.1.2-3

+ - Update restart logic for redhat change_host_name cap(rhbz#1624068)

+ 

  * Wed Sep 12 2018 Tobias Jungel <tobias.jungel@bisdn.de> - 2.1.2-2

  - handle rename of nfs-utils-lib/libnfs-utils in F28 guests (rhbz#1620074).

  

  • Update restart logic for redhat change_host_name cap(rhbz#1624068)

Scratch-build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=30543190

rebased onto d0ac78d4c44a5729da485e8b70883396c1fadbc6

5 years ago

rebased onto a2139f8

5 years ago

Pull-Request has been merged by pvalena

5 years ago