--- - debug: msg="START net_interface netconf/basic.yaml" - name: setup remove interface net_interface: name: ge-0/0/1 description: test-interface state: absent provider: "{{ netconf }}" - name: Create interface net_interface: name: ge-0/0/1 description: test-interface state: present provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'ge-0/0/1' in config.xml" - "'test-interface' in config.xml" - name: Create interface (idempotent) net_interface: name: ge-0/0/1 description: test-interface state: present provider: "{{ netconf }}" register: result - assert: that: - "result.changed == false" - name: Configure interface attributes net_interface: name: ge-0/0/1 description: test-interface state: present speed: 1g mtu: 256 duplex: full provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'ge-0/0/1' in config.xml" - "'full-duplex' in config.xml" - "'256' in config.xml" - "'1g' in config.xml" - "'test-interface' in config.xml" - name: Disable interface net_interface: name: ge-0/0/1 description: test-interface enabled: False provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - result.diff.prepared is search("\+ *disable") - name: Enable interface net_interface: name: ge-0/0/1 description: test-interface enabled: True provider: "{{ netconf }}" register: result - assert: that: - "result.changed == true" - result.diff.prepared is search("\- *disable") - name: Delete interface net_interface: name: ge-0/0/1 description: test-interface state: absent provider: "{{ netconf }}" register: result - name: Get running configuration junos_rpc: rpc: get-configuration provider: "{{ netconf }}" register: config - assert: that: - "result.changed == true" - "'ge-0/0/1' not in config.xml" - name: Aggregate setup- delete interface ge-0/0/1 net_interface: name: ge-0/0/1 state: absent provider: "{{ netconf }}" register: result - name: Aggregate setup- delete interface ge-0/0/2 net_interface: name: ge-0/0/2 state: absent provider: "{{ netconf }}" register: result - name: Set interface on aggregate net_interface: aggregate: - { name: ge-0/0/1, description: test-interface-1, speed: 1g, mtu: 512} - { name: ge-0/0/2, description: test-interface-2, speed: 10m, mtu: 256} duplex: full provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared is search("\+ *ge-0/0/1") - result.diff.prepared is search("\+ *description test-interface-1") - result.diff.prepared is search("\+ *speed 1g") - result.diff.prepared is search("\+ *mtu 512") - result.diff.prepared is search("\+ *link-mode full-duplex") - result.diff.prepared is search("\+ *description test-interface-2") - result.diff.prepared is search("\+ *speed 10m") - result.diff.prepared is search("\+ * mtu 256") - result.diff.prepared is search("\+ *link-mode full-duplex") - name: Set interface on aggregate (idempotent) net_interface: aggregate: - { name: ge-0/0/1, description: test-interface-1, speed: 1g, mtu: 512 } - { name: ge-0/0/2, description: test-interface-2, speed: 10m, mtu: 256 } duplex: full provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == false' - name: Disable interface on aggregate net_interface: aggregate: - name: ge-0/0/1 - name: ge-0/0/2 enabled: False provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared is search("\+ *disable") - name: Enable interface on aggregate net_interface: aggregate: - name: ge-0/0/1 - name: ge-0/0/2 enabled: True provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared is search("\- *disable") - name: Delete interface on aggregate net_interface: aggregate: - { name: ge-0/0/1, description: test-interface-1 } - { name: ge-0/0/2, description: test-interface-2 } state: absent provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == true' - result.diff.prepared is search("\- *ge-0/0/1") - result.diff.prepared is search("\- *description test-interface-1") - result.diff.prepared is search("\- *speed 1g") - result.diff.prepared is search("\- *mtu 512") - result.diff.prepared is search("\- *link-mode full-duplex") - result.diff.prepared is search("\- *description test-interface-2") - result.diff.prepared is search("\- *speed 10m") - result.diff.prepared is search("\- * mtu 256") - result.diff.prepared is search("\- *link-mode full-duplex") - name: Delete interface on aggregate (idempotent) net_interface: aggregate: - name: ge-0/0/1 - name: ge-0/0/2 state: absent provider: "{{ netconf }}" register: result - assert: that: - 'result.changed == false'