diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/_parsed_config.cfg b/tests/integration/targets/vyos_interfaces/tests/cli/_parsed_config.cfg index 088354d8..cc47967c 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/_parsed_config.cfg +++ b/tests/integration/targets/vyos_interfaces/tests/cli/_parsed_config.cfg @@ -1,10 +1,11 @@ set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1' set interfaces ethernet eth1 hw-id '08:00:27:da:67:43' set interfaces ethernet eth1 mtu '1500' set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100' set interfaces ethernet eth1 vif 100 mtu '1404' set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101' +set interfaces ethernet eth1 vrf 'pink' set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN DOWN)' set interfaces ethernet eth2 disable set interfaces ethernet eth2 hw-id '08:00:27:d8:70:b0' set interfaces ethernet eth2 mtu '1406' diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/_populate.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/_populate.yaml index cbc994ba..617b2350 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/_populate.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/_populate.yaml @@ -1,17 +1,24 @@ --- - name: ensure facts include_tasks: _get_version.yaml - ansible.builtin.include_tasks: _remove_config.yaml -- name: Setup +- ansible.builtin.include_tasks: _setup_vrfs.yaml + +- name: Setup interfaces ansible.netcommon.cli_config: config: |- {% for intf in ('eth1','eth2') %} set interfaces ethernet "{{ intf }}" description 'Configured by Ansible' set interfaces ethernet "{{ intf }}" speed 'auto' set interfaces ethernet "{{ intf }}" duplex 'auto' set interfaces ethernet "{{ intf }}" mtu '1500' set interfaces ethernet "{{ intf }}" vif 200 set interfaces ethernet "{{ intf }}" vif 200 description 'VIF - 200' {% endfor %} + +- name: Setup - Add VRF to eth2 + ansible.netcommon.cli_config: + config: |- + set interfaces ethernet eth2 vrf 'green' diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/_remove_config.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/_remove_config.yaml index 73f481bf..aef5850a 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/_remove_config.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/_remove_config.yaml @@ -1,12 +1,23 @@ --- - name: Remove Config ansible.netcommon.cli_config: config: |- {% for intf in ('eth1','eth2') %} delete interfaces ethernet "{{ intf }}" description delete interfaces ethernet "{{ intf }}" speed delete interfaces ethernet "{{ intf }}" duplex delete interfaces ethernet "{{ intf }}" mtu delete interfaces ethernet "{{ intf }}" disable delete interfaces ethernet "{{ intf }}" vif {% endfor %} + +- name: Setup - Remove VRF from eth + ansible.netcommon.cli_config: + config: |- + delete interfaces ethernet eth2 vrf + delete interfaces ethernet eth1 vrf + +- name: Setup - Remove VRFs + ansible.netcommon.cli_config: + config: |- + delete vrf diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/_setup_vrfs.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/_setup_vrfs.yaml new file mode 100644 index 00000000..eab29f11 --- /dev/null +++ b/tests/integration/targets/vyos_interfaces/tests/cli/_setup_vrfs.yaml @@ -0,0 +1,10 @@ +--- +- name: Setup - Add VRFs + ansible.netcommon.cli_config: + config: |- + set vrf name green description 'green' + set vrf name green table 101 + set vrf name green vni 501 + set vrf name red description 'red' + set vrf name red table 102 + set vrf name red vni 502 diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/merged.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/merged.yaml index decdeca2..c636fe35 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/merged.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/merged.yaml @@ -1,59 +1,62 @@ --- - debug: msg: START vyos_interfaces merged integration tests on connection={{ ansible_connection }} - include_tasks: _remove_config.yaml +- include_tasks: _setup_vrfs.yaml + - block: - name: Merge the provided configuration with the existing running configuration register: result vyos.vyos.vyos_interfaces: &id001 config: - name: eth1 description: Configured by Ansible - Interface 1 mtu: 1500 speed: auto duplex: auto vifs: - vlan_id: 100 description: Eth1 - VIF 100 mtu: 1404 - vlan_id: 101 description: Eth1 - VIF 101 + vrf: red - name: eth2 description: Configured by Ansible - Interface 2 (ADMIN DOWN) mtu: 1406 enabled: false state: merged - name: Assert that before dicts were correctly generated assert: that: merged['before'] | symmetric_difference(result['before']) |length == 0 - name: Assert that correct set of commands were generated assert: that: - merged['commands'] | symmetric_difference(result['commands']) |length == 0 - name: Assert that after dicts was correctly generated assert: that: - merged['after'] | symmetric_difference(result['after']) |length == 0 - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) register: result vyos.vyos.vyos_interfaces: *id001 - name: Assert that the previous task was idempotent assert: that: - result['changed'] == false - name: Assert that before dicts were correctly generated assert: that: - merged['after'] | symmetric_difference(result['before']) |length == 0 always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/overridden.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/overridden.yaml index 5d87ab68..905470f5 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/overridden.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/overridden.yaml @@ -1,50 +1,51 @@ --- - debug: msg: START vyos_interfaces overridden integration tests on connection={{ ansible_connection }} - include_tasks: _populate.yaml - block: - name: Overrides all device configuration with provided configuration register: result vyos.vyos.vyos_interfaces: &id001 config: - name: eth0 speed: auto duplex: auto - name: eth2 description: Overridden by Ansible mtu: 1402 + vrf: red state: overridden - name: Assert that before dicts were correctly generated assert: that: - populate | symmetric_difference(result['before']) |length == 0 - name: Assert that correct commands were generated assert: that: - overridden['commands'] | symmetric_difference(result['commands']) |length == 0 - name: Assert that after dicts were correctly generated assert: that: - overridden['after'] | symmetric_difference(result['after']) |length == 0 - name: Overrides all device configuration with provided configurations (IDEMPOTENT) register: result vyos.vyos.vyos_interfaces: *id001 - name: Assert that the previous task was idempotent assert: that: - result['changed'] == false - name: Assert that before dicts were correctly generated assert: that: - overridden['after'] | symmetric_difference(result['before']) |length == 0 always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/rendered.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/rendered.yaml index 7b66c50e..83095195 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/rendered.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/rendered.yaml @@ -1,41 +1,42 @@ --- - debug: msg: START vyos_interfaces rendered integration tests on connection={{ ansible_connection }} - include_tasks: _populate.yaml - block: - name: Structure provided configuration into device specific commands register: result vyos.vyos.vyos_interfaces: config: - name: eth0 enabled: true duplex: auto speed: auto - name: eth1 description: Configured by Ansible - Interface 1 mtu: 1500 duplex: auto speed: auto enabled: true vifs: - vlan_id: 100 description: Eth1 - VIF 100 mtu: 1404 enabled: true - vlan_id: 101 description: Eth1 - VIF 101 enabled: true + vrf: "pink" - name: eth2 description: Configured by Ansible - Interface 2 (ADMIN DOWN) mtu: 1406 enabled: false state: rendered - name: Assert that correct set of commands were generated assert: that: - - "{{ rendered['commands'] | symmetric_difference(result['rendered']) |length == 0 }}" + - "{{ rendered['commands'] | symmetric_difference(result['rendered']) | length == 0 }}" always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/replaced.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/replaced.yaml index 5cfa4523..21ddaf40 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/replaced.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/replaced.yaml @@ -1,60 +1,61 @@ --- - debug: msg: START vyos_interfaces replaced integration tests on connection={{ ansible_connection }} - include_tasks: _populate.yaml - block: - name: Replace device configurations of listed interfaces with provided configurations register: result vyos.vyos.vyos_interfaces: &id001 config: - name: eth1 description: Replaced by Ansible vifs: - vlan_id: 100 description: VIF 100 - Replaced by Ansible - name: eth2 mtu: 1400 description: Replaced by Ansible + vrf: red state: replaced - name: Assert that correct set of commands were generated assert: that: - replaced['commands'] | symmetric_difference(result['commands']) |length == 0 - name: Assert that before dicts are correctly generated assert: that: - populate | symmetric_difference(result['before']) |length == 0 - name: Assert that after dict is correctly generated assert: that: - replaced['after'] | symmetric_difference(result['after']) |length == 0 - vyos.vyos.vyos_facts: gather_network_resources: interfaces - name: Assert that the facts and the after dict are the same assert: that: - result.after == ansible_facts['network_resources']['interfaces'] - name: Replace device configurations of listed interfaces with provided configurarions (IDEMPOTENT) register: result vyos.vyos.vyos_interfaces: *id001 - name: Assert that task was idempotent assert: that: - result['changed'] == false - name: Assert that before dict is correctly generated assert: that: - replaced['after'] | symmetric_difference(result['before']) |length == 0 always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_interfaces/tests/cli/rtt.yaml b/tests/integration/targets/vyos_interfaces/tests/cli/rtt.yaml index e6753cba..667da6e9 100644 --- a/tests/integration/targets/vyos_interfaces/tests/cli/rtt.yaml +++ b/tests/integration/targets/vyos_interfaces/tests/cli/rtt.yaml @@ -1,79 +1,83 @@ --- - debug: msg: START vyos_interfaces round trip integration tests on connection={{ ansible_connection }} - include_tasks: _remove_config.yaml +- include_tasks: _setup_vrfs.yaml + - block: - name: Apply the provided configuration (base config) register: base_config vyos.vyos.vyos_interfaces: config: - name: eth0 enabled: true duplex: auto speed: auto - name: eth1 description: Interface - 1 mtu: 1500 vifs: - vlan_id: 100 description: Eth1 - VIF 100 mtu: 1402 - vlan_id: 101 enabled: false mtu: 1401 - name: eth2 description: Interface - 2 enabled: true mtu: 1409 + vrf: red state: merged - name: Gather interfaces facts vyos.vyos.vyos_facts: gather_subset: - default gather_network_resources: - interfaces - name: Apply the provided configuration (config to be reverted) register: result vyos.vyos.vyos_interfaces: config: - name: eth1 description: Interface 1 - Description (WILL BE REVERTED) mtu: 1412 vifs: - vlan_id: 100 description: Eth1 - VIF 100 (WILL BE REVERTED) mtu: 1404 - vlan_id: 101 description: Eth1 - VIF 101 (WILL BE REMOVED) enabled: true mtu: 1401 + vrf: green - name: eth2 description: Interface 2 (ADMIN DOWN) (WILL BE REVERTED) mtu: 1406 enabled: false state: merged - name: Assert that changes were applied assert: that: round_trip['after'] | symmetric_difference(result['after']) |length == 0 - name: Revert back to base config using facts round trip register: revert vyos.vyos.vyos_interfaces: config: "{{ ansible_facts['network_resources']['interfaces'] }}" state: replaced - name: Assert that config was reverted assert: that: base_config['after'] | symmetric_difference(revert['after']) |length == 0 always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_interfaces/vars/main.yaml b/tests/integration/targets/vyos_interfaces/vars/main.yaml index c65771f2..61f30049 100644 --- a/tests/integration/targets/vyos_interfaces/vars/main.yaml +++ b/tests/integration/targets/vyos_interfaces/vars/main.yaml @@ -1,199 +1,211 @@ --- merged: before: - name: eth0 enabled: true speed: auto duplex: auto - name: eth1 enabled: true - name: eth2 enabled: true commands: - set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1' - set interfaces ethernet eth1 mtu '1500' - set interfaces ethernet eth1 duplex 'auto' - set interfaces ethernet eth1 speed 'auto' - set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100' - set interfaces ethernet eth1 vif 100 mtu '1404' - set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101' + - set interfaces ethernet eth1 vrf 'red' - set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN DOWN)' - set interfaces ethernet eth2 mtu '1406' - set interfaces ethernet eth2 disable after: - name: eth0 enabled: true duplex: auto speed: auto - name: eth1 description: Configured by Ansible - Interface 1 mtu: 1500 enabled: true duplex: auto speed: auto vifs: - vlan_id: 100 description: Eth1 - VIF 100 mtu: 1404 enabled: true - vlan_id: 101 description: Eth1 - VIF 101 enabled: true + vrf: red - name: eth2 description: Configured by Ansible - Interface 2 (ADMIN DOWN) mtu: 1406 enabled: false populate: - name: eth1 enabled: true description: Configured by Ansible mtu: 1500 duplex: auto speed: auto vifs: - vlan_id: 200 enabled: true description: VIF - 200 - name: eth2 enabled: true description: Configured by Ansible mtu: 1500 duplex: auto speed: auto vifs: - vlan_id: 200 enabled: true description: VIF - 200 + vrf: "green" - name: eth0 enabled: true duplex: auto speed: auto replaced: commands: - delete interfaces ethernet eth1 mtu - delete interfaces ethernet eth1 speed - delete interfaces ethernet eth1 duplex - delete interfaces ethernet eth1 vif 200 - set interfaces ethernet eth1 description 'Replaced by Ansible' - set interfaces ethernet eth1 vif 100 description 'VIF 100 - Replaced by Ansible' - delete interfaces ethernet eth2 vif 200 - delete interfaces ethernet eth2 speed - delete interfaces ethernet eth2 duplex - set interfaces ethernet eth2 description 'Replaced by Ansible' - set interfaces ethernet eth2 mtu '1400' + - set interfaces ethernet eth2 vrf 'red' after: - name: eth1 description: Replaced by Ansible enabled: true vifs: - vlan_id: 100 enabled: true description: VIF 100 - Replaced by Ansible - name: eth2 mtu: 1400 description: Replaced by Ansible enabled: true + vrf: red - name: eth0 enabled: true duplex: auto speed: auto parsed: after: - name: eth1 description: Configured by Ansible - Interface 1 mtu: 1500 enabled: true vifs: - vlan_id: 100 description: Eth1 - VIF 100 mtu: 1404 enabled: true - vlan_id: 101 description: Eth1 - VIF 101 enabled: true + vrf: pink - name: eth2 description: Configured by Ansible - Interface 2 (ADMIN DOWN) mtu: 1406 enabled: false overridden: commands: - delete interfaces ethernet eth1 description - delete interfaces ethernet eth1 mtu - delete interfaces ethernet eth1 speed - delete interfaces ethernet eth1 duplex - delete interfaces ethernet eth1 vif 200 - delete interfaces ethernet eth2 vif 200 - delete interfaces ethernet eth2 speed - delete interfaces ethernet eth2 duplex - set interfaces ethernet eth2 description 'Overridden by Ansible' - set interfaces ethernet eth2 mtu '1402' + - set interfaces ethernet eth2 vrf 'red' after: - name: eth0 enabled: true speed: auto duplex: auto - name: eth1 enabled: true - name: eth2 enabled: true description: Overridden by Ansible mtu: 1402 + vrf: red rendered: commands: - set interfaces ethernet eth0 duplex 'auto' - set interfaces ethernet eth0 speed 'auto' - set interfaces ethernet eth1 duplex 'auto' - set interfaces ethernet eth1 speed 'auto' - set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1' - set interfaces ethernet eth1 mtu '1500' - set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100' - set interfaces ethernet eth1 vif 100 mtu '1404' - set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101' + - set interfaces ethernet eth1 vrf 'pink' - set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN DOWN)' - set interfaces ethernet eth2 mtu '1406' deleted: commands: - delete interfaces ethernet eth1 description - delete interfaces ethernet eth1 mtu - delete interfaces ethernet eth1 vif 200 - delete interfaces ethernet eth1 speed - delete interfaces ethernet eth1 duplex - delete interfaces ethernet eth2 description - delete interfaces ethernet eth2 mtu - delete interfaces ethernet eth2 vif 200 - delete interfaces ethernet eth2 speed - delete interfaces ethernet eth2 duplex + - delete interfaces ethernet eth2 vrf after: - name: eth0 enabled: true speed: auto duplex: auto - name: eth1 enabled: true - name: eth2 enabled: true round_trip: after: - name: eth0 enabled: true speed: auto duplex: auto - name: eth1 description: Interface 1 - Description (WILL BE REVERTED) enabled: true mtu: 1412 vifs: - vlan_id: 100 description: Eth1 - VIF 100 (WILL BE REVERTED) mtu: 1404 enabled: true - vlan_id: 101 description: Eth1 - VIF 101 (WILL BE REMOVED) enabled: true mtu: 1401 + vrf: green - name: eth2 description: Interface 2 (ADMIN DOWN) (WILL BE REVERTED) mtu: 1406 enabled: false + vrf: red