summaryrefslogtreecommitdiff
path: root/tests/integration
diff options
context:
space:
mode:
authoromnom62 <omnom62@outlook.com>2026-05-27 21:38:51 +1000
committeromnom62 <omnom62@outlook.com>2026-05-27 21:38:51 +1000
commitaeedc73003ddcf84bbf5c2880f982b6d4925e0c9 (patch)
treeb2bf9705e2fe6db7dbaa51afc5fd60ca0f7878da /tests/integration
parent5a6f6976b49fd5ca8e964b2342493bc5ceee85d5 (diff)
downloadrest.vyos-aeedc73003ddcf84bbf5c2880f982b6d4925e0c9.tar.gz
rest.vyos-aeedc73003ddcf84bbf5c2880f982b6d4925e0c9.zip
Test framework
Diffstat (limited to 'tests/integration')
-rw-r--r--tests/integration/network-integration.cfg3
-rw-r--r--tests/integration/targets/vyos_banner/aliases1
-rw-r--r--tests/integration/targets/vyos_hostname/aliases1
-rw-r--r--tests/integration/targets/vyos_lldp_global/aliases1
-rw-r--r--tests/integration/targets/vyos_logging_global/aliases1
-rw-r--r--tests/integration/targets/vyos_logging_global/tasks/main.yaml133
-rw-r--r--tests/integration/targets/vyos_ntp_global/aliases1
-rw-r--r--tests/integration/targets/vyos_ntp_global/tasks/main.yaml149
-rw-r--r--tests/integration/targets/vyos_prefix_lists/aliases1
-rw-r--r--tests/integration/targets/vyos_prefix_lists/tasks/main.yaml144
-rw-r--r--tests/integration/targets/vyos_route_maps/aliases1
-rw-r--r--tests/integration/targets/vyos_route_maps/tasks/main.yaml133
-rw-r--r--tests/integration/targets/vyos_snmp_server/aliases1
13 files changed, 570 insertions, 0 deletions
diff --git a/tests/integration/network-integration.cfg b/tests/integration/network-integration.cfg
new file mode 100644
index 0000000..e510865
--- /dev/null
+++ b/tests/integration/network-integration.cfg
@@ -0,0 +1,3 @@
+[default]
+# ansible-test network-integration config
+testcase=*
diff --git a/tests/integration/targets/vyos_banner/aliases b/tests/integration/targets/vyos_banner/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_banner/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_hostname/aliases b/tests/integration/targets/vyos_hostname/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_hostname/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_lldp_global/aliases b/tests/integration/targets/vyos_lldp_global/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_lldp_global/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_logging_global/aliases b/tests/integration/targets/vyos_logging_global/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_logging_global/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_logging_global/tasks/main.yaml b/tests/integration/targets/vyos_logging_global/tasks/main.yaml
new file mode 100644
index 0000000..f5a1f31
--- /dev/null
+++ b/tests/integration/targets/vyos_logging_global/tasks/main.yaml
@@ -0,0 +1,133 @@
+---
+# tests/integration/targets/vyos_logging_global/tasks/main.yaml
+
+- name: TEARDOWN — delete all syslog config before tests
+ vyos.rest.vyos_logging_global:
+ state: deleted
+
+# ------------------------------------------------------------------
+# MERGED
+# ------------------------------------------------------------------
+
+- name: MERGED — set initial logging config
+ register: result
+ vyos.rest.vyos_logging_global:
+ config:
+ console:
+ facilities:
+ - facility: local7
+ severity: err
+ hosts:
+ - hostname: 172.16.0.1
+ port: 514
+ facilities:
+ - facility: local7
+ severity: all
+ global_params:
+ facilities:
+ - facility: cron
+ severity: debug
+ preserve_fqdn: true
+ state: merged
+
+- name: ASSERT — merged changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: MERGED — idempotency check
+ register: result
+ vyos.rest.vyos_logging_global:
+ config:
+ console:
+ facilities:
+ - facility: local7
+ severity: err
+ hosts:
+ - hostname: 172.16.0.1
+ port: 514
+ facilities:
+ - facility: local7
+ severity: all
+ global_params:
+ facilities:
+ - facility: cron
+ severity: debug
+ preserve_fqdn: true
+ state: merged
+
+- name: ASSERT — merged idempotent
+ assert:
+ that:
+ - result.changed == false
+ - result.commands | length == 0
+
+# ------------------------------------------------------------------
+# GATHERED
+# ------------------------------------------------------------------
+
+- name: GATHERED — read current config
+ register: result
+ vyos.rest.vyos_logging_global:
+ state: gathered
+
+- name: ASSERT — gathered returns expected data
+ assert:
+ that:
+ - result.gathered is defined
+
+# ------------------------------------------------------------------
+# REPLACED
+# ------------------------------------------------------------------
+
+- name: REPLACED — replace with minimal config
+ register: result
+ vyos.rest.vyos_logging_global:
+ config:
+ console:
+ facilities:
+ - facility: local6
+ state: replaced
+
+- name: ASSERT — replaced changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: REPLACED — idempotency check
+ register: result
+ vyos.rest.vyos_logging_global:
+ config:
+ console:
+ facilities:
+ - facility: local6
+ state: replaced
+
+- name: ASSERT — replaced idempotent
+ assert:
+ that:
+ - result.changed == false
+
+# ------------------------------------------------------------------
+# DELETED
+# ------------------------------------------------------------------
+
+- name: DELETED — remove all syslog config
+ register: result
+ vyos.rest.vyos_logging_global:
+ state: deleted
+
+- name: ASSERT — deleted changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: DELETED — idempotency check
+ register: result
+ vyos.rest.vyos_logging_global:
+ state: deleted
+
+- name: ASSERT — deleted idempotent
+ assert:
+ that:
+ - result.changed == false
diff --git a/tests/integration/targets/vyos_ntp_global/aliases b/tests/integration/targets/vyos_ntp_global/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_ntp_global/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_ntp_global/tasks/main.yaml b/tests/integration/targets/vyos_ntp_global/tasks/main.yaml
new file mode 100644
index 0000000..7c59a7f
--- /dev/null
+++ b/tests/integration/targets/vyos_ntp_global/tasks/main.yaml
@@ -0,0 +1,149 @@
+---
+# tests/integration/targets/vyos_ntp_global/tasks/main.yaml
+# Run with: ansible-test network-integration vyos_ntp_global --inventory <inv>
+
+- name: TEARDOWN — delete all NTP config before tests
+ vyos.rest.vyos_ntp_global:
+ state: deleted
+
+# ------------------------------------------------------------------
+# MERGED
+# ------------------------------------------------------------------
+
+- name: MERGED — set initial NTP config
+ register: result
+ vyos.rest.vyos_ntp_global:
+ config:
+ allow_clients:
+ - 10.6.6.0/24
+ listen_addresses:
+ - 10.1.3.1
+ servers:
+ - server: 203.0.113.0
+ options:
+ - prefer
+ state: merged
+
+- name: ASSERT — merged changed
+ assert:
+ that:
+ - result.changed == true
+ - result.commands | length > 0
+
+- name: MERGED — idempotency check
+ register: result
+ vyos.rest.vyos_ntp_global:
+ config:
+ allow_clients:
+ - 10.6.6.0/24
+ listen_addresses:
+ - 10.1.3.1
+ servers:
+ - server: 203.0.113.0
+ options:
+ - prefer
+ state: merged
+
+- name: ASSERT — merged idempotent
+ assert:
+ that:
+ - result.changed == false
+ - result.commands | length == 0
+
+# ------------------------------------------------------------------
+# GATHERED
+# ------------------------------------------------------------------
+
+- name: GATHERED — read current config
+ register: result
+ vyos.rest.vyos_ntp_global:
+ state: gathered
+
+- name: ASSERT — gathered returns correct data
+ assert:
+ that:
+ - "'10.6.6.0/24' in result.gathered.allow_clients"
+ - "'10.1.3.1' in result.gathered.listen_addresses"
+ - "'203.0.113.0' in result.gathered.servers"
+
+# ------------------------------------------------------------------
+# REPLACED
+# ------------------------------------------------------------------
+
+- name: REPLACED — replace with different config
+ register: result
+ vyos.rest.vyos_ntp_global:
+ config:
+ allow_clients:
+ - 10.99.99.0/24
+ servers:
+ - server: time1.vyos.net
+ state: replaced
+
+- name: ASSERT — replaced changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: REPLACED — idempotency check
+ register: result
+ vyos.rest.vyos_ntp_global:
+ config:
+ allow_clients:
+ - 10.99.99.0/24
+ servers:
+ - server: time1.vyos.net
+ state: replaced
+
+- name: ASSERT — replaced idempotent
+ assert:
+ that:
+ - result.changed == false
+
+- name: GATHER — verify old allow_client removed
+ register: result
+ vyos.rest.vyos_ntp_global:
+ state: gathered
+
+- name: ASSERT — old allow_client not present
+ assert:
+ that:
+ - "'10.6.6.0/24' not in result.gathered.allow_clients"
+ - "'10.99.99.0/24' in result.gathered.allow_clients"
+
+# ------------------------------------------------------------------
+# DELETED
+# ------------------------------------------------------------------
+
+- name: DELETED — remove all NTP config
+ register: result
+ vyos.rest.vyos_ntp_global:
+ state: deleted
+
+- name: ASSERT — deleted changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: DELETED — idempotency check
+ register: result
+ vyos.rest.vyos_ntp_global:
+ state: deleted
+
+- name: ASSERT — deleted idempotent
+ assert:
+ that:
+ - result.changed == false
+
+# ------------------------------------------------------------------
+# TEARDOWN
+# ------------------------------------------------------------------
+
+- name: TEARDOWN — restore default NTP servers
+ vyos.rest.vyos_ntp_global:
+ config:
+ servers:
+ - server: time1.vyos.net
+ - server: time2.vyos.net
+ - server: time3.vyos.net
+ state: merged
diff --git a/tests/integration/targets/vyos_prefix_lists/aliases b/tests/integration/targets/vyos_prefix_lists/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_prefix_lists/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_prefix_lists/tasks/main.yaml b/tests/integration/targets/vyos_prefix_lists/tasks/main.yaml
new file mode 100644
index 0000000..e5c62cd
--- /dev/null
+++ b/tests/integration/targets/vyos_prefix_lists/tasks/main.yaml
@@ -0,0 +1,144 @@
+---
+# tests/integration/targets/vyos_prefix_lists/tasks/main.yaml
+
+- name: TEARDOWN — delete all prefix lists before tests
+ vyos.rest.vyos_prefix_lists:
+ state: deleted
+
+# ------------------------------------------------------------------
+# MERGED
+# ------------------------------------------------------------------
+
+- name: MERGED — create prefix lists
+ register: result
+ vyos.rest.vyos_prefix_lists:
+ config:
+ - afi: ipv4
+ prefix_lists:
+ - name: AnsibleIPv4PrefixList
+ description: PL configured by ansible
+ entries:
+ - sequence: 2
+ action: permit
+ prefix: 92.168.10.0/26
+ le: 32
+ - sequence: 3
+ action: deny
+ prefix: 72.168.2.0/24
+ ge: 26
+ - afi: ipv6
+ prefix_lists:
+ - name: AllowIPv6Prefix
+ description: Configured by ansible for allowing IPv6 networks
+ entries:
+ - sequence: 5
+ action: permit
+ prefix: 2001:db8:8000::/35
+ le: 37
+ state: merged
+
+- name: ASSERT — merged changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: MERGED — idempotency check
+ register: result
+ vyos.rest.vyos_prefix_lists:
+ config:
+ - afi: ipv4
+ prefix_lists:
+ - name: AnsibleIPv4PrefixList
+ description: PL configured by ansible
+ entries:
+ - sequence: 2
+ action: permit
+ prefix: 92.168.10.0/26
+ le: 32
+ - sequence: 3
+ action: deny
+ prefix: 72.168.2.0/24
+ ge: 26
+ state: merged
+
+- name: ASSERT — merged idempotent
+ assert:
+ that:
+ - result.changed == false
+ - result.commands | length == 0
+
+# ------------------------------------------------------------------
+# GATHERED
+# ------------------------------------------------------------------
+
+- name: GATHERED — read current prefix lists
+ register: result
+ vyos.rest.vyos_prefix_lists:
+ state: gathered
+
+- name: ASSERT — gathered has ipv4 entry
+ assert:
+ that:
+ - result.gathered | selectattr('afi','eq','ipv4') | list | length > 0
+
+# ------------------------------------------------------------------
+# REPLACED
+# ------------------------------------------------------------------
+
+- name: REPLACED — replace AnsibleIPv4PrefixList
+ register: result
+ vyos.rest.vyos_prefix_lists:
+ config:
+ - afi: ipv4
+ prefix_lists:
+ - name: AnsibleIPv4PrefixList
+ entries:
+ - sequence: 10
+ action: permit
+ prefix: 10.0.0.0/8
+ state: replaced
+
+- name: ASSERT — replaced changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: REPLACED — idempotency check
+ register: result
+ vyos.rest.vyos_prefix_lists:
+ config:
+ - afi: ipv4
+ prefix_lists:
+ - name: AnsibleIPv4PrefixList
+ entries:
+ - sequence: 10
+ action: permit
+ prefix: 10.0.0.0/8
+ state: replaced
+
+- name: ASSERT — replaced idempotent
+ assert:
+ that:
+ - result.changed == false
+
+# ------------------------------------------------------------------
+# DELETED
+# ------------------------------------------------------------------
+
+- name: DELETED — remove specific prefix list
+ register: result
+ vyos.rest.vyos_prefix_lists:
+ config:
+ - afi: ipv4
+ prefix_lists:
+ - name: AnsibleIPv4PrefixList
+ state: deleted
+
+- name: ASSERT — deleted changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: DELETED — remove all remaining
+ vyos.rest.vyos_prefix_lists:
+ state: deleted
diff --git a/tests/integration/targets/vyos_route_maps/aliases b/tests/integration/targets/vyos_route_maps/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_route_maps/aliases
@@ -0,0 +1 @@
+network
diff --git a/tests/integration/targets/vyos_route_maps/tasks/main.yaml b/tests/integration/targets/vyos_route_maps/tasks/main.yaml
new file mode 100644
index 0000000..e8171dd
--- /dev/null
+++ b/tests/integration/targets/vyos_route_maps/tasks/main.yaml
@@ -0,0 +1,133 @@
+---
+# tests/integration/targets/vyos_route_maps/tasks/main.yaml
+
+- name: TEARDOWN — delete all route maps before tests
+ vyos.rest.vyos_route_maps:
+ state: deleted
+
+# ------------------------------------------------------------------
+# MERGED
+# ------------------------------------------------------------------
+
+- name: MERGED — create route map
+ register: result
+ vyos.rest.vyos_route_maps:
+ config:
+ - route_map: RM-TEST-EXPORT-POLICY
+ entries:
+ - sequence: 10
+ action: permit
+ match:
+ peer: 192.0.2.32
+ set:
+ metric: "5"
+ as_path_exclude: "111"
+ aggregator:
+ as: 100
+ state: merged
+
+- name: ASSERT — merged changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: MERGED — idempotency check
+ register: result
+ vyos.rest.vyos_route_maps:
+ config:
+ - route_map: RM-TEST-EXPORT-POLICY
+ entries:
+ - sequence: 10
+ action: permit
+ match:
+ peer: 192.0.2.32
+ set:
+ metric: "5"
+ as_path_exclude: "111"
+ aggregator:
+ as: 100
+ state: merged
+
+- name: ASSERT — merged idempotent
+ assert:
+ that:
+ - result.changed == false
+ - result.commands | length == 0
+
+# ------------------------------------------------------------------
+# GATHERED
+# ------------------------------------------------------------------
+
+- name: GATHERED — read current route maps
+ register: result
+ vyos.rest.vyos_route_maps:
+ state: gathered
+
+- name: ASSERT — gathered has expected route map
+ assert:
+ that:
+ - result.gathered | selectattr('route_map','eq','RM-TEST-EXPORT-POLICY') | list | length == 1
+
+# ------------------------------------------------------------------
+# REPLACED
+# ------------------------------------------------------------------
+
+- name: REPLACED — replace route map with updated set
+ register: result
+ vyos.rest.vyos_route_maps:
+ config:
+ - route_map: RM-TEST-EXPORT-POLICY
+ entries:
+ - sequence: 10
+ action: permit
+ set:
+ metric: "10"
+ state: replaced
+
+- name: ASSERT — replaced changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: REPLACED — idempotency check
+ register: result
+ vyos.rest.vyos_route_maps:
+ config:
+ - route_map: RM-TEST-EXPORT-POLICY
+ entries:
+ - sequence: 10
+ action: permit
+ set:
+ metric: "10"
+ state: replaced
+
+- name: ASSERT — replaced idempotent
+ assert:
+ that:
+ - result.changed == false
+
+# ------------------------------------------------------------------
+# DELETED
+# ------------------------------------------------------------------
+
+- name: DELETED — remove specific route map
+ register: result
+ vyos.rest.vyos_route_maps:
+ config:
+ - route_map: RM-TEST-EXPORT-POLICY
+ state: deleted
+
+- name: ASSERT — deleted changed
+ assert:
+ that:
+ - result.changed == true
+
+- name: DELETED — idempotency check
+ register: result
+ vyos.rest.vyos_route_maps:
+ state: deleted
+
+- name: ASSERT — deleted idempotent
+ assert:
+ that:
+ - result.changed == false
diff --git a/tests/integration/targets/vyos_snmp_server/aliases b/tests/integration/targets/vyos_snmp_server/aliases
new file mode 100644
index 0000000..992ae12
--- /dev/null
+++ b/tests/integration/targets/vyos_snmp_server/aliases
@@ -0,0 +1 @@
+network