Projet

Général

Profil

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

Emmanuel Cazenave, 19 novembre 2018 15:21

Télécharger (7,34 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

  
......
9 10
    name: "{{db_name}}"
10 11
    owner: "{{user}}"
11 12

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

  
20 13
- name: "{{app_name}} - /var/lib directory"
21 14
  file:
22 15
    path: "/var/lib/{{project_name}}"
......
52 45
    executable: /bin/bash
53 46
  become: yes
54 47

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

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

  
55 62
- name: "{{app_name}} - settings file"
56 63
  template:
57 64
    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
52 52
    path: "{{venv_share}}"
53 53
    state: directory
54 54

  
55
- name: "create conf directory"
56
  file:
57
    path: "{{publik_conf}}"
58
    state: directory
59

  
60
- name: "create settings directory"
61
  file:
62
    path: "{{publik_settings}}"
63
    state: directory
64

  
55 65
- name: create getlasso script
56 66
  template:
57 67
    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
-