123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- define python::requirements (
- $requirements = $name,
- $virtualenv = 'system',
- $owner = 'root',
- $group = 'root',
- $proxy = false,
- $environment = []
- ) {
- if $virtualenv == 'system' and ($owner != 'root' or $group != 'root') {
- fail('python::pip: root user must be used when virtualenv is system')
- }
- $cwd = $virtualenv ? {
- 'system' => '/',
- default => "${virtualenv}",
- }
- $pip_env = $virtualenv ? {
- 'system' => 'pip',
- default => "${virtualenv}/bin/pip",
- }
- $proxy_flag = $proxy ? {
- false => '',
- default => "--proxy=${proxy}",
- }
- # This will ensure multiple python::virtualenv definitions can share the
- # the same requirements file.
- if !defined(File[$requirements]) {
- file { $requirements:
- ensure => present,
- mode => '0644',
- owner => $owner,
- group => $group,
- audit => content,
- replace => false,
- content => '# Puppet will install and/or update pip packages listed here',
- }
- }
- exec { "python_requirements${name}":
- provider => shell,
- command => "${pip_env} --log-file ${cwd}/pip.log install ${proxy_flag} -r ${requirements}",
- refreshonly => true,
- timeout => 1800,
- user => $owner,
- subscribe => File[$requirements],
- environment => $environment,
- }
- }
|