diff --git a/changelogs/fragments/T7013_route-maps-integration-tests.yml b/changelogs/fragments/T7013_route-maps-integration-tests.yml new file mode 100644 index 00000000..8736a9c5 --- /dev/null +++ b/changelogs/fragments/T7013_route-maps-integration-tests.yml @@ -0,0 +1,3 @@ +--- +minor_changes: + - route_maps - Refactor the integration tests structure and support for 1.4+ versions diff --git a/tests/integration/targets/vyos_route_maps/tests/cli/_populate.yaml b/tests/integration/targets/vyos_route_maps/tests/cli/_populate.yaml index 98e01615..44b51539 100644 --- a/tests/integration/targets/vyos_route_maps/tests/cli/_populate.yaml +++ b/tests/integration/targets/vyos_route_maps/tests/cli/_populate.yaml @@ -1,25 +1,8 @@ --- - ansible.builtin.include_tasks: _remove_config.yaml -- name: Setup +- name: Setup {{ vyos_version }} vyos.vyos.vyos_config: - lines: - - set policy route-map test2 rule 1 action 'permit' - - set policy route-map test2 rule 1 description 'test' - - set policy route-map test2 rule 2 action 'permit' - - set policy route-map test2 rule 2 on-match goto '4' - - set policy route-map test3 rule 1 action 'permit' - - set policy route-map test3 rule 1 match metric '1' - - set policy route-map test3 rule 1 match peer '192.0.2.32' - - set policy route-map test3 rule 1 set community 'internet' - - set policy route-map test3 rule 1 set ip-next-hop '192.0.2.33' - - set policy route-map test3 rule 1 set local-preference '4' - - set policy route-map test3 rule 1 set metric '5' - - set policy route-map test3 rule 1 set metric-type 'type-1' - - set policy route-map test3 rule 1 set origin 'egp' - - set policy route-map test3 rule 1 set originator-id '192.0.2.34' - - set policy route-map test3 rule 1 set tag '5' - - set policy route-map test3 rule 1 set weight '4' - ignore_errors: true + lines: "{{ populate_config }}" vars: ansible_connection: ansible.netcommon.network_cli diff --git a/tests/integration/targets/vyos_route_maps/tests/cli/rtt.yaml b/tests/integration/targets/vyos_route_maps/tests/cli/rtt.yaml index af16ddb1..1b67e7a6 100644 --- a/tests/integration/targets/vyos_route_maps/tests/cli/rtt.yaml +++ b/tests/integration/targets/vyos_route_maps/tests/cli/rtt.yaml @@ -1,76 +1,78 @@ --- - debug: msg: START vyos_route_maps merged integration tests on connection={{ ansible_connection }} +- include_tasks: _populate.yaml + - include_tasks: _remove_config.yaml - block: - name: Merge the provided configuration with the existing running configuration register: baseconfig vyos.vyos.vyos_route_maps: config: - route_map: test1 entries: - sequence: 1 description: test action: permit continue_sequence: 2 - route_map: test3 entries: - sequence: 1 action: permit match: metric: 1 peer: 192.0.2.32 set: local_preference: 4 metric: 5 metric_type: type-1 origin: egp originator_id: 192.0.2.34 tag: 5 weight: 4 state: merged - vyos.vyos.vyos_facts: gather_network_resources: route_maps - assert: that: - baseconfig.commands|length == 13 - baseconfig.changed == true - baseconfig.commands|symmetric_difference(merged.commands) == [] - baseconfig.after|symmetric_difference(ansible_facts['network_resources']['route_maps']) == [] - name: Merge the existing configuration with the provided running configuration register: result vyos.vyos.vyos_route_maps: config: - route_map: test2 entries: - sequence: 1 action: permit match: metric: 3 peer: 192.0.2.35 set: local_preference: 6 metric: 4 metric_type: type-1 origin: egp originator_id: 192.0.2.34 tag: 4 weight: 4 - name: Revert back to base config using facts round trip register: revert vyos.vyos.vyos_route_maps: config: "{{ ansible_facts['network_resources']['route_maps'] }}" state: overridden - name: Assert that config was reverted assert: that: baseconfig.after == revert.after always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_route_maps/vars/main.yaml b/tests/integration/targets/vyos_route_maps/vars/main.yaml index 838cc5e0..c4b9d3a4 100644 --- a/tests/integration/targets/vyos_route_maps/vars/main.yaml +++ b/tests/integration/targets/vyos_route_maps/vars/main.yaml @@ -1,110 +1,125 @@ --- merged: before: [] commands: - set policy route-map test1 rule 1 description test - set policy route-map test1 rule 1 action permit - set policy route-map test1 rule 1 continue 2 - set policy route-map test3 rule 1 action permit - set policy route-map test3 rule 1 set local-preference 4 - set policy route-map test3 rule 1 set metric 5 - set policy route-map test3 rule 1 set metric-type type-1 - set policy route-map test3 rule 1 set origin egp - set policy route-map test3 rule 1 set originator-id 192.0.2.34 - set policy route-map test3 rule 1 set tag 5 - set policy route-map test3 rule 1 set weight 4 - set policy route-map test3 rule 1 match metric 1 - set policy route-map test3 rule 1 match peer 192.0.2.32 - after: - route_map: test3 entries: - sequence: 1 action: permit match: metric: 1 peer: 192.0.2.32 set: local_preference: "4" metric: "5" metric_type: type-1 origin: egp originator_id: 192.0.2.34 tag: "5" weight: "4" - route_map: test1 entries: - sequence: 1 description: test action: permit continue_sequence: 2 replaced: commands: - delete policy route-map test3 rule 1 set ip-next-hop 192.0.2.33 - set policy route-map test3 rule 1 set local-preference 6 - set policy route-map test3 rule 1 set metric 4 - set policy route-map test3 rule 1 set tag 4 - - delete policy route-map test3 rule 1 set community internet + - delete policy route-map test3 rule 1 set community none - set policy route-map test3 rule 1 match metric 3 - set policy route-map test3 rule 1 match peer 192.0.2.35 - after: - route_map: test2 entries: - sequence: 1 description: test action: permit - sequence: 1 action: permit on_match: goto: 4 - route_map: test3 entries: - sequence: 1 action: permit match: metric: 3 peer: 192.0.2.35 set: local_preference: 6 metric: 4 metric_type: type-1 origin: egp originator_id: 192.0.2.34 tag: 4 weight: 4 overridden: commands: - delete policy route-map test2 - delete policy route-map test3 rule 1 set ip-next-hop 192.0.2.33 - set policy route-map test3 rule 1 set local-preference 6 - set policy route-map test3 rule 1 set metric 4 - set policy route-map test3 rule 1 set tag 4 - - delete policy route-map test3 rule 1 set community internet + - delete policy route-map test3 rule 1 set community none - set policy route-map test3 rule 1 match metric 3 - set policy route-map test3 rule 1 match peer 192.0.2.35 - after: - route_map: test3 entries: - sequence: 1 action: permit match: metric: 3 peer: 192.0.2.35 set: local_preference: 6 metric: 4 metric_type: type-1 origin: egp originator_id: 192.0.2.34 tag: 4 weight: 4 deleted: commands: - delete policy route-map test2 - delete policy route-map test3 after: [] + +populate_config: + - set policy route-map test2 rule 1 action 'permit' + - set policy route-map test2 rule 1 description 'test' + - set policy route-map test2 rule 2 action 'permit' + - set policy route-map test2 rule 2 on-match goto '4' + - set policy route-map test3 rule 1 action 'permit' + - set policy route-map test3 rule 1 match metric '1' + - set policy route-map test3 rule 1 match peer '192.0.2.32' + - set policy route-map test3 rule 1 set community none + - set policy route-map test3 rule 1 set ip-next-hop '192.0.2.33' + - set policy route-map test3 rule 1 set local-preference '4' + - set policy route-map test3 rule 1 set metric '5' + - set policy route-map test3 rule 1 set metric-type 'type-1' + - set policy route-map test3 rule 1 set origin 'egp' + - set policy route-map test3 rule 1 set originator-id '192.0.2.34' + - set policy route-map test3 rule 1 set tag '5' + - set policy route-map test3 rule 1 set weight '4'