summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTP Honey <tphoney@users.noreply.github.com>2017-07-07 18:00:08 +0100
committerGitHub <noreply@github.com>2017-07-07 18:00:08 +0100
commit5a17bf1c338c74bd6c8dbacc9a05b4cd501ecc23 (patch)
tree465af9117753d648cdf4df8bba33baec4c7ad295
parent578220e62389af8fd7047da77b00171d45896c85 (diff)
parent530d2ef184d19b965a4c9db2c415c26b80f9d31b (diff)
Merge pull request #716 from EmersonPrado/MODULES-4377
(Modules 4377) Causes ensure_packages to accept concurrent declarations with ensure => 'present' and 'installed'
-rw-r--r--lib/puppet/parser/functions/ensure_packages.rb6
-rwxr-xr-xspec/functions/ensure_packages_spec.rb12
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/ensure_packages.rb b/lib/puppet/parser/functions/ensure_packages.rb
index 034f997..1bf8bf1 100644
--- a/lib/puppet/parser/functions/ensure_packages.rb
+++ b/lib/puppet/parser/functions/ensure_packages.rb
@@ -19,6 +19,9 @@ third argument to the ensure_resource() function.
if arguments[0].is_a?(Hash)
if arguments[1]
defaults = { 'ensure' => 'present' }.merge(arguments[1])
+ if defaults['ensure'] == 'installed'
+ defaults['ensure'] = 'present'
+ end
else
defaults = { 'ensure' => 'present' }
end
@@ -30,6 +33,9 @@ third argument to the ensure_resource() function.
if arguments[1]
defaults = { 'ensure' => 'present' }.merge(arguments[1])
+ if defaults['ensure'] == 'installed'
+ defaults['ensure'] = 'present'
+ end
else
defaults = { 'ensure' => 'present' }
end
diff --git a/spec/functions/ensure_packages_spec.rb b/spec/functions/ensure_packages_spec.rb
index 1f89785..190e580 100755
--- a/spec/functions/ensure_packages_spec.rb
+++ b/spec/functions/ensure_packages_spec.rb
@@ -56,4 +56,16 @@ describe 'ensure_packages' do
it { expect(lambda { catalogue }).to contain_package('ρǻ¢κầģẻ').with({'ensure' => 'absent'}) }
end
end
+
+ context 'given a catalog with "package { puppet: ensure => present }"' do
+ let(:pre_condition) { 'package { puppet: ensure => present }' }
+
+ describe 'after running ensure_package("puppet", { "ensure" => "installed" })' do
+ before { subject.call(['puppet', { "ensure" => "installed" }]) }
+
+ # this lambda is required due to strangeness within rspec-puppet's expectation handling
+ it { expect(lambda { catalogue }).to contain_package('puppet').with_ensure('present') }
+ end
+ end
+
end