From 8442b6b59fc9a35bcc6aeaa183652465d22b28df Mon Sep 17 00:00:00 2001 From: Gregor Dschung Date: Thu, 3 Oct 2019 14:46:14 +0200 Subject: [PATCH] Use hostnamectl instead of hostname to set the hostname under SUSE --- plugins/guests/suse/cap/change_host_name.rb | 5 ++--- .../unit/plugins/guests/suse/cap/change_host_name_test.rb | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/guests/suse/cap/change_host_name.rb b/plugins/guests/suse/cap/change_host_name.rb index 8371f6fff..26dd720d0 100644 --- a/plugins/guests/suse/cap/change_host_name.rb +++ b/plugins/guests/suse/cap/change_host_name.rb @@ -5,11 +5,10 @@ module VagrantPlugins def self.change_host_name(machine, name) comm = machine.communicate - if !comm.test("hostname -f | grep '^#{name}$'", sudo: false) + if !comm.test("getent hosts '#{name}'", sudo: false) basename = name.split(".", 2)[0] comm.sudo <<-EOH.gsub(/^ {14}/, '') - echo '#{basename}' > /etc/HOSTNAME - hostname '#{basename}' + hostnamectl set-hostname '#{basename}' # Prepend ourselves to /etc/hosts grep -w '#{name}' /etc/hosts || { diff --git a/test/unit/plugins/guests/suse/cap/change_host_name_test.rb b/test/unit/plugins/guests/suse/cap/change_host_name_test.rb index b669f615e..58ecdd7af 100644 --- a/test/unit/plugins/guests/suse/cap/change_host_name_test.rb +++ b/test/unit/plugins/guests/suse/cap/change_host_name_test.rb @@ -25,15 +25,15 @@ describe "VagrantPlugins::GuestSUSE::Cap::ChangeHostName" do let(:basename) { "banana-rama" } it "sets the hostname" do - comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 1) + comm.stub_command("getent hosts '#{name}'", exit_code: 1) cap.change_host_name(machine, name) - expect(comm.received_commands[1]).to match(/echo '#{basename}' > \/etc\/HOSTNAME/) - expect(comm.received_commands[1]).to match(/hostname '#{basename}'/) + expect(comm.received_commands[1]).to match(/hostnamectl set-hostname '#{basename}'/) end it "does not change the hostname if already set" do - comm.stub_command("hostname -f | grep '^#{name}$'", exit_code: 0) + comm.stub_command("getent hosts '#{name}'", exit_code: 0) + cap.change_host_name(machine, name) expect(comm.received_commands.size).to eq(1) end