Skip to content

Commit fc38501

Browse files
author
Oana Tanasoiu
committed
(FACT-2832) Use puppet path for augeas fact
1 parent cc69ac6 commit fc38501

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

lib/facter/resolvers/augeas_resolver.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@ def read_augeas_version(fact_name)
2020
end
2121

2222
def read_augeas_from_cli
23-
output = Facter::Core::Execution.execute('augparse --version 2>&1', logger: log)
23+
command = if File.readable?('/opt/puppetlabs/puppet/bin/augparse')
24+
'/opt/puppetlabs/puppet/bin/augparse'
25+
else
26+
'augparse'
27+
end
28+
29+
output = Facter::Core::Execution.execute("#{command} --version 2>&1", logger: log)
2430
Regexp.last_match(1) if output =~ /^augparse (\d+\.\d+\.\d+)/
2531
end
2632

spec/facter/resolvers/augeas_resolver_spec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
subject(:augeas) { Facter::Resolvers::Augeas }
55

66
let(:log_spy) { instance_spy(Facter::Log) }
7+
let(:executable?) { false }
78

89
before do
910
augeas.instance_variable_set(:@log, log_spy)
11+
allow(File).to receive(:readable?).with('/opt/puppetlabs/puppet/bin/augparse').and_return(executable?)
1012
end
1113

1214
after do
@@ -25,6 +27,20 @@
2527
end
2628
end
2729

30+
context 'when augparse is installed with puppet-agent package on unix based systems' do
31+
let(:executable?) { true }
32+
33+
before do
34+
allow(Facter::Core::Execution).to receive(:execute)
35+
.with('/opt/puppetlabs/puppet/bin/augparse --version 2>&1', logger: log_spy)
36+
.and_return('augparse 1.12.0 <http://augeas.net/>')
37+
end
38+
39+
it 'returns build' do
40+
expect(augeas.resolve(:augeas_version)).to eq('1.12.0')
41+
end
42+
end
43+
2844
context 'when augparse is not installed' do
2945
before do
3046
allow(Facter::Core::Execution).to receive(:execute)

0 commit comments

Comments
 (0)