diff --git a/tests/integration/targets/vyos_vrrp/tests/cli/overridden.yaml b/tests/integration/targets/vyos_vrrp/tests/cli/overridden.yaml index 2fbc66f9..1b8ad0db 100644 --- a/tests/integration/targets/vyos_vrrp/tests/cli/overridden.yaml +++ b/tests/integration/targets/vyos_vrrp/tests/cli/overridden.yaml @@ -1,36 +1,35 @@ --- - debug: msg: START vyos_vrrp overridden integration tests on connection={{ ansible_connection }} - include_tasks: _remove_config.yaml - include_tasks: _populate_config.yaml - block: - name: Override the existing configuration with the provided running configuration register: result vyos.vyos.vyos_vrrp: &id001 config: "{{ overridden.config }}" state: overridden - vyos.vyos.vyos_facts: gather_network_resources: vrrp - name: Verify that the configuration was correctly overridden assert: that: - result.changed == true - result.after == ansible_facts['network_resources']['vrrp'] - - result.after == overridden.after - name: Override the existing configuration with the provided running configuration (IDEMPOTENT) register: result vyos.vyos.vyos_vrrp: *id001 - name: Assert that the previous task was idempotent assert: that: - result['changed'] == false always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_vrrp/tests/cli/parsed.yaml b/tests/integration/targets/vyos_vrrp/tests/cli/parsed.yaml index 9dc6e1ab..004ea2a2 100644 --- a/tests/integration/targets/vyos_vrrp/tests/cli/parsed.yaml +++ b/tests/integration/targets/vyos_vrrp/tests/cli/parsed.yaml @@ -1,15 +1,15 @@ --- - debug: msg: START vyos_vrrp parsed integration tests on connection={{ ansible_connection }} - name: Provide the running configuration for parsing (config to be parsed) register: result vyos.vyos.vyos_vrrp: running_config: "{{ lookup('file', '_parsed.cfg') }}" state: parsed - name: Assert that config was correctly parsed assert: that: - result.changed == false - - result.parsed == merged.before + - result.parsed|symmetric_difference(merged.before) == [] diff --git a/tests/integration/targets/vyos_vrrp/vars/main.yaml b/tests/integration/targets/vyos_vrrp/vars/main.yaml index ab2d520b..3087f112 100644 --- a/tests/integration/targets/vyos_vrrp/vars/main.yaml +++ b/tests/integration/targets/vyos_vrrp/vars/main.yaml @@ -1,750 +1,749 @@ --- merged: before: disable: false virtual_servers: - name: s1 address: 10.10.10.1 - algorithm: round-robin + algorithm: "round-robin" delay_loop: 60 forward_method: direct fwmark: 10 persistence_timeout: 30 protocol: tcp real_server: - address: 10.10.50.1 - health_check_script: /var/tmp/script.sh + health_check_script: "/var/tmp/script.sh" port: 443 - name: s2 address: 10.10.10.2 port: 81 real_server: - address: real1 connection_timeout: 5 port: 8081 - address: real2 port: 8080 vrrp: - snmp: disabled global_parameters: startup_delay: 31 version: "3" garp: interval: 30 master_delay: 10 master_refresh: 100 master_refresh_repeat: 200 master_repeat: 5 groups: - name: "g1" description: "Group_1" interface: "eth2" address: "1.1.1.1" advertise_interval: 10 peer_address: 192.168.1.3 priority: 100 disable: true no_preempt: true rfc3768_compatibility: true vrid: 20 excluded_address: - "192.168.1.7 interface eth3" - "192.168.1.8" garp: interval: 20 master_delay: 5 master_refresh: 50 master_refresh_repeat: 100 master_repeat: 3 authentication: type: "plaintext-password" password: "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" transition_script: master: "/var/tmp/script.sh" backup: "/var/tmp/script.sh" fault: "/var/tmp/script.sh" stop: "/var/tmp/script.sh" track: exclude_vrrp_interface: true interface: - eth0 - eth1 - name: "g2" description: "Group_2" interface: "eth1" address: "2.2.2.2" disable: false no_preempt: false rfc3768_compatibility: false vrid: 11 health_check: failure_count: 5 interval: 15 ping: "192.168.1.100" script: "/var/tmp/script.sh" hello_source_address: "2.2.2.2" sync_groups: - name: "sg1" member: - "g1" - "g2" transition_script: master: "/var/tmp/script.sh" backup: "/var/tmp/script.sh" fault: "/var/tmp/script.sh" stop: "/var/tmp/script.sh" health_check: failure_count: 3 interval: 10 ping: "192.168.2.100" script: "/var/tmp/script.sh" config: disable: true virtual_servers: - name: s1 address: 10.10.10.5 algorithm: round-robin real_server: - address: 10.10.50.2 port: 8443 - name: s2 address: 10.10.10.2 persistence_timeout: 30 port: 81 protocol: tcp - name: s3 address: 10.10.10.3 port: 88 protocol: udp vrrp: snmp: enabled global_parameters: startup_delay: 30 garp: master_repeat: 6 groups: - name: "g1" peer_address: 192.168.1.3 priority: 100 disable: false no_preempt: false vrid: 20 sync_groups: - name: "sg1" health_check: failure_count: 5 commands: - delete high-availability vrrp group g1 disable - delete high-availability vrrp group g1 no-preempt - delete high-availability vrrp group g1 rfc3768-compatibility - set high-availability disable - set high-availability virtual-server s1 address 10.10.10.5 - set high-availability virtual-server s1 real-server 10.10.50.2 port 8443 - set high-availability virtual-server s2 persistence-timeout 30 - set high-availability virtual-server s2 protocol tcp - set high-availability virtual-server s3 address 10.10.10.3 - set high-availability virtual-server s3 port 88 - set high-availability virtual-server s3 protocol udp - set high-availability vrrp global-parameters garp master-repeat 6 - set high-availability vrrp global-parameters startup-delay 30 - set high-availability vrrp snmp - set high-availability vrrp sync-group sg1 health-check failure-count 5 populate_commands: - set high-availability virtual-server s1 address 10.10.10.1 - set high-availability virtual-server s1 algorithm round-robin - set high-availability virtual-server s1 delay-loop 60 - set high-availability virtual-server s1 forward-method direct - set high-availability virtual-server s1 fwmark 10 - set high-availability virtual-server s1 persistence-timeout 30 - set high-availability virtual-server s1 protocol tcp - set high-availability virtual-server s1 real-server 10.10.50.1 health-check script /var/tmp/script.sh - set high-availability virtual-server s1 real-server 10.10.50.1 port 443 - set high-availability virtual-server s2 address 10.10.10.2 - set high-availability virtual-server s2 port 81 - set high-availability virtual-server s2 real-server real1 connection-timeout 5 - set high-availability virtual-server s2 real-server real1 port 8081 - set high-availability virtual-server s2 real-server real2 port 8080 - set high-availability vrrp global-parameters startup-delay 31 - set high-availability vrrp global-parameters version 3 - set high-availability vrrp global-parameters garp interval 30 - set high-availability vrrp global-parameters garp master-delay 10 - set high-availability vrrp global-parameters garp master-refresh 100 - set high-availability vrrp global-parameters garp master-refresh-repeat 200 - set high-availability vrrp global-parameters garp master-repeat 5 - set high-availability vrrp group g1 address 1.1.1.1 - set high-availability vrrp group g1 advertise-interval 10 - set high-availability vrrp group g1 description 'Group_1' - set high-availability vrrp group g1 disable - set high-availability vrrp group g1 interface eth2 - set high-availability vrrp group g1 no-preempt - set high-availability vrrp group g1 peer-address 192.168.1.3 - set high-availability vrrp group g1 priority 100 - set high-availability vrrp group g1 rfc3768-compatibility - set high-availability vrrp group g1 vrid 20 - set high-availability vrrp group g1 authentication password testpass - set high-availability vrrp group g1 authentication type plaintext-password - set high-availability vrrp group g1 excluded-address 192.168.1.7 interface eth3 - set high-availability vrrp group g1 excluded-address 192.168.1.8 - set high-availability vrrp group g1 garp interval 20 - set high-availability vrrp group g1 garp master-delay 5 - set high-availability vrrp group g1 garp master-refresh 50 - set high-availability vrrp group g1 garp master-refresh-repeat 100 - set high-availability vrrp group g1 garp master-repeat 3 - set high-availability vrrp group g1 track exclude-vrrp-interface - set high-availability vrrp group g1 track interface eth0 - set high-availability vrrp group g1 track interface eth1 - set high-availability vrrp group g1 transition-script backup /var/tmp/script.sh - set high-availability vrrp group g1 transition-script fault /var/tmp/script.sh - set high-availability vrrp group g1 transition-script master /var/tmp/script.sh - set high-availability vrrp group g1 transition-script stop /var/tmp/script.sh - set high-availability vrrp group g2 address 2.2.2.2 - set high-availability vrrp group g2 description 'Group_2' - set high-availability vrrp group g2 interface eth1 - set high-availability vrrp group g2 vrid 11 - set high-availability vrrp group g2 health-check failure-count 5 - set high-availability vrrp group g2 health-check interval 15 - set high-availability vrrp group g2 health-check ping 192.168.1.100 - set high-availability vrrp group g2 health-check script /var/tmp/script.sh - set high-availability vrrp group g2 hello-source-address 2.2.2.2 - set high-availability vrrp sync-group sg1 health-check failure-count 3 - set high-availability vrrp sync-group sg1 health-check interval 10 - set high-availability vrrp sync-group sg1 health-check ping 192.168.2.100 - set high-availability vrrp sync-group sg1 health-check script /var/tmp/script.sh - set high-availability vrrp sync-group sg1 member g1 - set high-availability vrrp sync-group sg1 member g2 - set high-availability vrrp sync-group sg1 transition-script backup /var/tmp/script.sh - set high-availability vrrp sync-group sg1 transition-script fault /var/tmp/script.sh - set high-availability vrrp sync-group sg1 transition-script master /var/tmp/script.sh - set high-availability vrrp sync-group sg1 transition-script stop /var/tmp/script.sh rendered: config: virtual_servers: - name: s1 address: 10.10.10.1 algorithm: round-robin delay_loop: 60 forward_method: direct fwmark: 10 persistence_timeout: 30 protocol: tcp real_server: - address: 10.10.50.1 health_check_script: /var/tmp/script.sh port: 443 - name: s2 address: 10.10.10.2 port: 81 real_server: - address: real1 connection_timeout: 5 port: 8081 - address: real2 port: 8080 vrrp: snmp: enabled global_parameters: startup_delay: 31 version: "3" garp: interval: 30 master_delay: 10 master_refresh: 100 master_refresh_repeat: 200 master_repeat: 5 groups: - name: "g1" description: "Group_1" interface: "eth2" address: "1.1.1.1" advertise_interval: 10 peer_address: 192.168.1.3 priority: 100 disable: true no_preempt: true rfc3768_compatibility: true vrid: 20 excluded_address: - "192.168.1.7 interface eth3" garp: interval: 20 master_delay: 5 master_refresh: 50 master_refresh_repeat: 100 master_repeat: 3 authentication: type: "plaintext-password" password: "test123" transition_script: master: "/var/tmp/script.sh" backup: "/var/tmp/script.sh" fault: "/var/tmp/script.sh" stop: "/var/tmp/script.sh" track: exclude_vrrp_interface: true interface: - eth0 - name: "g2" description: "Group_2" interface: "eth1" address: "2.2.2.2" disable: false no_preempt: false rfc3768_compatibility: false vrid: 11 health_check: failure_count: 5 interval: 15 ping: "192.168.1.100" script: "/var/tmp/script.sh" hello_source_address: "2.2.2.2" sync_groups: - name: "sg1" member: - "g1" transition_script: master: "/var/tmp/script.sh" backup: "/var/tmp/script.sh" fault: "/var/tmp/script.sh" stop: "/var/tmp/script.sh" health_check: failure_count: 3 interval: 10 ping: "192.168.2.100" script: "/var/tmp/script.sh" commands: - set high-availability virtual-server s1 address 10.10.10.1 - set high-availability virtual-server s1 algorithm round-robin - set high-availability virtual-server s1 delay-loop 60 - set high-availability virtual-server s1 forward-method direct - set high-availability virtual-server s1 fwmark 10 - set high-availability virtual-server s1 persistence-timeout 30 - set high-availability virtual-server s1 protocol tcp - set high-availability virtual-server s1 real-server 10.10.50.1 health-check script /var/tmp/script.sh - set high-availability virtual-server s1 real-server 10.10.50.1 port 443 - set high-availability virtual-server s2 address 10.10.10.2 - set high-availability virtual-server s2 port 81 - set high-availability virtual-server s2 real-server real1 connection-timeout 5 - set high-availability virtual-server s2 real-server real1 port 8081 - set high-availability virtual-server s2 real-server real2 port 8080 - set high-availability vrrp global-parameters garp interval 30 - set high-availability vrrp global-parameters garp master-delay 10 - set high-availability vrrp global-parameters garp master-refresh 100 - set high-availability vrrp global-parameters garp master-refresh-repeat 200 - set high-availability vrrp global-parameters garp master-repeat 5 - set high-availability vrrp global-parameters startup-delay 31 - set high-availability vrrp global-parameters version 3 - set high-availability vrrp group g1 address 1.1.1.1 - set high-availability vrrp group g1 advertise-interval 10 - set high-availability vrrp group g1 authentication password ******** - set high-availability vrrp group g1 authentication type plaintext-password - set high-availability vrrp group g1 description 'Group_1' - set high-availability vrrp group g1 disable - set high-availability vrrp group g1 excluded-address 192.168.1.7 interface eth3 - set high-availability vrrp group g1 garp interval 20 - set high-availability vrrp group g1 garp master-delay 5 - set high-availability vrrp group g1 garp master-refresh 50 - set high-availability vrrp group g1 garp master-refresh-repeat 100 - set high-availability vrrp group g1 garp master-repeat 3 - set high-availability vrrp group g1 interface eth2 - set high-availability vrrp group g1 no-preempt - set high-availability vrrp group g1 peer-address 192.168.1.3 - set high-availability vrrp group g1 priority 100 - set high-availability vrrp group g1 rfc3768-compatibility - set high-availability vrrp group g1 track exclude-vrrp-interface - set high-availability vrrp group g1 track interface eth0 - set high-availability vrrp group g1 transition-script backup /var/tmp/script.sh - set high-availability vrrp group g1 transition-script fault /var/tmp/script.sh - set high-availability vrrp group g1 transition-script master /var/tmp/script.sh - set high-availability vrrp group g1 transition-script stop /var/tmp/script.sh - set high-availability vrrp group g1 vrid 20 - set high-availability vrrp group g2 address 2.2.2.2 - set high-availability vrrp group g2 description 'Group_2' - set high-availability vrrp group g2 health-check failure-count 5 - set high-availability vrrp group g2 health-check interval 15 - set high-availability vrrp group g2 health-check ping 192.168.1.100 - set high-availability vrrp group g2 health-check script /var/tmp/script.sh - set high-availability vrrp group g2 hello-source-address 2.2.2.2 - set high-availability vrrp group g2 interface eth1 - set high-availability vrrp group g2 vrid 11 - set high-availability vrrp snmp - set high-availability vrrp sync-group sg1 health-check failure-count 3 - set high-availability vrrp sync-group sg1 health-check interval 10 - set high-availability vrrp sync-group sg1 health-check ping 192.168.2.100 - set high-availability vrrp sync-group sg1 health-check script /var/tmp/script.sh - set high-availability vrrp sync-group sg1 member g1 - set high-availability vrrp sync-group sg1 transition-script backup /var/tmp/script.sh - set high-availability vrrp sync-group sg1 transition-script fault /var/tmp/script.sh - set high-availability vrrp sync-group sg1 transition-script master /var/tmp/script.sh - set high-availability vrrp sync-group sg1 transition-script stop /var/tmp/script.sh purged: commands: - delete high-availability after: disable: false deleted_vrrp_groups: commands: - delete high-availability vrrp group g1 - delete high-availability vrrp sync-group sg1 after: disable: false virtual_servers: - name: s1 address: 10.10.10.1 algorithm: round-robin delay_loop: 60 forward_method: direct fwmark: 10 persistence_timeout: 30 protocol: tcp real_server: - address: 10.10.50.1 port: 443 health_check_script: /var/tmp/script.sh - name: s2 address: 10.10.10.2 port: 81 real_server: - address: real1 port: 8081 connection_timeout: 5 - address: real2 port: 8080 vrrp: global_parameters: startup_delay: 31 version: "3" garp: interval: 30 master_delay: 10 master_refresh: 100 master_refresh_repeat: 200 master_repeat: 5 groups: - name: g2 address: 2.2.2.2 description: Group_2 disable: false interface: eth1 vrid: 11 hello_source_address: 2.2.2.2 no_preempt: false rfc3768_compatibility: false health_check: failure_count: 5 interval: 15 ping: 192.168.1.100 script: /var/tmp/script.sh snmp: disabled deleted_bulk: commands: - delete high-availability virtual-server - delete high-availability vrrp global-parameters garp - delete high-availability vrrp global-parameters startup-delay - delete high-availability vrrp group g1 - delete high-availability vrrp sync-group after: disable: false vrrp: global_parameters: version: "3" groups: - name: g2 address: 2.2.2.2 description: Group_2 disable: false hello_source_address: 2.2.2.2 interface: eth1 vrid: 11 no_preempt: false rfc3768_compatibility: false health_check: failure_count: 5 interval: 15 ping: 192.168.1.100 script: /var/tmp/script.sh overridden: config: disable: false vrrp: snmp: disabled global_parameters: startup_delay: 32 version: 3 garp: interval: 30 master_delay: 11 master_refresh: 100 master_refresh_repeat: 200 master_repeat: 6 groups: - name: "g1" description: "Group_1" interface: "eth2" address: "1.1.1.1" disable: true no_preempt: true rfc3768_compatibility: true vrid: 20 peer_address: "192.168.1.3" advertise_interval: 10 priority: 100 garp: interval: 20 master_delay: 5 master_refresh: 50 master_refresh_repeat: 100 master_repeat: 3 authentication: type: "plaintext-password" password: "test123" transition_script: master: "/var/tmp/script.sh" backup: "/var/tmp/script.sh" fault: "/var/tmp/script.sh" stop: "/var/tmp/script.sh" track: exclude_vrrp_interface: true sync_groups: - name: "sg1" member: - "g1" - "g2" transition_script: master: "/var/tmp/script.sh" backup: "/var/tmp/script.sh" fault: "/var/tmp/script.sh" stop: "/var/tmp/script.sh" health_check: failure_count: 4 interval: 10 ping: "192.168.1.100" script: "/var/tmp/script.sh" virtual_servers: - name: "s1" address: "10.10.10.15" algorithm: "round-robin" delay_loop: 60 fwmark: 12 forward_method: "direct" persistence_timeout: 30 protocol: "tcp" real_server: - address: "10.10.10.1" connection_timeout: 61 port: 443 after: disable: false virtual_servers: - address: "10.10.10.15" algorithm: round-robin delay_loop: 60 forward_method: direct fwmark: 12 name: s1 persistence_timeout: 30 protocol: tcp real_server: - address: "10.10.10.1" connection_timeout: 61 port: 443 - address: "10.10.10.2" name: s2 port: 81 real_server: - address: real1 connection_timeout: 5 port: 8081 - address: real2 port: 8080 vrrp: global_parameters: garp: interval: 30 master_delay: 11 master_refresh: 100 master_refresh_repeat: 200 master_repeat: 6 startup_delay: 32 version: "3" groups: - address: "1.1.1.1" advertise_interval: 10 authentication: password: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER type: plaintext-password description: Group_1 disable: true garp: interval: 20 master_delay: 5 master_refresh: 50 master_refresh_repeat: 100 master_repeat: 3 interface: eth2 name: g1 no_preempt: true peer_address: "192.168.1.3" priority: 100 rfc3768_compatibility: true track: exclude_vrrp_interface: true transition_script: backup: /var/tmp/script.sh fault: /var/tmp/script.sh master: /var/tmp/script.sh stop: /var/tmp/script.sh vrid: 20 - address: "2.2.2.2" description: Group_2 disable: false health_check: failure_count: 5 interval: 15 ping: "192.168.1.100" script: /var/tmp/script.sh hello_source_address: "2.2.2.2" interface: eth1 name: g2 no_preempt: false rfc3768_compatibility: false vrid: 11 sync_groups: - health_check: failure_count: 4 interval: 10 ping: "192.168.1.100" script: /var/tmp/script.sh member: - g1 - g2 name: sg1 transition_script: backup: /var/tmp/script.sh fault: /var/tmp/script.sh master: /var/tmp/script.sh stop: /var/tmp/script.sh replaced: commands: - delete high-availability vrrp group g1 disable - delete high-availability vrrp group g1 no-preempt - delete high-availability vrrp group g1 rfc3768-compatibility - set high-availability disable - set high-availability virtual-server s1 address 10.10.10.5 - set high-availability virtual-server s1 real-server 10.10.50.2 port 8443 - set high-availability virtual-server s2 persistence-timeout 30 - set high-availability virtual-server s2 protocol tcp - set high-availability virtual-server s3 address 10.10.10.3 - set high-availability virtual-server s3 port 88 - set high-availability virtual-server s3 protocol udp - set high-availability vrrp global-parameters garp master-repeat 6 - set high-availability vrrp global-parameters startup-delay 30 - set high-availability vrrp snmp - set high-availability vrrp sync-group sg1 health-check failure-count 5 rtt: commands: - set high-availability disable - set high-availability virtual-server s1 address 10.10.10.5 - set high-availability virtual-server s1 algorithm round-robin - set high-availability virtual-server s1 real-server 10.10.50.2 port 8443 - set high-availability virtual-server s2 address 10.10.10.2 - set high-availability virtual-server s2 persistence-timeout 30 - set high-availability virtual-server s2 port 81 - set high-availability virtual-server s2 protocol tcp - set high-availability virtual-server s3 address 10.10.10.3 - set high-availability virtual-server s3 port 88 - set high-availability virtual-server s3 protocol udp - set high-availability vrrp global-parameters garp master-repeat 6 - set high-availability vrrp global-parameters startup-delay 30 - set high-availability vrrp group g1 peer-address 192.168.1.3 - set high-availability vrrp group g1 priority 100 - set high-availability vrrp group g1 vrid 20 - set high-availability vrrp snmp - set high-availability vrrp sync-group sg1 health-check failure-count 5 config: disable: false virtual_servers: - name: s1 address: 10.10.10.5 fwmark: 10 algorithm: least-connection real_server: - address: 10.10.50.2 port: 8443 - name: s2 address: 10.10.10.2 persistence_timeout: 36 port: 443 protocol: tcp real_server: - address: 10.10.50.3 port: 8443 - name: s3 address: 10.10.10.3 port: 80 protocol: udp real_server: - address: 10.10.50.4 port: 8443 vrrp: snmp: disabled global_parameters: startup_delay: 36 garp: master_repeat: 6 groups: - name: "g1" peer_address: 192.168.1.3 address: "1.1.1.1" priority: 100 disable: true no_preempt: false interface: eth2 vrid: 20 sync_groups: - name: "sg1" health_check: failure_count: 10 after: disable: true virtual_servers: - address: "10.10.10.5" algorithm: "round-robin" name: "s1" real_server: - address: "10.10.50.2" port: 8443 - address: "10.10.10.2" name: "s2" persistence_timeout: 30 port: 81 protocol: "tcp" - address: "10.10.10.3" name: "s3" port: 88 protocol: "udp" vrrp: global_parameters: garp: master_repeat: 6 startup_delay: 30 groups: - disable: false name: "g1" no_preempt: false peer_address: "192.168.1.3" priority: 100 rfc3768_compatibility: false vrid: 20 snmp: "enabled" sync_groups: - health_check: failure_count: 5 name: "sg1"