Skip to content

Commit ee2a67a

Browse files
committed
Allow setting owner for virtualenv and requirements
1 parent c1a73e2 commit ee2a67a

2 files changed

Lines changed: 21 additions & 3 deletions

File tree

manifests/requirements.pp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
define python::requirements (
2929
$requirements = $name,
3030
$virtualenv = 'system',
31-
$proxy = false
31+
$proxy = false,
32+
$owner = 'root',
33+
$group = 'root'
3234
) {
3335

3436
$cwd = $virtualenv ? {
@@ -54,8 +56,8 @@
5456
file { $requirements:
5557
ensure => present,
5658
mode => '0644',
57-
owner => 'root',
58-
group => 'root',
59+
owner => $owner,
60+
group => $group,
5961
replace => false,
6062
content => '# Puppet will install and/or update pip packages listed here',
6163
}
@@ -65,6 +67,7 @@
6567
exec { "python_requirements_check_${name}":
6668
command => "sha1sum ${requirements} > ${req_crc}",
6769
unless => "sha1sum -c ${req_crc}",
70+
user => $owner,
6871
require => File[$requirements],
6972
}
7073

@@ -74,6 +77,7 @@
7477
cwd => $cwd,
7578
refreshonly => true,
7679
timeout => 1800,
80+
user => $owner,
7781
subscribe => Exec["python_requirements_check_${name}"],
7882
}
7983

manifests/virtualenv.pp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
$proxy = false,
4646
$systempkgs = false,
4747
$distribute = true,
48+
$owner = 'root',
49+
$group = 'root'
4850
) {
4951

5052
$venv_dir = $name
@@ -81,22 +83,34 @@
8183
${proxy_command} \
8284
&& virtualenv -p `which ${python}` ${system_pkgs_flag} ${venv_dir} \
8385
&& ${venv_dir}/bin/pip install ${proxy_flag} --upgrade ${distribute_pkg} pip",
86+
user => $owner,
8487
creates => $venv_dir,
8588
path => [ '/bin', '/usr/bin', '/usr/sbin' ],
8689
}
8790

91+
file{$venv_dir:
92+
ensure => directory,
93+
owner => $owner,
94+
group => $group,
95+
recurse => true,
96+
require => Exec["python_virtualenv_${venv_dir}"],
97+
}
98+
8899
if $requirements {
89100
exec { "python_requirements_initial_install_${requirements}_${venv_dir}":
90101
command => "${venv_dir}/bin/pip install ${proxy_flag} --requirement ${requirements}",
91102
refreshonly => true,
92103
timeout => 1800,
104+
user => $owner,
93105
subscribe => Exec["python_virtualenv_${venv_dir}"],
94106
}
95107

96108
python::requirements { "${requirements}_${venv_dir}":
97109
requirements => $requirements,
98110
virtualenv => $venv_dir,
99111
proxy => $proxy,
112+
owner => $owner,
113+
group => $group,
100114
require => Exec["python_virtualenv_${venv_dir}"],
101115
}
102116
}

0 commit comments

Comments
 (0)