--- - debug: msg="START junos_vlan netconf/basic.yaml" - name: setup - remove vlan junos_vlan: vlan_id: 100 name: test-vlan description: test vlan state: absent provider: "{{ netconf }}" - name: Create vlan junos_vlan: vlan_id: 100 name: test-vlan state: present description: test vlan provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'test-vlan' in config.xml" - "'100' in config.xml" - name: Create vlan again (idempotent) junos_vlan: vlan_id: 100 name: test-vlan state: present description: test vlan provider: "{{ netconf }}" register: result - assert: that: - "result.changed == false" - name: Deactivate vlan junos_vlan: vlan_id: 100 name: test-vlan state: present active: False provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'' in config.xml" - "'test-vlan' in config.xml" - name: Activate vlan junos_vlan: vlan_id: 100 name: test-vlan state: present active: True provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'test-vlan' in config.xml" - name: Delete vlan junos_vlan: vlan_id: 100 name: test-vlan state: absent provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'test-vlan' not in config.xml" - name: Setup vlan configuration for aggregate junos_vlan: aggregate: - { vlan_id: 159, name: test_vlan_1, state: absent } - { vlan_id: 160, name: test_vlan_2, state: absent } provider: "{{ netconf }}" - name: Create vlan configuration using aggregate junos_vlan: aggregate: - { vlan_id: 159, name: test_vlan_1, description: test vlan-1, state: present } - { vlan_id: 160, name: test_vlan_2, description: test vlan-2, state: present } provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared | search("\+ *vlans") - result.diff.prepared | search("\+ *test_vlan_1") - result.diff.prepared | search("\+ *vlan-id 159") - result.diff.prepared | search("\+ *test_vlan_2") - result.diff.prepared | search("\+ *vlan-id 160") - name: Deactivate vlan configuration using aggregate junos_vlan: aggregate: - { vlan_id: 159, name: test_vlan_1, description: test vlan-1, active: False } - { vlan_id: 160, name: test_vlan_2, description: test vlan-2, active: False } provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared | search("! *inactive[:] test_vlan_1") - result.diff.prepared | search("! *inactive[:] test_vlan_2") - name: activate vlan configuration using aggregate junos_vlan: aggregate: - { vlan_id: 159, name: test_vlan_1, description: test vlan-1, active: True } - { vlan_id: 160, name: test_vlan_2, description: test vlan-2, active: True } provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared | search("! *active[:] test_vlan_1") - result.diff.prepared | search("! *active[:] test_vlan_2") - name: Delete vlan configuration using aggregate junos_vlan: aggregate: - { vlan_id: 159, name: test_vlan_1, state: absent } - { vlan_id: 160, name: test_vlan_2, state: absent } provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared | search("\- *test_vlan_1") - result.diff.prepared | search("\- *vlan-id 159") - result.diff.prepared | search("\- *test_vlan_2") - result.diff.prepared | search("\- *vlan-id 160") - name: Delete vlan configuration using aggregate (idempotent) junos_vlan: aggregate: - { vlan_id: 159, name: test_vlan_1, state: absent } - { vlan_id: 160, name: test_vlan_2, state: absent } provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == false'