From fecfe86cb8a34aed8c04c57eb485137e2810a807 Mon Sep 17 00:00:00 2001 From: sophia Date: Tue, 15 Jun 2021 14:46:59 -0500 Subject: [PATCH] Strip whitespace from ansible version Note: strip! returns nil if there is nothing to be stripped --- plugins/provisioners/ansible/provisioner/base.rb | 1 + .../plugins/provisioners/ansible/provisioner_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/plugins/provisioners/ansible/provisioner/base.rb b/plugins/provisioners/ansible/provisioner/base.rb index a2533ea9c..abf24bbe7 100644 --- a/plugins/provisioners/ansible/provisioner/base.rb +++ b/plugins/provisioners/ansible/provisioner/base.rb @@ -388,6 +388,7 @@ gathered version stdout version: ansible_version_pattern = first_line.match(/(^ansible\s+)(.+)$/) if ansible_version_pattern _, @gathered_version, _ = ansible_version_pattern.captures + @gathered_version.strip! if @gathered_version @gathered_version_major = @gathered_version.match(/(\d)\..+$/).captures[0].to_i end diff --git a/test/unit/plugins/provisioners/ansible/provisioner_test.rb b/test/unit/plugins/provisioners/ansible/provisioner_test.rb index 318ad0f19..180f26869 100644 --- a/test/unit/plugins/provisioners/ansible/provisioner_test.rb +++ b/test/unit/plugins/provisioners/ansible/provisioner_test.rb @@ -984,6 +984,16 @@ VF end end + describe "whitespace in version string" do + before do + allow(subject).to receive(:gather_ansible_version).and_return("ansible #{config.version} \n...\n") + end + + it "sets the correct gathered_version" do + expect(Vagrant::Util::Subprocess).to receive(:execute).with('ansible-playbook', any_args).and_return(default_execute_result) + end + end + describe "and there is an ansible version mismatch" do before do allow(subject).to receive(:gather_ansible_version).and_return("ansible 1.9.6\n...\n")