diff options
| author | omnom62 <omnom62@outlook.com> | 2026-05-27 21:38:51 +1000 |
|---|---|---|
| committer | omnom62 <omnom62@outlook.com> | 2026-05-27 21:38:51 +1000 |
| commit | aeedc73003ddcf84bbf5c2880f982b6d4925e0c9 (patch) | |
| tree | b2bf9705e2fe6db7dbaa51afc5fd60ca0f7878da /tests/integration | |
| parent | 5a6f6976b49fd5ca8e964b2342493bc5ceee85d5 (diff) | |
| download | rest.vyos-aeedc73003ddcf84bbf5c2880f982b6d4925e0c9.tar.gz rest.vyos-aeedc73003ddcf84bbf5c2880f982b6d4925e0c9.zip | |
Test framework
Diffstat (limited to 'tests/integration')
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 |
