summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarl Stefansson <jarl@sdelements.com>2014-01-03 11:33:12 -0500
committerJarl Stefansson <jarl@sdelements.com>2014-01-03 11:33:12 -0500
commitce3562f32bdf37d78228c22038a6b9d13f073c54 (patch)
treed2b6125f12df90d892a4fc19c9f04710bd6e98f4
parent895eebf2a03a29959d0c4dbd613cfa345ac22b55 (diff)
parent2bab9c9a03cd01450877d897399c68f37fea0ff7 (diff)
Merge branch 'master' of https://github.com/stankevich/puppet-python
Conflicts: manifests/pip.pp manifests/virtualenv.pp Merge curly braces around variable names
-rw-r--r--Modulefile2
-rw-r--r--manifests/config.pp18
-rw-r--r--manifests/gunicorn.pp4
-rw-r--r--manifests/init.pp4
-rw-r--r--manifests/install.pp21
-rw-r--r--manifests/pip.pp20
-rw-r--r--manifests/requirements.pp12
-rw-r--r--manifests/virtualenv.pp2
-rw-r--r--templates/gunicorn.erb4
9 files changed, 63 insertions, 24 deletions
diff --git a/Modulefile b/Modulefile
index 5806e9d..be19691 100644
--- a/Modulefile
+++ b/Modulefile
@@ -1,5 +1,5 @@
name 'stankevich-python'
-version '1.2.1'
+version '1.4.0'
author 'Sergey Stankevich'
license 'Apache License, Version 2.0'
diff --git a/manifests/config.pp b/manifests/config.pp
index 49e5230..52c10be 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -1,3 +1,18 @@
+# == Define: python::config
+#
+# Optionally installs the gunicorn service
+#
+# === Examples
+#
+# include python::config
+#
+# === Authors
+#
+# Sergey Stankevich
+# Ashley Penney
+# Fotis Gimian
+#
+
class python::config {
Class['python::install'] -> Python::Pip <| |>
@@ -19,5 +34,4 @@ class python::config {
pattern => '/usr/bin/gunicorn',
}
}
-
-}
+} \ No newline at end of file
diff --git a/manifests/gunicorn.pp b/manifests/gunicorn.pp
index 13f4872..159afa3 100644
--- a/manifests/gunicorn.pp
+++ b/manifests/gunicorn.pp
@@ -37,6 +37,8 @@
# dir => '/var/www/project1/current',
# bind => 'unix:/tmp/gunicorn.socket',
# environment => 'prod',
+# owner => 'www-data',
+# group => 'www-data',
# template => 'python/gunicorn.erb',
# }
#
@@ -53,6 +55,8 @@ define python::gunicorn (
$dir = false,
$bind = false,
$environment = false,
+ $owner = 'www-data',
+ $group = 'www-data',
$template = 'python/gunicorn.erb',
) {
diff --git a/manifests/init.pp b/manifests/init.pp
index 9fe0420..451bdda 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -44,8 +44,8 @@ class python (
) {
# Module compatibility check
- $compatible = [ 'Debian', 'Ubuntu', 'CentOS', 'RedHat', 'Scientific' ]
- if ! ($::operatingsystem in $compatible) {
+ $compatible = [ 'Debian', 'RedHat']
+ if ! ($::osfamily in $compatible) {
fail("Module is not compatible with ${::operatingsystem}")
}
diff --git a/manifests/install.pp b/manifests/install.pp
index 0d16659..b2debcc 100644
--- a/manifests/install.pp
+++ b/manifests/install.pp
@@ -1,3 +1,18 @@
+# == Define: python::install
+#
+# Installs core python packages
+#
+# === Examples
+#
+# include python::install
+#
+# === Authors
+#
+# Sergey Stankevich
+# Ashley Penney
+# Fotis Gimian
+#
+
class python::install {
$python = $python::version ? {
@@ -5,9 +20,9 @@ class python::install {
default => "python${python::version}",
}
- $pythondev = $::operatingsystem ? {
- /(?i:RedHat|CentOS|Fedora|Scientific)/ => "${python}-devel",
- /(?i:Debian|Ubuntu)/ => "${python}-dev"
+ $pythondev = $::osfamily ? {
+ RedHat => "${python}-devel",
+ Debian => "${python}-dev"
}
$dev_ensure = $python::dev ? {
diff --git a/manifests/pip.pp b/manifests/pip.pp
index f71cdcd..fb73ae7 100644
--- a/manifests/pip.pp
+++ b/manifests/pip.pp
@@ -57,7 +57,7 @@ define python::pip (
$cwd = $virtualenv ? {
'system' => '/',
- default => "${virtualenv}",
+ default => $virtualenv,
}
$pip_env = $virtualenv ? {
@@ -95,26 +95,26 @@ define python::pip (
case $ensure {
present: {
exec { "pip_install_${name}":
- command => "$pip_env wheel --help > /dev/null 2>&1 && { pip wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; $pip_env --log ${cwd}/pip.log install $install_args \$wheel_support_flag ${proxy_flag} ${source}",
- unless => "$pip_env freeze | grep -i -e ${grep_regex}",
+ command => "${pip_env} wheel --help > /dev/null 2>&1 && { ${pip_env} wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; ${pip_env} --log ${cwd}/pip.log install ${install_args} \$wheel_support_flag ${proxy_flag} ${source}",
+ unless => "${pip_env} freeze | grep -i -e ${grep_regex}",
user => $owner,
environment => $environment,
- path => ["/usr/local/bin","/usr/bin","/bin", "/usr/sbin"],
+ path => ['/usr/local/bin','/usr/bin','/bin', '/usr/sbin'],
}
}
latest: {
exec { "pip_install_${name}":
- command => "$pip_env wheel --help > /dev/null 2>&1&& { pip wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; $pip_env --log ${cwd}/pip.log install --upgrade \$wheel_support_flag ${proxy_flag} ${source}",
+ command => "${pip_env} wheel --help > /dev/null 2>&1 && { ${pip_env} wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; ${pip_env} --log ${cwd}/pip.log install --upgrade \$wheel_support_flag ${proxy_flag} ${source}",
user => $owner,
environment => $environment,
- path => ["/usr/local/bin","/usr/bin","/bin", "/usr/sbin"],
+ path => ['/usr/local/bin','/usr/bin','/bin', '/usr/sbin'],
}
}
latest: {
exec { "pip_install_${name}":
- command => "$pip_env wheel --help > /dev/null 2>&1&& { pip wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; $pip_env --log ${cwd}/pip.log install -U $install_args \$wheel_support_flag ${proxy_flag} ${source}",
+ command => "${pip_env} wheel --help > /dev/null 2>&1 && { ${pip_env} wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; ${pip_env} --log ${cwd}/pip.log install -U ${install_args} \$wheel_support_flag ${proxy_flag} ${source}",
user => $owner,
environment => $environment,
}
@@ -122,11 +122,11 @@ define python::pip (
default: {
exec { "pip_uninstall_${name}":
- command => "echo y | $pip_env uninstall $uninstall_args ${proxy_flag} ${name}",
- onlyif => "$pip_env freeze | grep -i -e ${grep_regex}",
+ command => "echo y | ${pip_env} uninstall ${uninstall_args} ${proxy_flag} ${name}",
+ onlyif => "${pip_env} freeze | grep -i -e ${grep_regex}",
user => $owner,
environment => $environment,
- path => ["/usr/local/bin","/usr/bin","/bin", "/usr/sbin"],
+ path => ['/usr/local/bin','/usr/bin','/bin', '/usr/sbin'],
}
}
}
diff --git a/manifests/requirements.pp b/manifests/requirements.pp
index ee44fa4..5fa6eb9 100644
--- a/manifests/requirements.pp
+++ b/manifests/requirements.pp
@@ -27,6 +27,11 @@
# [*environment*]
# Additional environment variables required to install the packages. Default: none
#
+# [*forceupdate*]
+# Run a pip install requirements even if we don't receive an event from the
+# requirements file - Useful for when the requirements file is written as part of a
+# resource other than file (E.g vcsrepo)
+#
# === Examples
#
# python::requirements { '/var/www/project1/requirements.txt':
@@ -47,7 +52,8 @@ define python::requirements (
$group = 'root',
$proxy = false,
$src = false,
- $environment = []
+ $environment = [],
+ $forceupdate = false,
) {
if $virtualenv == 'system' and ($owner != 'root' or $group != 'root') {
@@ -56,7 +62,7 @@ define python::requirements (
$cwd = $virtualenv ? {
'system' => '/',
- default => "${virtualenv}",
+ default => $virtualenv,
}
$pip_env = $virtualenv ? {
@@ -91,7 +97,7 @@ define python::requirements (
exec { "python_requirements${name}":
provider => shell,
command => "${pip_env} --log ${cwd}/pip.log install ${proxy_flag} ${src_flag} -r ${requirements}",
- refreshonly => true,
+ refreshonly => !$forceupdate,
timeout => 1800,
user => $owner,
subscribe => File[$requirements],
diff --git a/manifests/virtualenv.pp b/manifests/virtualenv.pp
index cee35fc..a779141 100644
--- a/manifests/virtualenv.pp
+++ b/manifests/virtualenv.pp
@@ -127,7 +127,7 @@ define python::virtualenv (
# version, this makes sure we only use wheels if they are supported
exec { "python_virtualenv_${venv_dir}":
- command => "mkdir -p ${venv_dir} ${proxy_command} && virtualenv ${system_pkgs_flag} -p ${python} ${venv_dir} && ${venv_dir}/bin/pip $pip_env wheel --help > /dev/null 2>&1 && { ${venv_dir}/bin/pip wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; ${venv_dir}/bin/pip --log ${venv_dir}/pip.log install ${pypi_index} ${proxy_flag} \$wheel_support_flag --upgrade pip ${distribute_pkg}",
+ command => "mkdir -p ${venv_dir} ${proxy_command} && virtualenv ${system_pkgs_flag} -p ${python} ${venv_dir} && ${venv_dir}/bin/pip wheel --help > /dev/null 2>&1 && { ${venv_dir}/bin/pip wheel --version > /dev/null 2>&1 || wheel_support_flag='--no-use-wheel'; } ; ${venv_dir}/bin/pip --log ${venv_dir}/pip.log install ${pypi_index} ${proxy_flag} \$wheel_support_flag --upgrade pip ${distribute_pkg}",
user => $owner,
path => $path,
cwd => "/tmp",
diff --git a/templates/gunicorn.erb b/templates/gunicorn.erb
index 99481e7..10f81fa 100644
--- a/templates/gunicorn.erb
+++ b/templates/gunicorn.erb
@@ -13,8 +13,8 @@ CONFIG = {
},
<% end -%>
'working_dir': '<%= @dir %>',
- 'user': 'www-data',
- 'group': 'www-data',
+ 'user': '<%= @owner %>',
+ 'group': '<%= @group %>',
<% if @virtualenv -%>
'python': '<%= @virtualenv %>/bin/python',
<% else -%>