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

Commit

Permalink
switch to ensure_packages()
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
bastelfreak committed Nov 15, 2018
1 parent c8bfea4 commit dcadd2a
Show file tree
Hide file tree
Showing 5 changed files with 114 additions and 145 deletions.
26 changes: 4 additions & 22 deletions manifests/dev.pp
Original file line number Diff line number Diff line change
Expand Up @@ -114,36 +114,18 @@
# specify a version and it will just silently continue installing the
# default version.
if $ruby_dev {
package { $ruby_dev:
ensure => $ensure,
before => Package['rake', 'bundler'],
require => Package['ruby'],
}
ensure_packages([$ruby_dev], {'ensure' => $ensure, 'before' => Package['rake', 'bundler'], 'require' => Package['ruby'] })
}

if $rake_package {
package { 'rake':
ensure => $rake_ensure,
name => $rake_package,
provider => $rake_provider,
require => Package['ruby'],
}
ensure_packages(['rake'], {'ensure' => $rake_ensure, 'name' => $rake_package, 'provider' => $rake_provider, 'require' => Package['ruby'] })
}

if $bundler_package {
package { 'bundler':
ensure => $bundler_ensure,
name => $bundler_package,
provider => $bundler_provider,
require => Package['ruby'],
}
ensure_packages(['bundler'], {'ensure' => $bundler_ensure, 'name' => $bundler_package, 'provider' => $bundler_provider, 'require' => Package['ruby'] })
}

if $ruby_dev_gems {
package { $ruby_dev_gems:
ensure => $ensure,
provider => gem,
}
ensure_packages([$ruby_dev_gems], {'ensure' => $ensure, 'provider' => 'gem' })
}

}
19 changes: 3 additions & 16 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,7 @@
# available. It's a bit misleading for the user, though, since they can
# specify a version and it will just silently continue installing the
# default version.
package { 'ruby':
ensure => $ruby_package_ensure,
name => $real_ruby_package,
}
ensure_packages(['ruby'], {'ensure' => $ruby_package_ensure, 'name' => $real_ruby_package })

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

if $rubygems_package {
package { 'rubygems':
ensure => $rubygems_ensure,
name => $rubygems_package,
require => Package['ruby'],
}
ensure_packages(['rubygems'], {'ensure' => $rubygems_ensure, 'name' => $rubygems_package, 'require' => Package['ruby'] })
}

if $rubygems_update {
package { 'rubygems-update':
ensure => $gems_version,
provider => 'gem',
require => Package['rubygems'],
notify => Exec['ruby::update_rubygems'],
}

ensure_packages(['rubygems-update'], {'ensure' => $gems_version, 'provider' => 'gem', 'require' => Package['rubygems'], 'notify' => Exec['ruby::update_rubygems']})
exec { 'ruby::update_rubygems':
path => '/usr/local/bin:/usr/bin:/bin',
command => 'update_rubygems',
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
],
"dependencies": [
{
"name":"puppetlabs/stdlib","version_requirement":">= 4.13.1 < 6.0.0"
"name":"puppetlabs/stdlib","version_requirement":">= 4.19.0 < 6.0.0"
}
]
}
Loading

0 comments on commit dcadd2a

Please sign in to comment.