diff options
author | Nick Groenen <zoni@zoni.nl> | 2013-03-11 14:20:25 +0100 |
---|---|---|
committer | Nick Groenen <zoni@zoni.nl> | 2013-03-11 14:20:25 +0100 |
commit | 451b21537565b335a45bca0d90ff03567a10e9c2 (patch) | |
tree | 0aab5e3597fc0a7d4877df52beda51bb8b1454bc | |
parent | 8fb868d5aa7bbe4d19f83367ba86d4ac4deb6d25 (diff) |
Resolve a cyclic dependency
There was a dependency between python::virtualenv and
python::requirements. Basically, the virtualenv wanted to initialize
requirements, but requirements depended on the virtualenv being created
already, resulting in:
err: Could not apply complete catalog: Found 1 dependency cycle:
(Exec[python_requirements_check_/usr/share/err/repo/requirements.txt] =>
Python::Requirements[/usr/share/err/repo/requirements.txt] =>
Exec[python_virtualenv_/usr/share/err/python3] =>
Python::Requirements[/usr/share/err/repo/requirements.txt] =>
Exec[python_requirements_check_/usr/share/err/repo/requirements.txt])
-rw-r--r-- | manifests/config.pp | 1 | ||||
-rw-r--r-- | manifests/virtualenv.pp | 9 |
2 files changed, 7 insertions, 3 deletions
diff --git a/manifests/config.pp b/manifests/config.pp index 43da22e..49e5230 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -5,7 +5,6 @@ class python::config { Class['python::install'] -> Python::Virtualenv <| |> Python::Virtualenv <| |> -> Python::Pip <| |> - Python::Virtualenv <| |> -> Python::Requirements <| |> if $python::gunicorn { Class['python::install'] -> Python::Gunicorn <| |> diff --git a/manifests/virtualenv.pp b/manifests/virtualenv.pp index e816468..e6c3900 100644 --- a/manifests/virtualenv.pp +++ b/manifests/virtualenv.pp @@ -76,12 +76,17 @@ define python::virtualenv ( } if $requirements { - Exec["python_virtualenv_${venv_dir}"] - -> Python::Requirements[$requirements] + exec { "python_requirements_initial_install_${requirements}": + command => "${venv_dir}/bin/pip install ${proxy_flag} --requirement ${requirements}", + refreshonly => true, + timeout => 1800, + subscribe => Exec["python_virtualenv_${venv_dir}"], + } python::requirements { $requirements: virtualenv => $venv_dir, proxy => $proxy, + require => Exec["python_virtualenv_${venv_dir}"], } } |