--- - debug: msg="START net_vrf junos/basic.yaml" - name: setup - remove vrf net_vrf: name: test-1 state: absent provider: "{{ netconf }}" - name: Configure vrf and its parameter net_vrf: name: test-1 description: test-vrf-1 interfaces: - ge-0/0/6 - ge-0/0/5 rd: 3.3.3.3:10 target: target:65513:111 state: present provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - result.diff.prepared | search("\+ *test-1") - result.diff.prepared | search("\+ *description test-vrf-1") - result.diff.prepared | search("\+ *instance-type vrf") - result.diff.prepared | search("\+ *interface ge-0/0/5.0") - result.diff.prepared | search("\+ *interface ge-0/0/6.0") - result.diff.prepared | search("\+ *route-distinguisher 3.3.3.3:10") - result.diff.prepared | search("\+ *vrf-target target:65513:111") - name: Configure vrf and its parameter (idempotent) net_vrf: name: test-1 description: test-vrf-1 interfaces: - ge-0/0/6 - ge-0/0/5 rd: 3.3.3.3:10 target: target:65513:111 state: present provider: "{{ netconf }}" register: result - assert: that: - "result.changed == false" - name: Change vrf parameter net_vrf: name: test-1 description: test-vrf-1 interfaces: - ge-0/0/3 - ge-0/0/2 rd: 1.1.1.1:10 target: target:65514:113 state: present provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - "'[edit routing-instances test-1]' in result.diff.prepared" - result.diff.prepared | search("\+ *interface ge-0/0/2.0") - result.diff.prepared | search("\+ *interface ge-0/0/3.0") - result.diff.prepared | search("\- *interface ge-0/0/5.0") - result.diff.prepared | search("\- *interface ge-0/0/6.0") - "'[edit routing-instances test-1]' in result.diff.prepared" - result.diff.prepared | search("\- *route-distinguisher 3.3.3.3:10") - result.diff.prepared | search("\+ *route-distinguisher 1.1.1.1:10") - result.diff.prepared | search("\- *vrf-target target:65513:111") - result.diff.prepared | search("\+ *vrf-target target:65514:113") - name: Delete vrf net_vrf: name: test-1 description: test-vrf-1 interfaces: - ge-0/0/3 - ge-0/0/2 rd: 1.1.1.1:10 target: target:65514:113 state: absent provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - result.diff.prepared | search("\- *test-1") - result.diff.prepared | search("\- *description test-vrf-1") - result.diff.prepared | search("\- *instance-type vrf") - result.diff.prepared | search("\- *interface ge-0/0/2.0") - result.diff.prepared | search("\- *interface ge-0/0/3.0") - result.diff.prepared | search("\- *route-distinguisher 1.1.1.1:10") - result.diff.prepared | search("\- *vrf-target target:65514:113") - name: Delete vrf (idempotent) net_vrf: name: test-1 description: test-vrf-1 interfaces: - ge-0/0/3 - ge-0/0/2 rd: 1.1.1.1:10 target: target:65514:113 state: absent provider: "{{ netconf }}" register: result - assert: that: - "result.changed == false" - name: Setup vrf using aggregate net_vrf: aggregate: - name: test-1 state: absent - name: test-2 state: absent provider: "{{ netconf }}" register: result - name: Create vrf using aggregate net_vrf: aggregate: - name: test-1 description: test-vrf-1 interfaces: - ge-0/0/3 - ge-0/0/2 rd: 1.1.1.1:10 target: target:65514:113 state: present - name: test-2 description: test-vrf-2 interfaces: - ge-0/0/4 - ge-0/0/5 rd: 2.2.2.2:10 target: target:65515:114 state: present provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - result.diff.prepared | search("\+ *test-1") - result.diff.prepared | search("\+ *description test-vrf-1") - result.diff.prepared | search("\+ *instance-type vrf") - result.diff.prepared | search("\+ *interface ge-0/0/2.0") - result.diff.prepared | search("\+ *interface ge-0/0/3.0") - result.diff.prepared | search("\+ *route-distinguisher 1.1.1.1:10") - result.diff.prepared | search("\+ *vrf-target target:65514:113") - result.diff.prepared | search("\+ *test-2") - result.diff.prepared | search("\+ *description test-vrf-2") - result.diff.prepared | search("\+ *instance-type vrf") - result.diff.prepared | search("\+ *interface ge-0/0/4.0") - result.diff.prepared | search("\+ *interface ge-0/0/5.0") - result.diff.prepared | search("\+ *route-distinguisher 2.2.2.2:10") - result.diff.prepared | search("\+ *vrf-target target:65515:114") - name: Delete vrf configuration using aggregate net_vrf: aggregate: - name: test-1 state: absent - name: test-2 state: absent provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - result.diff.prepared | search("\- *test-1") - result.diff.prepared | search("\- *description test-vrf-1") - result.diff.prepared | search("\- *instance-type vrf") - result.diff.prepared | search("\- *interface ge-0/0/2.0") - result.diff.prepared | search("\- *interface ge-0/0/3.0") - result.diff.prepared | search("\- *route-distinguisher 1.1.1.1:10") - result.diff.prepared | search("\- *vrf-target target:65514:113") - result.diff.prepared | search("\- *test-2") - result.diff.prepared | search("\- *description test-vrf-2") - result.diff.prepared | search("\- *instance-type vrf") - result.diff.prepared | search("\- *interface ge-0/0/4.0") - result.diff.prepared | search("\- *interface ge-0/0/5.0") - result.diff.prepared | search("\- *route-distinguisher 2.2.2.2:10") - result.diff.prepared | search("\- *vrf-target target:65515:114") - name: Delete vrf configuration using aggregate (idempotent) net_vrf: aggregate: - name: test-1 state: absent - name: test-2 state: absent provider: "{{ netconf }}" register: result - assert: that: - "result.changed == false"