Skip to content

Commit 5a17bf1

Browse files
authored
Merge pull request #716 from EmersonPrado/MODULES-4377
(Modules 4377) Causes ensure_packages to accept concurrent declarations with ensure => 'present' and 'installed'
2 parents 578220e + 530d2ef commit 5a17bf1

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

lib/puppet/parser/functions/ensure_packages.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ module Puppet::Parser::Functions
1919
if arguments[0].is_a?(Hash)
2020
if arguments[1]
2121
defaults = { 'ensure' => 'present' }.merge(arguments[1])
22+
if defaults['ensure'] == 'installed'
23+
defaults['ensure'] = 'present'
24+
end
2225
else
2326
defaults = { 'ensure' => 'present' }
2427
end
@@ -30,6 +33,9 @@ module Puppet::Parser::Functions
3033

3134
if arguments[1]
3235
defaults = { 'ensure' => 'present' }.merge(arguments[1])
36+
if defaults['ensure'] == 'installed'
37+
defaults['ensure'] = 'present'
38+
end
3339
else
3440
defaults = { 'ensure' => 'present' }
3541
end

spec/functions/ensure_packages_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,16 @@
5656
it { expect(lambda { catalogue }).to contain_package('ρǻ¢κầģẻ').with({'ensure' => 'absent'}) }
5757
end
5858
end
59+
60+
context 'given a catalog with "package { puppet: ensure => present }"' do
61+
let(:pre_condition) { 'package { puppet: ensure => present }' }
62+
63+
describe 'after running ensure_package("puppet", { "ensure" => "installed" })' do
64+
before { subject.call(['puppet', { "ensure" => "installed" }]) }
65+
66+
# this lambda is required due to strangeness within rspec-puppet's expectation handling
67+
it { expect(lambda { catalogue }).to contain_package('puppet').with_ensure('present') }
68+
end
69+
end
70+
5971
end

0 commit comments

Comments
 (0)