From 823c88356cc7e18991dd2b60103ce17b6d603459 Mon Sep 17 00:00:00 2001
From: Jan Philipp Timme <jan.philipp@timme.it>
Date: Thu, 19 Dec 2019 17:28:24 +0100
Subject: [PATCH] Replace virtualenv.managed because lack of cooperation

---
 deploy/venv.sls | 53 ++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 44 insertions(+), 9 deletions(-)

diff --git a/deploy/venv.sls b/deploy/venv.sls
index 1ee6f8a..61636ab 100644
--- a/deploy/venv.sls
+++ b/deploy/venv.sls
@@ -30,14 +30,18 @@ deploy_venv_directory:
 {% for project_name, project_config in deploy.projects.items() if project_config.get('venv', False) %}
 {% set venv_config = project_config.venv %}
 
-deploy_{{ project_name }}_venv:
-  virtualenv.managed:
-    - name: {{ venv_config.path }}
-    - python: /usr/bin/python3
+create_{{ project_name }}_venv:
+  cmd.run:
+    - name: python3 -m venv {{ venv_config.path }}
+    - user: deployer
+    - require:
+        - file: deploy_venv_directory
+        - pkg: deploy_venv_pkgs
+
+upgrade_pip_in_{{ project_name }}_venv:
+  cmd.run:
+    - name: {{ venv_config.path }}/bin/pip install --upgrade pip
     - user: deployer
-    - system_site_packages: False
-    - pip_upgrade: true
-    - requirements: {{ venv_config.requirements }}
     - env_vars:
         LANG: en_US.UTF-8
         LC_CTYPE: en_US.UTF-8
@@ -45,7 +49,38 @@ deploy_{{ project_name }}_venv:
         PIP_TRUSTED_HOST: 'apt-proxy.it.hs-hannover.de'
         PIP_INDEX_URL: 'http://apt-proxy.it.hs-hannover.de:3141/root/pypi/+simple/'
     - require:
-        - file: deploy_venv_directory
-        - pkg: deploy_venv_pkgs
+        - cmd: create_{{ project_name }}_venv
+
+install_requirements_in_{{ project_name }}_venv:
+  cmd.run:
+    - name: {{ venv_config.path }}/bin/pip install -r {{ venv_config.requirements }}
+    - user: deployer
+    - env_vars:
+        LANG: en_US.UTF-8
+        LC_CTYPE: en_US.UTF-8
+        LC_ALL: en_US.UTF-8
+        PIP_TRUSTED_HOST: 'apt-proxy.it.hs-hannover.de'
+        PIP_INDEX_URL: 'http://apt-proxy.it.hs-hannover.de:3141/root/pypi/+simple/'
+    - require:
+        - cmd: upgrade_pip_in_{{ project_name }}_venv
+
+# Replaced by blocks above, kept for documentation and easy revertability by visibility.
+#deploy_{{ project_name }}_venv:
+#  virtualenv.managed:
+#    - name: {{ venv_config.path }}
+#    - python: /usr/bin/python3
+#    - user: deployer
+#    - system_site_packages: False
+#    - pip_upgrade: true
+#    - requirements: {{ venv_config.requirements }}
+#    - env_vars:
+#        LANG: en_US.UTF-8
+#        LC_CTYPE: en_US.UTF-8
+#        LC_ALL: en_US.UTF-8
+#        PIP_TRUSTED_HOST: 'apt-proxy.it.hs-hannover.de'
+#        PIP_INDEX_URL: 'http://apt-proxy.it.hs-hannover.de:3141/root/pypi/+simple/'
+#    - require:
+#        - file: deploy_venv_directory
+#        - pkg: deploy_venv_pkgs
 
 {% endfor %}
-- 
GitLab