Yolanda Robla 0f6076c432 Require packages before installing jeepyb
Currently the jeepyb install has a race. install_jeepyb is
called without requiring the needed packages. This causes
that puppet needs to be run at least twice to converge.

Adding the proper require on place to fix that problem,
also switching to virtual resources and require, to avoid
cross duplicates with other projects such as puppet-openstackci

Change-Id: I34864ed7f0ba991d48de80fe6d64eebcd3df300a
2016-08-12 17:47:05 +02:00

83 lines
1.8 KiB
Puppet

# == Class: jeepyb
#
class jeepyb (
$git_source_repo = 'https://git.openstack.org/openstack-infra/jeepyb',
$git_revision = 'master',
) {
# A lot of things need yaml, be conservative requiring this package to avoid
# conflicts with other modules.
case $::osfamily {
'Debian': {
$jeepyb_packages = [
'python-paramiko',
'gcc',
'python-yaml',
'libxml2-dev',
'libxslt1-dev',
'libffi-dev',
'libssl-dev'
]
@package { $jeepyb_packages:
ensure => present,
}
realize (
Package['python-paramiko'],
Package['gcc'],
Package['python-yaml'],
Package['libxml2-dev'],
Package['libxslt1-dev'],
Package['libffi-dev'],
Package['libssl-dev'],
)
}
'RedHat': {
$jeepyb_packages = [
'python-paramiko',
'gcc',
'PyYAML',
'libxml2-devel',
'libxslt-devel',
'libffi-devel',
'openssl-devel'
]
@package { $jeepyb_packages:
ensure => present,
}
realize (
Package['python-paramiko'],
Package['gcc'],
Package['PyYAML'],
Package['libxml2-devel'],
Package['libxslt-devel'],
Package['libffi-devel'],
Package['openssl-devel'],
)
}
default: {
fail("Unsupported osfamily: ${::osfamily} The 'jeepyb' module only supports osfamily Debian or RedHat.")
}
}
vcsrepo { '/opt/jeepyb':
ensure => latest,
provider => git,
revision => $git_revision,
source => $git_source_repo,
}
exec { 'install_jeepyb' :
command => 'pip install -U /opt/jeepyb',
path => '/usr/local/bin:/usr/bin:/bin/',
refreshonly => true,
subscribe => Vcsrepo['/opt/jeepyb'],
logoutput => true,
require => Package[$jeepyb_packages]
}
}