summaryrefslogtreecommitdiff
path: root/tests/integration/targets/vyos_firewall_rules
diff options
context:
space:
mode:
authoromnom62 <75066712+omnom62@users.noreply.github.com>2026-08-22 01:36:21 +1000
committerGitHub <noreply@github.com>2026-08-21 10:36:21 -0500
commit7a6b5e4f3a7a021cfa75faa7bf833741dfc09cff (patch)
tree82dad9c7ca58b7c88ac25f2ef7b04413e259a260 /tests/integration/targets/vyos_firewall_rules
parentcb738721c15ac01f49f66144dae80eb478331f77 (diff)
downloadrest.vyos-7a6b5e4f3a7a021cfa75faa7bf833741dfc09cff.tar.gz
rest.vyos-7a6b5e4f3a7a021cfa75faa7bf833741dfc09cff.zip
T8989: wave3 user, bgp_global, bgp_address_family, facts, firewall_global
* T8989: vyos_user module * T8989: Wave 3 vyos_user module with integration and unit tests * T8989: Wave 3 vyos_bgp_global module with integration and unit tests * T8989: Wave 3 vyos_bgp_address_family module with integration and unit tests * T8989: Add overridden integration tests for vyos_bgp_global and vyos_bgp_address_family * T8989: vyos_facts * T8989: Add vyos_facts integration and unit tests with fixtures * T8989: vyos_firewall_global module * T8989: vyos_firewall_global module with integration and unit tests * T8989: vyos_firewall_rules module * T8989: vyos_firewall_rules module with integration and unit tests * T8989: vyos_firewall_interfaces module * T8989: vyos_firewall_interfaces module * T8989: vyos_firewall_interfaces UAT & SIT * T8989: vyos_firewall_interfaces UAT & SIT
Diffstat (limited to 'tests/integration/targets/vyos_firewall_rules')
-rw-r--r--tests/integration/targets/vyos_firewall_rules/aliases1
-rw-r--r--tests/integration/targets/vyos_firewall_rules/defaults/main.yaml3
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tasks/httpapi.yaml21
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tasks/main.yaml5
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/_populate_config.yaml28
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/_remove_config.yaml5
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/deleted.yaml29
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/gathered.yaml21
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/merged.yaml50
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/overridden.yaml36
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/replaced.yaml36
-rw-r--r--tests/integration/targets/vyos_firewall_rules/tests/httpapi/rtt.yaml52
-rw-r--r--tests/integration/targets/vyos_firewall_rules/vars/main.yaml2
13 files changed, 289 insertions, 0 deletions
diff --git a/tests/integration/targets/vyos_firewall_rules/aliases b/tests/integration/targets/vyos_firewall_rules/aliases
new file mode 100644
index 0000000..cc0afef
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/aliases
@@ -0,0 +1 @@
+network/vyos
diff --git a/tests/integration/targets/vyos_firewall_rules/defaults/main.yaml b/tests/integration/targets/vyos_firewall_rules/defaults/main.yaml
new file mode 100644
index 0000000..164afea
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/defaults/main.yaml
@@ -0,0 +1,3 @@
+---
+testcase: "[^_].*"
+test_items: []
diff --git a/tests/integration/targets/vyos_firewall_rules/tasks/httpapi.yaml b/tests/integration/targets/vyos_firewall_rules/tasks/httpapi.yaml
new file mode 100644
index 0000000..4147e6d
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tasks/httpapi.yaml
@@ -0,0 +1,21 @@
+---
+- name: Collect all httpapi test cases
+ ansible.builtin.find:
+ paths: "{{ role_path }}/tests/httpapi"
+ patterns: "{{ testcase }}.yaml"
+ use_regex: true
+ register: test_cases
+ delegate_to: localhost
+
+- name: Set test_items
+ ansible.builtin.set_fact:
+ test_items: "{{ test_cases.files | map(attribute='path') | list }}"
+
+- name: Run test case (connection=httpapi)
+ ansible.builtin.include_tasks: "{{ test_case_to_run }}"
+ vars:
+ ansible_connection: ansible.netcommon.httpapi
+ ansible_network_os: vyos.rest.vyos
+ with_items: "{{ test_items }}"
+ loop_control:
+ loop_var: test_case_to_run
diff --git a/tests/integration/targets/vyos_firewall_rules/tasks/main.yaml b/tests/integration/targets/vyos_firewall_rules/tasks/main.yaml
new file mode 100644
index 0000000..b1f6193
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tasks/main.yaml
@@ -0,0 +1,5 @@
+---
+- name: Run httpapi tests
+ ansible.builtin.include_tasks: httpapi.yaml
+ tags:
+ - httpapi
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/_populate_config.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/_populate_config.yaml
new file mode 100644
index 0000000..7654625
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/_populate_config.yaml
@@ -0,0 +1,28 @@
+---
+- name: Populate firewall rules config for testing
+ vyos.rest.vyos_firewall_rules:
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: RULE-SET1
+ default_action: drop
+ rules:
+ - number: 10
+ action: accept
+ protocol: tcp
+ source:
+ address: 192.168.1.0/24
+ destination:
+ port: "80"
+ - number: 20
+ action: drop
+ state: invalid
+ - afi: ipv6
+ rule_sets:
+ - name: RULE-SET6
+ default_action: accept
+ rules:
+ - number: 10
+ action: accept
+ state: merged
+ ignore_errors: true
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/_remove_config.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/_remove_config.yaml
new file mode 100644
index 0000000..52866df
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/_remove_config.yaml
@@ -0,0 +1,5 @@
+---
+- name: Remove firewall rules configuration
+ vyos.rest.vyos_firewall_rules:
+ state: deleted
+ ignore_errors: true
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/deleted.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/deleted.yaml
new file mode 100644
index 0000000..db4cbf0
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/deleted.yaml
@@ -0,0 +1,29 @@
+---
+- debug:
+ msg: START vyos_firewall_rules deleted integration tests on connection={{ ansible_connection }}
+
+- include_tasks: _remove_config.yaml
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Delete all firewall rules configuration
+ register: result
+ vyos.rest.vyos_firewall_rules:
+ state: deleted
+
+ - assert:
+ that:
+ - result.changed == true
+
+ - name: Delete all firewall rules configuration (IDEMPOTENT)
+ register: result
+ vyos.rest.vyos_firewall_rules:
+ state: deleted
+
+ - assert:
+ that:
+ - result.changed == false
+ - result.commands == []
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/gathered.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/gathered.yaml
new file mode 100644
index 0000000..6729976
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/gathered.yaml
@@ -0,0 +1,21 @@
+---
+- debug:
+ msg: START vyos_firewall_rules gathered integration tests on connection={{ ansible_connection }}
+
+- include_tasks: _remove_config.yaml
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Gather firewall rules configuration
+ register: result
+ vyos.rest.vyos_firewall_rules:
+ state: gathered
+
+ - assert:
+ that:
+ - result.gathered | selectattr('afi', 'eq', 'ipv4') | list | length == 1
+ - result.gathered | selectattr('afi', 'eq', 'ipv6') | list | length == 1
+ - (result.gathered | selectattr('afi', 'eq', 'ipv4') | first).rule_sets | selectattr('name', 'eq', 'RULE-SET1') | list | length == 1
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/merged.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/merged.yaml
new file mode 100644
index 0000000..4dc02ca
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/merged.yaml
@@ -0,0 +1,50 @@
+---
+- debug:
+ msg: START vyos_firewall_rules merged integration tests on connection={{ ansible_connection }}
+
+- include_tasks: _remove_config.yaml
+
+- block:
+ - name: Merge firewall rules configuration
+ register: result
+ vyos.rest.vyos_firewall_rules:
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: RULE-SET1
+ default_action: drop
+ rules:
+ - number: 10
+ action: accept
+ protocol: tcp
+ source:
+ address: 192.168.1.0/24
+ state: merged
+
+ - assert:
+ that:
+ - result.changed == true
+
+ - name: Merge firewall rules configuration (IDEMPOTENT)
+ register: result
+ vyos.rest.vyos_firewall_rules:
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: RULE-SET1
+ default_action: drop
+ rules:
+ - number: 10
+ action: accept
+ protocol: tcp
+ source:
+ address: 192.168.1.0/24
+ state: merged
+
+ - assert:
+ that:
+ - result.changed == false
+ - result.commands == []
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/overridden.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/overridden.yaml
new file mode 100644
index 0000000..d5db4b9
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/overridden.yaml
@@ -0,0 +1,36 @@
+---
+- debug:
+ msg: START vyos_firewall_rules overridden integration tests on connection={{ ansible_connection }}
+
+- include_tasks: _remove_config.yaml
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Override firewall rules configuration
+ register: result
+ vyos.rest.vyos_firewall_rules: &id001
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: NEW-SET
+ default_action: accept
+ rules:
+ - number: 10
+ action: accept
+ state: overridden
+
+ - assert:
+ that:
+ - result.changed == true
+
+ - name: Override firewall rules configuration (IDEMPOTENT)
+ register: result
+ vyos.rest.vyos_firewall_rules: *id001
+
+ - assert:
+ that:
+ - result.changed == false
+ - result.commands == []
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/replaced.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/replaced.yaml
new file mode 100644
index 0000000..92033c4
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/replaced.yaml
@@ -0,0 +1,36 @@
+---
+- debug:
+ msg: START vyos_firewall_rules replaced integration tests on connection={{ ansible_connection }}
+
+- include_tasks: _remove_config.yaml
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Replace firewall rules configuration
+ register: result
+ vyos.rest.vyos_firewall_rules: &id001
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: RULE-SET1
+ default_action: accept
+ rules:
+ - number: 10
+ action: accept
+ state: replaced
+
+ - assert:
+ that:
+ - result.changed == true
+
+ - name: Replace firewall rules configuration (IDEMPOTENT)
+ register: result
+ vyos.rest.vyos_firewall_rules: *id001
+
+ - assert:
+ that:
+ - result.changed == false
+ - result.commands == []
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/tests/integration/targets/vyos_firewall_rules/tests/httpapi/rtt.yaml b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/rtt.yaml
new file mode 100644
index 0000000..193f03e
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/tests/httpapi/rtt.yaml
@@ -0,0 +1,52 @@
+---
+- debug:
+ msg: START vyos_firewall_rules round trip integration tests on connection={{ ansible_connection }}
+
+- include_tasks: _remove_config.yaml
+
+- block:
+ - name: RTT - Apply base configuration
+ vyos.rest.vyos_firewall_rules:
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: RULE-SET1
+ default_action: drop
+ rules:
+ - number: 10
+ action: accept
+ protocol: tcp
+ state: merged
+
+ - name: RTT - Gather
+ register: gathered
+ vyos.rest.vyos_firewall_rules:
+ state: gathered
+
+ - assert:
+ that:
+ - gathered.gathered | selectattr('afi', 'eq', 'ipv4') | list | length == 1
+
+ - name: RTT - Modify configuration
+ vyos.rest.vyos_firewall_rules:
+ config:
+ - afi: ipv4
+ rule_sets:
+ - name: RULE-SET1
+ default_action: accept
+ rules:
+ - number: 10
+ action: accept
+ state: replaced
+
+ - name: RTT - Gather after modify
+ register: gathered2
+ vyos.rest.vyos_firewall_rules:
+ state: gathered
+
+ - assert:
+ that:
+ - (gathered2.gathered | selectattr('afi', 'eq', 'ipv4') | first).rule_sets[0].default_action == 'accept'
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/tests/integration/targets/vyos_firewall_rules/vars/main.yaml b/tests/integration/targets/vyos_firewall_rules/vars/main.yaml
new file mode 100644
index 0000000..4303881
--- /dev/null
+++ b/tests/integration/targets/vyos_firewall_rules/vars/main.yaml
@@ -0,0 +1,2 @@
+---
+# only common vars here