From 7682f2fb5b3dd37c0ad9b079f59e541b0c4d734b Mon Sep 17 00:00:00 2001
From: Clark Boylan <clark.boylan@gmail.com>
Date: Tue, 19 Nov 2024 14:09:13 -0800
Subject: [PATCH] Cap the ansible version used by ansible-lint

the openvswitch.openvswitch collection is removed from Ansible packages
starting with Ansible 11. This causes ansible-lint to correctly not find
the openvswitch_bridge module when ansible-lint runs with Ansible 11.
Workaround this by capping Ansible used by ansible-lint to <10 and leave
a note about the module going away where we use it.

Change-Id: Id2d4e4f59c7d7e595c5458bc8717146c2326c573
---
 linters-requirements.txt                        | 2 +-
 roles/multi-node-bridge/tasks/peer.yaml         | 1 +
 roles/multi-node-bridge/tasks/switch.yaml       | 1 +
 test-playbooks/multinode/multi-node-bridge.yaml | 1 +
 4 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/linters-requirements.txt b/linters-requirements.txt
index 085280022..fe9ba2b93 100644
--- a/linters-requirements.txt
+++ b/linters-requirements.txt
@@ -1,6 +1,6 @@
 # linters have different requirements than test ones, some would
 # conflict, like ansible version required by ansible-lint.
-ansible>=2.12.0  # required by ansible-lint
+ansible>=2.12.0,<10  # required by ansible-lint
 flake8
 yamllint>=1.23.0
 # 6.5.0 : https://github.com/ansible/ansible-lint/issues/2330
diff --git a/roles/multi-node-bridge/tasks/peer.yaml b/roles/multi-node-bridge/tasks/peer.yaml
index af379b453..61d648f9c 100644
--- a/roles/multi-node-bridge/tasks/peer.yaml
+++ b/roles/multi-node-bridge/tasks/peer.yaml
@@ -47,6 +47,7 @@
 
 - name: Create bridge on peer node
   become: yes
+  # TODO Ansible 11 removes this module
   openvswitch_bridge:
     bridge: "{{ bridge_name }}"
 
diff --git a/roles/multi-node-bridge/tasks/switch.yaml b/roles/multi-node-bridge/tasks/switch.yaml
index 24891887a..8b67adb4f 100644
--- a/roles/multi-node-bridge/tasks/switch.yaml
+++ b/roles/multi-node-bridge/tasks/switch.yaml
@@ -1,5 +1,6 @@
 - name: Ensure the bridge exists
   become: yes
+  # TODO Ansible 11 removes this module
   openvswitch_bridge:
     bridge: "{{ bridge_name }}"
 
diff --git a/test-playbooks/multinode/multi-node-bridge.yaml b/test-playbooks/multinode/multi-node-bridge.yaml
index f408e5659..3aa26aa0a 100644
--- a/test-playbooks/multinode/multi-node-bridge.yaml
+++ b/test-playbooks/multinode/multi-node-bridge.yaml
@@ -22,6 +22,7 @@
           register: ovs_running
 
         - name: bridge should exist
+          # TODO this ansible collection and module are removed in Ansible 11
           openvswitch_bridge:
             bridge: "{{ bridge_name }}"
           register: ovs_bridge