Skip to content

Commit b931153

Browse files
committed
feat: enable server_wide_modules
1 parent 61e8b2e commit b931153

File tree

5 files changed

+55
-7
lines changed

5 files changed

+55
-7
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,17 @@ odoo_role_enable_queue_job: true
155155
156156
This option add to the Odoo configuration file the option to enable queue\_job as a new thread/process: https://github.com/OCA/queue/blob/12.0/queue\_job/README.rst#id12
157157
158+
* Server-wide modules
159+
160+
If you need to install some wide-server modules apart from `db_filter` and `queue_job`, use:
161+
```yaml
162+
odoo_role_odoo_server_wide_modules: ['module1', 'module2']
163+
```
164+
165+
By default, it configures as a server-wide modules `web` and `base` -as long as they are mandatory from Odoo v12- in every case and `db_filter` and `queue_job` if the corresponding variables are set to `true` .
166+
167+
* Workers configuration
168+
158169
You can also define how many workers you want to use to execute the jobs:
159170
```yaml
160171
odoo_role_channels: root:2

defaults/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ odoo_role_enabled_rest_framework: false
7676
odoo_role_enable_queue_job: false
7777
# Support for Dbfilter From Header https://github.com/OCA/server-tools/tree/12.0/dbfilter_from_header
7878
odoo_role_enable_dbfilter_from_header: false
79+
# Support for loading system-wide modules
80+
odoo_role_odoo_server_wide_modules: ["base","web"]
7981

8082
# Customize the Odoo timeouts
8183
odoo_role_limit_time_cpu: 60

tasks/check-role-conf.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
- name: Generate server wide modules configuration (db_filter_from_header)
3+
set_fact:
4+
odoo_role_odoo_server_wide_modules: "{{ odoo_role_odoo_server_wide_modules + ['dbfilter_from_header'] }}"
5+
when: odoo_role_enable_dbfilter_from_header | bool
6+
tags: ['server-wide']
7+
8+
- name: Generate server wide modules configuration (queue_job)
9+
set_fact:
10+
odoo_role_odoo_server_wide_modules: "{{ odoo_role_odoo_server_wide_modules + ['queue_job'] }}"
11+
when: odoo_role_enable_queue_job | bool
12+
tags: ['server-wide']
13+
14+
- name: Check requirements for db_filter (odoo_role_channels)
15+
ansible.builtin.fail:
16+
msg: "Role Error: odoo_role_channels var is needed when queue_job is activated" # not required. The customized message that is printed. If omitted, prints a generic message.
17+
when: odoo_role_enable_dbfilter_from_header | bool and odoo_role_channels is not defined
18+
tags: ['server-wide']
19+
20+
- name: Extract databases from modules_dict
21+
ansible.builtin.set_fact:
22+
odoo_role_database_plugins: "{{ odoo_role_database_plugins | default([]) + [ item ] }}"
23+
with_items: "{{ odoo_role_odoo_community_modules_dict }}"
24+
tags: ['server-wide']
25+
26+
- name: Check if server_wide modules are declared
27+
ansible.builtin.set_fact:
28+
odoo_role_all_plugins: "{{ odoo_role_all_plugins | default([]) + [ odoo_role_odoo_community_modules_dict[item] ] | flatten }}"
29+
with_items: "{{ odoo_role_database_plugins }}"
30+
tags: ['server-wide']
31+
32+
- name: Require server_wide_modules to be declared
33+
ansible.builtin.fail:
34+
msg: "Role Error: odoo_role_odoo_server_wide_modules are declared but not present on odoo_role_odoo_community_modules_dict"
35+
with_items: "{{ odoo_role_odoo_server_wide_modules }}"
36+
when: (item not in odoo_role_all_plugins) and (item != 'base' and item != 'web')
37+
tags: ['server-wide']

tasks/main.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@
125125
shell: "cd {{ odoo_role_odoo_path }} && {{ odoo_role_odoo_python_path }} setup.py install"
126126
when: odoo_role_desired_tar_download.changed or odoo_role_desired_git_download.changed
127127

128+
- name: Check server wide configuration
129+
import_tasks: check-role-conf.yml
130+
tags: ['server-wide']
131+
128132
- name: Add Odoo config
129133
become: true
130134
template:

templates/odoo.conf.j2

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@
44
logfile = {{ odoo_role_odoo_log_path }}/odoo.log
55
{% endif %}
66
log_level = {{ odoo_role_odoo_log_level }}
7-
{% if odoo_role_enable_queue_job and not odoo_role_enable_dbfilter_from_header %}
8-
server_wide_modules = web,queue_job
9-
{% elif not odoo_role_enable_queue_job and odoo_role_enable_dbfilter_from_header %}
10-
server_wide_modules = web,dbfilter_from_header
11-
{% elif odoo_role_enable_queue_job and odoo_role_enable_dbfilter_from_header %}
12-
server_wide_modules = web,dbfilter_from_header,queue_job
13-
{% endif %}
7+
server_wide_modules = {{ odoo_role_odoo_server_wide_modules | join(',') }}
148
; Custom Modules
159
addons_path = {{ odoo_role_odoo_modules_path }}, {{ odoo_role_odoo_path }}/addons
1610

0 commit comments

Comments
 (0)