diff --git a/plugins/guests/suse/cap/change_host_name.rb b/plugins/guests/suse/cap/change_host_name.rb index 26dd720d0..d35419457 100644 --- a/plugins/guests/suse/cap/change_host_name.rb +++ b/plugins/guests/suse/cap/change_host_name.rb @@ -5,8 +5,8 @@ module VagrantPlugins def self.change_host_name(machine, name) comm = machine.communicate - if !comm.test("getent hosts '#{name}'", sudo: false) - basename = name.split(".", 2)[0] + basename = name.split(".", 2)[0] + if !comm.test('test "$(hostnamectl --static status)" = "#{basename}"', sudo: false) comm.sudo <<-EOH.gsub(/^ {14}/, '') hostnamectl set-hostname '#{basename}' 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 58ecdd7af..c76503c90 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,14 +25,14 @@ describe "VagrantPlugins::GuestSUSE::Cap::ChangeHostName" do let(:basename) { "banana-rama" } it "sets the hostname" do - comm.stub_command("getent hosts '#{name}'", exit_code: 1) + comm.stub_command('test "$(hostnamectl --static status)" = "#{basename}"', exit_code: 1) cap.change_host_name(machine, name) 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("getent hosts '#{name}'", exit_code: 0) + comm.stub_command('test "$(hostnamectl --static status)" = "#{basename}"', exit_code: 0) cap.change_host_name(machine, name) expect(comm.received_commands.size).to eq(1)