Projet

Général

Profil

0002-run-chrono-and-combo-in-python3-36894.patch

Emmanuel Cazenave, 26 novembre 2019 18:59

Télécharger (14,8 ko)

Voir les différences:

Subject: [PATCH 2/2] run chrono and combo in python3 (#36894)

 clean.yml                                     |  7 ++-
 group_vars/all                                |  1 +
 install.yml                                   |  3 +-
 install_source.yml                            |  4 +-
 roles/app-setup/tasks/main.yml                |  4 +-
 .../app-setup/templates/app-settings-base.j2  |  6 +-
 roles/app-setup/templates/combo-settings.j2   |  1 -
 roles/authentic/vars/main.yml                 |  1 +
 roles/base/tasks/main.yml                     | 60 +++++++++++++++----
 roles/base/templates/getlasso.j2              |  4 +-
 roles/bijoe/vars/main.yml                     |  1 +
 roles/chrono/vars/main.yml                    |  3 +-
 roles/combo/vars/main.yml                     |  3 +-
 roles/fargo/vars/main.yml                     |  1 +
 .../templates/hobo-agent-settings.j2          | 18 ++++--
 roles/hobo/tasks/main.yml                     |  6 +-
 roles/hobo/vars/main.yml                      |  1 +
 roles/passerelle/vars/main.yml                |  1 +
 roles/wcs/vars/main.yml                       |  1 +
 roles/welco/vars/main.yml                     |  1 +
 20 files changed, 95 insertions(+), 32 deletions(-)
clean.yml
1 1
---
2 2
- hosts: local
3 3
  tasks:
4
    - name: delete venv
4
    - name: delete python venvs
5 5
      file:
6
        path: "{{venv}}"
6
        path: "{{item}}"
7 7
        state: absent
8
      loop:
9
        - "{{venv}}"
10
        - "{{venv_py3}}"
8 11

  
9 12
    - name: delete app /var/lib directory
10 13
      file:
group_vars/all
8 8
ssl_certificate: "{{venv_certs}}/dev.publik.love-fullchain.pem"
9 9
ssl_certificate_key: "{{venv_certs}}/dev.publik.love-privkey.pem"
10 10
venv: "/home/{{user}}/envs/publik-env"
11
venv_py3: "/home/{{user}}/envs/publik-env-py3"
11 12
user: your_user_name
12 13
apps:
13 14
  authentic:
install.yml
18 18
  vars:
19 19
    themes_dir: "{{venv}}/themes"
20 20
    venv_bin: "{{venv}}/bin"
21
    venv_py3_bin: "{{venv_py3}}/bin"
21 22
    venv_certs: "{{venv}}/certs"
22
    venv_pip: "{{venv_bin}}/pip"
23 23
    venv_python: "{{venv_bin}}/python"
24
    venv_py3_python: "{{venv_py3_bin}}/python"
24 25
    venv_share: "{{venv}}/share"
install_source.yml
20 20
    name: django
21 21
    version: "{{ django_version}}"
22 22
    extra_args: "-e {{ repo_dir }}"
23
    virtualenv: "{{ venv }}"
23
    virtualenv: "{{ virtualenv }}"
24 24

  
25 25
- name: "build {{ repo_dir }}"
26
  command: "{{ venv_python }} setup.py build"
26
  command: "{{ virtualenv }}/bin/python setup.py build"
27 27
  args:
28 28
    chdir: "{{ repo_dir }}"
roles/app-setup/tasks/main.yml
2 2
  set_fact:
3 3
    app_settings: "{{publik_settings}}/{{project_name}}/settings.py"
4 4
    app_settings_dir: "{{publik_settings}}/{{project_name}}"
5
    manage_app_bin: "{{venv_bin}}/{{project_name}}-manage"
5
    manage_app_bin: "{{virtualenv}}/bin/{{project_name}}-manage"
6 6
    server_app_name: "{{project_name}}"
7 7

  
8 8
- name: "{{app_name}} - create db"
......
90 90
- name: "{{app_name}} - server script"
91 91
  template:
92 92
    src: app-server.j2
93
    dest: "{{venv_bin}}/{{server_app_name}}-server"
93
    dest: "{{virtualenv}}/bin/{{server_app_name}}-server"
94 94
    mode: "u=rwx,g=rx,o=rx"
95 95
  
96 96
- name: "{{app_name}} - server log directory"
roles/app-setup/templates/app-settings-base.j2
6 6
import glob
7 7
import os
8 8

  
9
from django.utils import six
10

  
9 11
{% block app_custom_before %}{% endblock %}
10 12

  
11 13
PROJECT_NAME = "{{project_name}}"
12 14

  
13
execfile('{{src_dir}}/hobo/debian/debian_config_common.py')
15
exec(open('{{src_dir}}/hobo/debian/debian_config_common.py').read())
14 16

  
15 17
THEMES_DIRECTORY = '{{themes_dir}}'
16 18

  
......
49 51

  
50 52
for filename in sorted(
51 53
    glob.glob(os.path.join('{{app_settings_dir}}', 'settings.d', '*.py'))):
52
    execfile(filename)
54
    exec(open(filename).read())
roles/app-setup/templates/combo-settings.j2
5 5
INSTALLED_APPS = ('hobo.agent.combo', ) + INSTALLED_APPS
6 6
# add statics_hash context processor
7 7
TEMPLATES[0]['OPTIONS']['context_processors'].append('hobo.context_processors.statics_hash')
8
{% include 'middleware_class_debug_toolbar.j2' %}
9 8
{% endblock %}
roles/authentic/vars/main.yml
8 8
project_name: "{{apps['authentic']['project_name']}}"
9 9
server_port: "{{apps['authentic']['server_port']}}"
10 10
settings_env_var: AUTHENTIC2_SETTINGS_FILE
11
virtualenv: "{{venv}}"
roles/base/tasks/main.yml
41 41
  become: yes
42 42
  become_user: postgres
43 43

  
44
- name: create the virtualenv and install django
44
- name: create the virtualenvs and install django
45 45
  pip:
46 46
    name: django
47 47
    version: "{{django_version}}"
48
    virtualenv: "{{venv}}"
48
    virtualenv: "{{item.venv}}"
49
    virtualenv_python: "{{item.venv_python}}"
50
  loop:
51
    - { venv: '{{venv}}', venv_python: 'python2' }
52
    - { venv: '{{venv_py3}}', venv_python: 'python3' }
49 53

  
50 54
- name: install django-debug-toolbar
51 55
  pip:
52 56
    name: django-debug-toolbar
53
    virtualenv: "{{venv}}"
57
    virtualenv: "{{item}}"
58
  loop:
59
    - "{{venv}}"
60
    - "{{venv_py3}}"
54 61

  
55 62
- name: "create {{src_dir}} directory"
56 63
  file:
......
79 86
    path: "{{publik_settings}}"
80 87
    state: directory
81 88

  
82
- name: create getlasso script
89
- name: create getlasso scripts
83 90
  template:
84 91
    src: getlasso.j2
85
    dest: "{{venv_bin}}/getlasso.sh"
92
    dest: "{{item.dest}}/getlasso.sh"
86 93
    mode: "u=rwx,g=rx,o=rx"
94
  vars:
95
    virtualenv_python: "{{item.vp}}"
96
    system_python: "{{item.sp}}"
97
  loop:
98
    - { vp: '{{venv_python}}', sp: '/usr/bin/python', dest: '{{venv_bin}}' }
99
    - { vp: '{{venv_py3_python}}', sp: '/usr/bin/python3', dest: '{{venv_py3_bin}}' }
87 100

  
88 101
- name: execute getlasso
89
  command: "{{venv_bin}}/getlasso.sh"
102
  command: "{{item}}/getlasso.sh"
103
  loop:
104
    - "{{venv_bin}}"
105
    - "{{venv_py3_bin}}"
90 106

  
91 107
- name: source install eopayment
92
  import_tasks: install_source.yml
108
  include_tasks: install_source.yml
93 109
  vars:
94 110
    repo: "eopayment"
95 111
    repo_dir: "{{ src_dir }}/eopayment"
112
    virtualenv: "{{venv_py3}}"
96 113

  
97 114
- name: source install django-tenant-schemas
98
  import_tasks: install_source.yml
115
  include_tasks: install_source.yml
99 116
  vars:
100 117
    repo: "debian/django-tenant-schemas"
101 118
    repo_dir: "{{ src_dir }}/django-tenant-schemas"
119
    virtualenv: "{{item}}"
120
  loop:
121
    - "{{venv}}"
122
    - "{{venv_py3}}"
102 123

  
103 124
- name: source install django-mellon
104
  import_tasks: install_source.yml
125
  include_tasks: install_source.yml
105 126
  vars:
106 127
    repo: "django-mellon"
107 128
    repo_dir: "{{ src_dir }}/django-mellon"
129
    virtualenv: "{{item}}"
130
  loop:
131
    - "{{venv}}"
132
    - "{{venv_py3}}"
108 133

  
109 134
- name: source install gadjo
110
  import_tasks: install_source.yml
135
  include_tasks: install_source.yml
111 136
  vars:
112 137
    repo: "gadjo"
113 138
    repo_dir: "{{ src_dir }}/gadjo"
139
    virtualenv: "{{item}}"
140
  loop:
141
    - "{{venv}}"
142
    - "{{venv_py3}}"
114 143

  
115 144
- name: install python-memcached
116 145
  pip:
117 146
    name: python-memcached
118
    virtualenv: "{{venv}}"
147
    virtualenv: "{{item}}"
148
  loop:
149
    - "{{venv}}"
150
    - "{{venv_py3}}"
119 151

  
120 152
- name: source install django-ckeditor
121
  import_tasks: install_source.yml
153
  include_tasks: install_source.yml
122 154
  vars:
123 155
    repo: "debian/django-ckeditor"
124 156
    repo_dir: "{{ src_dir }}/django-ckeditor"
157
    virtualenv: "{{item}}"
158
  loop:
159
    - "{{venv}}"
160
    - "{{venv_py3}}"
125 161

  
126 162
- name: install theme
127 163
  import_tasks: tasks/install_theme.yml
roles/base/templates/getlasso.j2
1 1
#!/bin/sh
2 2

  
3 3
# Get venv site-packages path
4
DSTDIR=`{{venv_python}} -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'`
4
DSTDIR=`{{virtualenv_python}} -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'`
5 5

  
6
SRCDIR=`/usr/bin/python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'`
6
SRCDIR=`{{system_python}} -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'`
7 7

  
8 8
# Clean up
9 9
rm -f $DSTDIR/lasso.*
roles/bijoe/vars/main.yml
8 8
project_name: "{{apps['bijoe']['project_name']}}"
9 9
server_port: "{{apps['bijoe']['server_port']}}"
10 10
settings_env_var: BIJOE_SETTINGS_FILE
11
virtualenv: "{{venv}}"
roles/chrono/vars/main.yml
2 2
compile_scss: false
3 3
compile_translations: true
4 4
db_name: "{{apps['chrono']['db_name']}}"
5
manage_cmd: "{{venv_python}} {{src_dir}}/chrono/manage.py"
5
manage_cmd: "{{venv_py3_python}} {{src_dir}}/chrono/manage.py"
6 6
nginx_host_pattern: "{{apps['chrono']['nginx_host_pattern']}}"
7 7
nginx_template_name: "chrono-nginx-server.j2"
8 8
project_name: "{{apps['chrono']['project_name']}}"
9 9
server_port: "{{apps['chrono']['server_port']}}"
10 10
settings_env_var: CHRONO_SETTINGS_FILE
11
virtualenv: "{{venv_py3}}"
roles/combo/vars/main.yml
2 2
compile_scss: false
3 3
compile_translations: true
4 4
db_name: "{{apps['combo']['db_name']}}"
5
manage_cmd: "{{venv_python}} {{src_dir}}/combo/manage.py"
5
manage_cmd: "{{venv_py3_python}} {{src_dir}}/combo/manage.py"
6 6
nginx_host_pattern: "{{apps['combo']['nginx_host_pattern']}}"
7 7
nginx_template_name: "std-nginx-server.j2"
8 8
project_name: "{{apps['combo']['project_name']}}"
9 9
server_port: "{{apps['combo']['server_port']}}"
10 10
settings_env_var: COMBO_SETTINGS_FILE
11
virtualenv: "{{venv_py3}}"
roles/fargo/vars/main.yml
8 8
project_name: "{{apps['fargo']['project_name']}}"
9 9
server_port: "{{apps['fargo']['server_port']}}"
10 10
settings_env_var: FARGO_SETTINGS_FILE
11
virtualenv: "{{venv}}"
roles/hobo-agent/templates/hobo-agent-settings.j2
1
#jinja2: lstrip_blocks: True, trim_blocks: True
1 2
BROKER_URL = 'amqp://'
2 3

  
3 4

  
......
8 9
}
9 10

  
10 11
{% for appkey, app in apps.items() %}
11
{% if appkey != 'wcs' %}
12
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND = "{{venv_bin}}/{{app['project_name']}}-manage"
13
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_TRY_COMMAND = {% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND
14
{% else %}
12
  {% if appkey == 'wcs' %}
15 13
WCS_MANAGE_COMMAND = "{{venv_bin}}/wcsctl.py -f {{publik_settings}}/wcs/wcs.cfg"
16 14
WCS_MANAGE_TRY_COMMAND = "{{venv_bin}}/wcsctl.py"
17
{% endif %}
15
  {% else %}
16
    {% if appkey in ('combo', 'chrono') %}
17
    {# applications en python3 #}
18
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND = "{{venv_py3_bin}}/{{app['project_name']}}-manage"
19
    {% else %}
20
    {# cas général, applications Django toutjours en python2, devra disparaître #}
21
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND = "{{venv_bin}}/{{app['project_name']}}-manage"
22
    {% endif %}
23
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_TRY_COMMAND = {% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND
24
   {% endif %}
25

  
18 26
{% endfor %}
roles/hobo/tasks/main.yml
1 1
- name: source install hobo
2
  import_tasks: install_source.yml
2
  include_tasks: install_source.yml
3 3
  vars:
4 4
    repo: "hobo"
5 5
    repo_dir: "{{ src_dir }}/hobo"
6
    virtualenv: "{{item}}"
7
  loop:
8
    - "{{venv}}"
9
    - "{{venv_py3}}"
6 10

  
7 11
- name: hobo app setup
8 12
  import_role:
roles/hobo/vars/main.yml
8 8
project_name: "{{apps['hobo']['project_name']}}"
9 9
server_port: "{{apps['hobo']['server_port']}}"
10 10
settings_env_var: HOBO_SETTINGS_FILE
11
virtualenv: "{{venv}}"
roles/passerelle/vars/main.yml
8 8
project_name: "{{apps['passerelle']['project_name']}}"
9 9
server_port: "{{apps['passerelle']['server_port']}}"
10 10
settings_env_var: PASSERELLE_SETTINGS_FILE
11
virtualenv: "{{venv}}"
roles/wcs/vars/main.yml
9 9
project_name: "{{apps['wcs']['project_name']}}"
10 10
server_port: "{{apps['wcs']['server_port']}}"
11 11
settings_env_var: WCS_SETTINGS_FILE
12
virtualenv: "{{venv}}"
roles/welco/vars/main.yml
8 8
project_name: "{{apps['welco']['project_name']}}"
9 9
server_port: "{{apps['welco']['server_port']}}"
10 10
settings_env_var: WELCO_SETTINGS_FILE
11
virtualenv: "{{venv}}"
11
-