Projet

Général

Profil

0001-store-settings-file-in-.config-publik-24505.patch

Emmanuel Cazenave, 27 novembre 2018 18:19

Télécharger (7,33 ko)

Voir les différences:

Subject: [PATCH] store settings file in ~/.config/publik (#24505)

And allow additional user config in settings.d
sub directories.
 deploy-tenants.yml                            |  1 -
 group_vars/all                                |  2 ++
 install.yml                                   |  1 -
 roles/app-setup/tasks/main.yml                | 25 ++++++++++++-------
 .../app-setup/templates/app-settings-base.j2  |  7 ++++++
 roles/app-setup/templates/wcs-settings.j2     |  2 +-
 roles/base/tasks/main.yml                     | 10 ++++++++
 roles/hobo-agent/tasks/main.yml               | 10 +++++++-
 .../templates/hobo-agent-settings.j2          |  4 +--
 roles/wcs/tasks/main.yml                      | 20 +++++++++++----
 10 files changed, 62 insertions(+), 20 deletions(-)
deploy-tenants.yml
6 6
    - deploy-tenants
7 7
  vars:
8 8
    venv_bin: "{{venv}}/bin"
9
    venv_conf: "{{venv}}/conf"
group_vars/all
2 2
django_version: 1.11.15
3 3
git_ssh: false
4 4
clone_repo: true
5
publik_conf: "/home/{{user}}/.config/publik"
6
publik_settings: "{{publik_conf}}/settings"
5 7
src_dir: "/home/{{user}}/src"
6 8
ssl_certificate: "{{venv_certs}}/dev.publik.love-fullchain.pem"
7 9
ssl_certificate_key: "{{venv_certs}}/dev.publik.love-privkey.pem"
install.yml
19 19
    themes_dir: "{{venv}}/themes"
20 20
    venv_bin: "{{venv}}/bin"
21 21
    venv_certs: "{{venv}}/certs"
22
    venv_conf: "{{venv}}/conf"
23 22
    venv_pip: "{{venv_bin}}/pip"
24 23
    venv_python: "{{venv_bin}}/python"
25 24
    venv_share: "{{venv}}/share"
roles/app-setup/tasks/main.yml
1 1
- name: set ansible server variables
2 2
  set_fact:
3
    app_settings: "{{venv_conf}}/{{db_name}}_settings.py"
3
    app_settings: "{{publik_settings}}/{{project_name}}/settings.py"
4
    app_settings_dir: "{{publik_settings}}/{{project_name}}"
4 5
    manage_app_bin: "{{venv_bin}}/{{project_name}}-manage"
5 6
    server_app_name: "{{project_name}}-server"
6 7

  
......
11 12
  become: yes
12 13
  become_user: postgres
13 14

  
14
- name: "{{app_name}} - conf directory"
15
  file:
16
    path: "{{venv_conf}}"
17
    state: directory
18
    owner: "{{user}}"
19
    group: "{{user}}"
20
  become: yes
21

  
22 15
- name: "{{app_name}} - /var/lib directory"
23 16
  file:
24 17
    path: "/var/lib/{{project_name}}"
......
54 47
    executable: /bin/bash
55 48
  become: yes
56 49

  
50
- name: "settings directory"
51
  file:
52
    path: "{{app_settings_dir}}"
53
    state: directory
54
    owner: "{{user}}"
55
    group: "{{user}}"
56

  
57
- name: "settings.d directory"
58
  file:
59
    path: "{{app_settings_dir}}/settings.d"
60
    state: directory
61
    owner: "{{user}}"
62
    group: "{{user}}"
63

  
57 64
- name: "{{app_name}} - settings file"
58 65
  template:
59 66
    src: "{{app_name}}-settings.j2"
roles/app-setup/templates/app-settings-base.j2
1 1
# This file is sourced by "execfile" from hobo.settings
2
# Don't modify this file, it will be overwritten if you update your
3
# publik installation.
4
# Custom settings should be declared in *.py file under the settings.d directory
2 5

  
6
import glob
3 7
import os
4 8

  
5 9
{% block app_custom_before %}{% endblock %}
......
43 47

  
44 48
{% block app_custom_after %}{% endblock %}
45 49

  
50
for filename in sorted(
51
    glob.glob(os.path.join('{{app_settings_dir}}', 'settings.d', '*.py'))):
52
    execfile(filename)
roles/app-setup/templates/wcs-settings.j2
27 27
#     }
28 28
# }
29 29

  
30
WCS_LEGACY_CONFIG_FILE = '{{venv_conf}}/wcs.cfg'
30
WCS_LEGACY_CONFIG_FILE = '{{app_settings_dir}}/wcs.cfg'
31 31
WCS_EXTRA_MODULES = ['{{src_dir}}/auquotidien/auquotidien']
32 32

  
33 33
{% endblock %}
roles/base/tasks/main.yml
56 56
    path: "{{venv_share}}"
57 57
    state: directory
58 58

  
59
- name: "create conf directory"
60
  file:
61
    path: "{{publik_conf}}"
62
    state: directory
63

  
64
- name: "create settings directory"
65
  file:
66
    path: "{{publik_settings}}"
67
    state: directory
68

  
59 69
- name: create getlasso script
60 70
  template:
61 71
    src: getlasso.j2
roles/hobo-agent/tasks/main.yml
2 2
  set_fact:
3 3
    agent_dash_name: "hobo-agent"
4 4
    agent_dot_name: "hobo.agent"
5
    agent_settings: "{{venv_conf}}/hobo_agent_settings.py"
5
    agent_settings: "{{publik_settings}}/hobo-agent/settings.py"
6
    app_settings_dir: "{{publik_settings}}/hobo-agent"
6 7

  
7 8
- name: create hobo agent log directory
8 9
  file:
......
12 13
    group: "{{user}}"
13 14
  become: yes
14 15

  
16
- name: "settings directory"
17
  file:
18
    path: "{{app_settings_dir}}"
19
    state: directory
20
    owner: "{{user}}"
21
    group: "{{user}}"
22

  
15 23
- name: hobo agent settings file
16 24
  template:
17 25
    src: hobo-agent-settings.j2
roles/hobo-agent/templates/hobo-agent-settings.j2
12 12
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND = "{{venv_bin}}/{{app['project_name']}}-manage"
13 13
{% filter upper %}{{appkey}}{% endfilter %}_MANAGE_TRY_COMMAND = {% filter upper %}{{appkey}}{% endfilter %}_MANAGE_COMMAND
14 14
{% else %}
15
WCS_MANAGE_COMMAND = "{{venv_bin}}/wcsctl.py -f {{venv_conf}}/wcs.cfg"
15
WCS_MANAGE_COMMAND = "{{venv_bin}}/wcsctl.py -f {{publik_settings}}/wcs/wcs.cfg"
16 16
WCS_MANAGE_TRY_COMMAND = "{{venv_bin}}/wcsctl.py"
17 17
{% endif %}
18
{% endfor %}
18
{% endfor %}
roles/wcs/tasks/main.yml
27 27
    path: "{{venv_share}}/{{app_name}}"
28 28
    state: directory
29 29

  
30
- name: "settings directory"
31
  file:
32
    path: "{{publik_settings}}/{{project_name}}"
33
    state: directory
34
    owner: "{{user}}"
35
    group: "{{user}}"
36

  
37
- name: "settings.d directory"
38
  file:
39
    path: "{{publik_settings}}/{{project_name}}/settings.d"
40
    state: directory
41
    owner: "{{user}}"
42
    group: "{{user}}"
43

  
30 44
- name: wcs.cfg
31 45
  template:
32 46
    src: wcs.cfg
33
    dest: "{{venv_conf}}/wcs.cfg"
34

  
35
- name: wcs app setup
36
  import_role:
37
    name: app-setup
47
    dest: "{{publik_settings}}/{{app_name}}/wcs.cfg"
38 48

  
39 49
- name: wcs app setup
40 50
  import_role:
41
-