Skip to content

Commit

Permalink
feat: check server_wide modules against all modules list
Browse files Browse the repository at this point in the history
Create a list of all modules present in the inventory and check de server_wide conf against it. Prior behaviour was to check it only against community modules.
  • Loading branch information
oyale committed Nov 18, 2022
1 parent c1f9bbf commit 84895d8
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 31 deletions.
73 changes: 43 additions & 30 deletions tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,51 @@
shell: "cd {{ odoo_role_odoo_path }} && {{ odoo_role_odoo_python_path }} setup.py install"
when: odoo_role_desired_tar_download.changed or odoo_role_desired_git_download.changed

- name: Populate community db modules
set_fact:
community_db_modules: "{{ community_db_modules | default({}) | combine ({ item : odoo_role_odoo_community_modules_dict[item] | default([]) }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Populate community shared modules
set_fact:
community_shared_modules: "{{ odoo_role_odoo_community_modules_dict['shared'] | default(odoo_role_odoo_community_modules.split(',')) }}"

- name: Join db + shared community modules
set_fact:
community_modules: "{{ community_modules | default({}) | combine ({ item : community_shared_modules + community_db_modules[item] }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Populate core db modules
set_fact:
core_db_modules: "{{ core_db_modules | default({}) | combine ({ item : odoo_role_odoo_core_modules_dict[item] | default([]) }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Populate core shared modules
set_fact:
core_shared_modules: "{{ odoo_role_odoo_core_modules_dict['shared'] | default(odoo_role_odoo_core_modules.split(',')) }}"

- name: Join db + shared core modules
set_fact:
core_modules: "{{ core_modules | default({}) | combine ({ item : core_shared_modules + core_db_modules[item] }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Join core + community modules
set_fact:
modules: "{{ modules | default([]) + item.value }}"
with_dict:
- "{{ core_modules }}"
- "{{ community_modules }}"
no_log: True

- name: Create unique list of modules
set_fact:
all_modules: "{{ modules | unique | sort }}"
when: modules is defined

- name: Check server wide configuration
import_tasks: check-role-conf.yml
import_tasks: server-wide-conf.yml
tags: ['server-wide']

- name: Add Odoo config
become: true
template:
Expand Down Expand Up @@ -173,34 +214,6 @@

- import_tasks: community-modules.yml

- name: Populate community db modules
set_fact:
community_db_modules: "{{ community_db_modules | default({}) | combine ({ item : odoo_role_odoo_community_modules_dict[item] | default([]) }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Populate community shared modules
set_fact:
community_shared_modules: "{{ odoo_role_odoo_community_modules_dict['shared'] | default(odoo_role_odoo_community_modules.split(',')) }}"

- name: Join db + shared community modules
set_fact:
community_modules: "{{ community_modules | default({}) | combine ({ item : community_shared_modules + community_db_modules[item] }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Populate core db modules
set_fact:
core_db_modules: "{{ core_db_modules | default({}) | combine ({ item : odoo_role_odoo_core_modules_dict[item] | default([]) }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Populate core shared modules
set_fact:
core_shared_modules: "{{ odoo_role_odoo_core_modules_dict['shared'] | default(odoo_role_odoo_core_modules.split(',')) }}"

- name: Join db + shared core modules
set_fact:
core_modules: "{{ core_modules | default({}) | combine ({ item : core_shared_modules + core_db_modules[item] }) }}"
with_items: "{{ odoo_role_odoo_dbs }}"

- name: Force update odoo modules
become: true
become_user: "{{ odoo_role_odoo_user }}"
Expand Down
3 changes: 2 additions & 1 deletion tasks/check-role-conf.yml → tasks/server-wide-conf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@
ansible.builtin.fail:
msg: "Role Error: {{ item }} module is configured as a server wide module but it is not present in modules dict"
with_items: "{{ odoo_role_odoo_server_wide_modules }}"
when: (item not in odoo_role_odoo_community_modules_dict['shared']) and (item != 'web') and (item != 'base')
when: (item not in all_modules)
tags: ['server-wide']

0 comments on commit 84895d8

Please sign in to comment.