Monty Taylor 6bb34219ae Move python-pip include to a class.
You can't have two different classes install the same package (FAIL)
But you can have two different classes include the same class, so
by encapsulating the "install pip" code into a module, we can safely
consume it across multiple modules.

Sometimes I really hate puppet.

Change-Id: I3467c52b6887298c1b4d01a29873c63edf0adfd3
2012-07-23 15:43:27 -05:00

46 lines
1.1 KiB
Puppet

class jenkins_jobs($url, $username, $password, $site) {
include pip
package { 'python-yaml':
ensure => 'present'
}
file { '/usr/local/jenkins_jobs':
owner => 'root',
group => 'root',
mode => 755,
ensure => 'directory',
recurse => true,
source => ['puppet:///modules/jenkins_jobs/'],
require => Package['python-yaml']
}
file { '/usr/local/jenkins_jobs/jenkins_jobs.ini':
owner => 'root',
group => 'root',
mode => 440,
ensure => 'present',
content => template('jenkins_jobs/jenkins_jobs.ini.erb'),
replace => 'true',
require => File['/usr/local/jenkins_jobs']
}
exec { "jenkins_job_${site}":
command => "python /usr/local/jenkins_jobs/jenkins_jobs.py update /usr/local/jenkins_jobs/projects/${site}",
cwd => '/usr/local/jenkins_jobs/',
path => '/bin:/usr/bin',
require => [
File['/usr/local/jenkins_jobs/jenkins_jobs.ini'],
Package['python-jenkins']
]
}
package { "python-jenkins":
ensure => latest, # okay to use latest for pip
provider => pip,
require => Class[pip]
}
}