From 2a39d2033e605a6bc8567dca27a32fb266d80343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com>
Date: Thu, 9 Mar 2023 11:02:18 +0100
Subject: [PATCH] [ADD] parameter websocket_uri (changed in v16)

---
 defaults/main.yml      | 5 ++++-
 templates/prod.yaml.j2 | 6 +++---
 templates/test.yaml.j2 | 6 +++---
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/defaults/main.yml b/defaults/main.yml
index d9b7fce..b4ef05d 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -4,7 +4,10 @@
 ## Odoo PostgreSQL version
 odoo_db_version: '13'
 ## Odoo version
-odoo_version: '14.0'
+odoo_version: '16.0'
+
+## Odoo websocket URI (websocket from 16.0 onwards, longpolling before)
+websocket_uri: 'websocket'
 
 ## Custom modules default URL for retrieving custom modules :
 custom_modules_base_url: "https://sources.le-filament.com/lefilament"
diff --git a/templates/prod.yaml.j2 b/templates/prod.yaml.j2
index fafe33f..dd2eeef 100644
--- a/templates/prod.yaml.j2
+++ b/templates/prod.yaml.j2
@@ -46,9 +46,9 @@ services:
             co.elastic.logs/multiline.match: "after"
             traefik.enable: "true"
 {% if ansible_processor_vcpus > 2 or odoo_prod.force_odoo_workers is defined %}
-            traefik.http.routers.odoo-longpolling.rule: "Host(`{{ odoo_prod.url }}`{% if odoo_prod.url2 is defined %}, `{{ odoo_prod.url2 }}`{% endif %}) && PathPrefix(`/longpolling/`)"
-            traefik.http.routers.odoo-longpolling.service: "odoo-longpolling"
-            traefik.http.services.odoo-longpolling.loadbalancer.server.port: "8072"
+            traefik.http.routers.odoo-{{ websocket_uri }}.rule: "Host(`{{ odoo_prod.url }}`{% if odoo_prod.url2 is defined %}, `{{ odoo_prod.url2 }}`{% endif %}) && PathPrefix(`/{{ websocket_uri }}/`)"
+            traefik.http.routers.odoo-{{ websocket_uri }}.service: "odoo-{{ websocket_uri }}"
+            traefik.http.services.odoo-{{ websocket_uri }}.loadbalancer.server.port: "8072"
 {% endif %}
             traefik.http.routers.odoo-restrict.middlewares: "auth@file"
             traefik.http.routers.odoo-restrict.rule: "Host(`{{ odoo_prod.url }}`{% if odoo_prod.url2 is defined %}, `{{ odoo_prod.url2 }}`{% endif %}) && Path(`/website/info`, `/web/database/{p:manager|create|duplicate|drop|backup|restore|change_password}`)"
diff --git a/templates/test.yaml.j2 b/templates/test.yaml.j2
index 2be7180..945f872 100644
--- a/templates/test.yaml.j2
+++ b/templates/test.yaml.j2
@@ -36,9 +36,9 @@ services:
             co.elastic.logs/enabled: "false"
             traefik.enable: "true"
 {% if ansible_processor_vcpus > 2 or item.force_odoo_workers is defined %}
-            traefik.http.routers.{{ item.dir }}-longpolling.rule: "Host(`{{ item.url }}`) && PathPrefix(`/longpolling/`)"
-            traefik.http.routers.{{ item.dir }}-longpolling.service: "{{ item.dir }}-longpolling"
-            traefik.http.services.{{ item.dir }}-longpolling.loadbalancer.server.port: "8072"
+            traefik.http.routers.{{ item.dir }}-{{ websocket_uri }}.rule: "Host(`{{ item.url }}`) && PathPrefix(`/{{ websocket_uri }}/`)"
+            traefik.http.routers.{{ item.dir }}-{{ websocket_uri }}.service: "{{ item.dir }}-{{ websocket_uri }}"
+            traefik.http.services.{{ item.dir }}-{{ websocket_uri }}.loadbalancer.server.port: "8072"
 {% endif %}
             traefik.http.routers.{{ item.dir }}-restrict.middlewares: "auth@file"
             traefik.http.routers.{{ item.dir }}-restrict.rule: "Host(`{{ item.url }}`) && Path(`/website/info`, `/web/database/{p:manager|create|duplicate|drop|backup|restore|change_password}`)"
-- 
GitLab