From 84895d89bb224e235f0d6a4f03cb7976a382c0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pelayo=20Garc=C3=ADa?= Date: Fri, 18 Nov 2022 17:19:56 +0100 Subject: [PATCH] feat: check server_wide modules against all modules list 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. --- tasks/main.yml | 73 +++++++++++-------- ...eck-role-conf.yml => server-wide-conf.yml} | 3 +- 2 files changed, 45 insertions(+), 31 deletions(-) rename tasks/{check-role-conf.yml => server-wide-conf.yml} (91%) diff --git a/tasks/main.yml b/tasks/main.yml index 650677e..ceadd90 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -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: @@ -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 }}" diff --git a/tasks/check-role-conf.yml b/tasks/server-wide-conf.yml similarity index 91% rename from tasks/check-role-conf.yml rename to tasks/server-wide-conf.yml index 48cc0f7..d025646 100644 --- a/tasks/check-role-conf.yml +++ b/tasks/server-wide-conf.yml @@ -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']