From bc71caf7b82fcee1522d40873b785f8efc202693 Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 05:35:14 +0100 Subject: [PATCH 1/7] issue #107 - implemented legacy test for vlans --- test/test.yml | 4 ++++ test/vlans-test-legacy-expect.xml | 19 +++++++++++++++++++ test/vlans-test-legacy.yml | 13 +++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 test/vlans-test-legacy-expect.xml create mode 100644 test/vlans-test-legacy.yml diff --git a/test/test.yml b/test/test.yml index b8d5e26..969c5e3 100644 --- a/test/test.yml +++ b/test/test.yml @@ -38,6 +38,9 @@ - name: nut restart debug: msg: fake handler - nut restart + - name: reconfigure vlans + debug: + msg: fake handler - reconfigure vlans tasks: - name: include default vars ansible.builtin.include_vars: @@ -51,6 +54,7 @@ - general - filter - alias + - vlans - gateways - wireguard - ipsec diff --git a/test/vlans-test-legacy-expect.xml b/test/vlans-test-legacy-expect.xml new file mode 100644 index 0000000..bf64df6 --- /dev/null +++ b/test/vlans-test-legacy-expect.xml @@ -0,0 +1,19 @@ + + + + + + + 110 + 110_USR + lagg1 + lagg1_vlan110 + + + 220 + 220_SRV + lagg2 + lagg2_vlan220 + + + diff --git a/test/vlans-test-legacy.yml b/test/vlans-test-legacy.yml new file mode 100644 index 0000000..8255cb8 --- /dev/null +++ b/test/vlans-test-legacy.yml @@ -0,0 +1,13 @@ +--- + +opn_vlans: + - tag: 110 + vlan_parent_interface: lagg1 + settings: + - key: descr + value: 110_USR + - tag: 220 + vlan_parent_interface: lagg2 + settings: + - key: descr + value: 220_SRV From 2bc1ceedd84169ae5140ce91dcb4c626e11102f9 Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 11:01:46 +0100 Subject: [PATCH 2/7] issue #107 - renamed vlans task to vlando --- tasks/{vlans.yml => vlansdo.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tasks/{vlans.yml => vlansdo.yml} (100%) diff --git a/tasks/vlans.yml b/tasks/vlansdo.yml similarity index 100% rename from tasks/vlans.yml rename to tasks/vlansdo.yml From e31cd6ef7bf0344d8633d329cf8a36540afd3b04 Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 11:03:02 +0100 Subject: [PATCH 3/7] issue #107 - refactored vlan tasks --- tasks/vlans.yml | 25 +++++++++++++++++++++++++ tasks/vlansdo.yml | 26 +++++++++++--------------- 2 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 tasks/vlans.yml diff --git a/tasks/vlans.yml b/tasks/vlans.yml new file mode 100644 index 0000000..c4b4611 --- /dev/null +++ b/tasks/vlans.yml @@ -0,0 +1,25 @@ +--- +# example: +# opn_vlans: +# - tag: 110 +# uuid: ... # uuid definition is optional but recommended +# vlan_parent_interface: lagg1 +# settings: +# - key: descr +# value: 110_USR +# - tag: 220 +# vlan_parent_interface: lagg2 +# settings: +# - key: descr +# value: 220_SRV +# +# if uuid is not defined, the tag is used to generate a uuid + +- name: vlans - process vlans + ansible.builtin.include_tasks: vlansdo.yml + with_items: + - "{{ opn_vlans }}" + loop_control: + label: "{{ _vlan.tag }}" + loop_var: _vlan + diff --git a/tasks/vlansdo.yml b/tasks/vlansdo.yml index 2f481e1..d868ee9 100644 --- a/tasks/vlansdo.yml +++ b/tasks/vlansdo.yml @@ -4,36 +4,32 @@ delegate_to: localhost community.general.xml: path: "{{ local_config_path }}" - xpath: "/opnsense/vlans/vlan[tag/text()='{{ item.0.tag }}']/{{ item.1.key }}" - value: "{{ item.1.value }}" + xpath: "/opnsense/vlans/vlan[tag/text()='{{ _vlan.tag }}']/{{ _vlansettings.key }}" + value: "{{ _vlansettings.value }}" pretty_print: true notify: reconfigure vlans - with_subelements: - - "{{ opn_vlans }}" - - settings + with_items: + - "{{ _vlan.settings }}" + loop_control: + label: "{{ _vlan.tag }} {{ _vlansettings.key }}" + loop_var: _vlansettings - name: vlans - setting if delegate_to: localhost community.general.xml: path: "{{ local_config_path }}" - xpath: "/opnsense/vlans/vlan[tag/text()='{{ item.0.tag }}']/if" - value: "{{ item.0.vlan_parent_interface | default(opn_interfaces_vlan_parent_interface) }}" + xpath: "/opnsense/vlans/vlan[tag/text()='{{ _vlan.tag }}']/if" + value: "{{ _vlan.vlan_parent_interface | default(opn_interfaces_vlan_parent_interface) }}" pretty_print: true notify: reconfigure vlans - with_subelements: - - "{{ opn_vlans }}" - - settings - name: vlans - setting vlanif delegate_to: localhost community.general.xml: path: "{{ local_config_path }}" - xpath: "/opnsense/vlans/vlan[tag/text()='{{ item.0.tag }}']/vlanif" - value: "{{ item.0.vlan_parent_interface | default(opn_interfaces_vlan_parent_interface) }}_vlan{{ item.0.tag }}" + xpath: "/opnsense/vlans/vlan[tag/text()='{{ _vlan.tag }}']/vlanif" + value: "{{ _vlan.vlan_parent_interface | default(opn_interfaces_vlan_parent_interface) }}_vlan{{ _vlan.tag }}" pretty_print: true notify: reconfigure vlans - with_subelements: - - "{{ opn_vlans }}" - - settings ... From 90db078f4226cfdec680d82fd0d5353045c87e4c Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 17:51:26 +0100 Subject: [PATCH 4/7] issue #107 - implemented uuid handling in vlans task --- tasks/vlansdo.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tasks/vlansdo.yml b/tasks/vlansdo.yml index d868ee9..5212970 100644 --- a/tasks/vlansdo.yml +++ b/tasks/vlansdo.yml @@ -32,4 +32,18 @@ pretty_print: true notify: reconfigure vlans +- name: vlans - define uuid + ansible.builtin.set_fact: + _uuid: "{{ _vlan.uuid | default(_vlan.tag | to_uuid) }}" + +- name: vlans - set uuid + delegate_to: localhost + community.general.xml: + path: "{{ local_config_path }}" + xpath: "/opnsense/vlans/vlan[tag/text()='{{ _vlan.tag }}']" + attribute: uuid + value: "{{ _uuid }}" + pretty_print: true + notify: reconfigure vlans + ... From d00edeaae2852321e26badc60270dd120e6bef1a Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 20:02:53 +0100 Subject: [PATCH 5/7] issue #107 - adjust vlan legacy test with generated uuid's --- test/vlans-test-legacy-expect.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/vlans-test-legacy-expect.xml b/test/vlans-test-legacy-expect.xml index bf64df6..d035a9e 100644 --- a/test/vlans-test-legacy-expect.xml +++ b/test/vlans-test-legacy-expect.xml @@ -3,13 +3,13 @@ - + 110 110_USR lagg1 lagg1_vlan110 - + 220 220_SRV lagg2 From d55532e4d548135b6f4929138d79f823a7d3de53 Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 20:06:36 +0100 Subject: [PATCH 6/7] issue #107 - added vlan test with defined uuid --- test/vlans-test-uuid-expect.xml | 19 +++++++++++++++++++ test/vlans-test-uuid.yml | 15 +++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 test/vlans-test-uuid-expect.xml create mode 100644 test/vlans-test-uuid.yml diff --git a/test/vlans-test-uuid-expect.xml b/test/vlans-test-uuid-expect.xml new file mode 100644 index 0000000..bcb9711 --- /dev/null +++ b/test/vlans-test-uuid-expect.xml @@ -0,0 +1,19 @@ + + + + + + + 110 + 110_USR + lagg1 + lagg1_vlan110 + + + 220 + 220_SRV + lagg2 + lagg2_vlan220 + + + diff --git a/test/vlans-test-uuid.yml b/test/vlans-test-uuid.yml new file mode 100644 index 0000000..65db06d --- /dev/null +++ b/test/vlans-test-uuid.yml @@ -0,0 +1,15 @@ +--- + +opn_vlans: + - tag: 110 + vlan_parent_interface: lagg1 + uuid: 60383065-4adf-5652-ace0-936604cd8376 + settings: + - key: descr + value: 110_USR + - tag: 220 + vlan_parent_interface: lagg2 + uuid: 5847f2ba-18e3-5405-97aa-991425034f8a + settings: + - key: descr + value: 220_SRV From 9808f9101feca74e7c66ab762913f3133457f233 Mon Sep 17 00:00:00 2001 From: Klaus Zerwes Date: Sun, 1 Dec 2024 20:09:49 +0100 Subject: [PATCH 7/7] issue #107 - linted --- tasks/vlans.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tasks/vlans.yml b/tasks/vlans.yml index c4b4611..c8c77d9 100644 --- a/tasks/vlans.yml +++ b/tasks/vlans.yml @@ -22,4 +22,3 @@ loop_control: label: "{{ _vlan.tag }}" loop_var: _vlan -