Skip to content
This repository was archived by the owner on Jun 5, 2020. It is now read-only.

Commit dcadd2a

Browse files
committed
switch to ensure_packages()
The ruby module is used as a dependency in many other component modules. Some of them also define the `ruby` package or any of the other packages here. This leads to duplicate resources and a failing catalog. As a workaround I migrated all package resources to `ensure_packages()` from stdlib and increased the minimal stdlib version from 4.13.1 to 4.19.0.
1 parent c8bfea4 commit dcadd2a

File tree

5 files changed

+114
-145
lines changed

5 files changed

+114
-145
lines changed

manifests/dev.pp

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -114,36 +114,18 @@
114114
# specify a version and it will just silently continue installing the
115115
# default version.
116116
if $ruby_dev {
117-
package { $ruby_dev:
118-
ensure => $ensure,
119-
before => Package['rake', 'bundler'],
120-
require => Package['ruby'],
121-
}
117+
ensure_packages([$ruby_dev], {'ensure' => $ensure, 'before' => Package['rake', 'bundler'], 'require' => Package['ruby'] })
122118
}
123119

124120
if $rake_package {
125-
package { 'rake':
126-
ensure => $rake_ensure,
127-
name => $rake_package,
128-
provider => $rake_provider,
129-
require => Package['ruby'],
130-
}
121+
ensure_packages(['rake'], {'ensure' => $rake_ensure, 'name' => $rake_package, 'provider' => $rake_provider, 'require' => Package['ruby'] })
131122
}
132123

133124
if $bundler_package {
134-
package { 'bundler':
135-
ensure => $bundler_ensure,
136-
name => $bundler_package,
137-
provider => $bundler_provider,
138-
require => Package['ruby'],
139-
}
125+
ensure_packages(['bundler'], {'ensure' => $bundler_ensure, 'name' => $bundler_package, 'provider' => $bundler_provider, 'require' => Package['ruby'] })
140126
}
141127

142128
if $ruby_dev_gems {
143-
package { $ruby_dev_gems:
144-
ensure => $ensure,
145-
provider => gem,
146-
}
129+
ensure_packages([$ruby_dev_gems], {'ensure' => $ensure, 'provider' => 'gem' })
147130
}
148-
149131
}

manifests/init.pp

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,7 @@
158158
# available. It's a bit misleading for the user, though, since they can
159159
# specify a version and it will just silently continue installing the
160160
# default version.
161-
package { 'ruby':
162-
ensure => $ruby_package_ensure,
163-
name => $real_ruby_package,
164-
}
161+
ensure_packages(['ruby'], {'ensure' => $ruby_package_ensure, 'name' => $real_ruby_package })
165162

166163
# if rubygems_update is set to true then we only need to make the package
167164
# resource for rubygems ensure to installed, we'll let rubygems-update
@@ -174,21 +171,11 @@
174171
}
175172

176173
if $rubygems_package {
177-
package { 'rubygems':
178-
ensure => $rubygems_ensure,
179-
name => $rubygems_package,
180-
require => Package['ruby'],
181-
}
174+
ensure_packages(['rubygems'], {'ensure' => $rubygems_ensure, 'name' => $rubygems_package, 'require' => Package['ruby'] })
182175
}
183176

184177
if $rubygems_update {
185-
package { 'rubygems-update':
186-
ensure => $gems_version,
187-
provider => 'gem',
188-
require => Package['rubygems'],
189-
notify => Exec['ruby::update_rubygems'],
190-
}
191-
178+
ensure_packages(['rubygems-update'], {'ensure' => $gems_version, 'provider' => 'gem', 'require' => Package['rubygems'], 'notify' => Exec['ruby::update_rubygems']})
192179
exec { 'ruby::update_rubygems':
193180
path => '/usr/local/bin:/usr/bin:/bin',
194181
command => 'update_rubygems',

metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
],
7575
"dependencies": [
7676
{
77-
"name":"puppetlabs/stdlib","version_requirement":">= 4.13.1 < 6.0.0"
77+
"name":"puppetlabs/stdlib","version_requirement":">= 4.19.0 < 6.0.0"
7878
}
7979
]
8080
}

0 commit comments

Comments
 (0)