--- - debug: msg="START net_interface iosxr/basic.yaml" - name: Setup interface net_interface: name: GigabitEthernet0/0/0/2 state: absent provider: "{{ cli }}" register: result - name: Confgure interface net_interface: name: GigabitEthernet0/0/0/2 description: test-interface-initial state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/2 description test-interface-initial" in result.commands' - name: Confgure interface (idempotent) net_interface: name: GigabitEthernet0/0/0/2 description: test-interface-initial state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - name: Confgure interface parameters net_interface: name: GigabitEthernet0/0/0/2 description: test-interface speed: 100 duplex: half mtu: 512 state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/2 description test-interface" in result.commands' - '"interface GigabitEthernet0/0/0/2 speed 100" in result.commands' - '"interface GigabitEthernet0/0/0/2 duplex half" in result.commands' - '"interface GigabitEthernet0/0/0/2 mtu 512" in result.commands' - name: Change interface parameters net_interface: name: GigabitEthernet0/0/0/2 description: test-interface-1 speed: 10 duplex: full mtu: 256 state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/2 description test-interface-1" in result.commands' - '"interface GigabitEthernet0/0/0/2 speed 10" in result.commands' - '"interface GigabitEthernet0/0/0/2 duplex full" in result.commands' - '"interface GigabitEthernet0/0/0/2 mtu 256" in result.commands' - name: Delete interface parameters net_interface: name: GigabitEthernet0/0/0/2 state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/2 description configured by iosxr_interface" in result.commands' - '"no interface GigabitEthernet0/0/0/2 speed 10" in result.commands' - '"no interface GigabitEthernet0/0/0/2 duplex full" in result.commands' - '"no interface GigabitEthernet0/0/0/2 mtu 256" in result.commands' - name: Delete interface parameters (idempotent) net_interface: name: GigabitEthernet0/0/0/2 state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - name: Disable interface net_interface: name: GigabitEthernet0/0/0/2 state: down provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/2 shutdown" in result.commands' - name: Enable interface net_interface: name: GigabitEthernet0/0/0/2 state: up provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"no interface GigabitEthernet0/0/0/2 shutdown" in result.commands' - name: Confgure second interface (setup) net_interface: name: GigabitEthernet0/0/0/3 description: test-interface-initial state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/3 description test-interface-initial" in result.commands' - name: Add interface aggregate net_interface: aggregate: - { name: GigabitEthernet0/0/0/3, speed: 10, duplex: half, mtu: 256, description: test-interface-1 } - { name: GigabitEthernet0/0/0/2, speed: 100, duplex: full, mtu: 516, description: test-interface-2 } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/3 speed 10" in result.commands' - '"interface GigabitEthernet0/0/0/3 description test-interface-1" in result.commands' - '"interface GigabitEthernet0/0/0/3 duplex half" in result.commands' - '"interface GigabitEthernet0/0/0/3 mtu 256" in result.commands' - '"interface GigabitEthernet0/0/0/2 speed 100" in result.commands' - '"interface GigabitEthernet0/0/0/2 description test-interface-2" in result.commands' - '"interface GigabitEthernet0/0/0/2 duplex full" in result.commands' - '"interface GigabitEthernet0/0/0/2 mtu 516" in result.commands' - name: Add interface aggregate (idempotent) net_interface: aggregate: - { name: GigabitEthernet0/0/0/3, speed: 10, duplex: half, mtu: 256, description: test-interface-1 } - { name: GigabitEthernet0/0/0/2, speed: 100, duplex: full, mtu: 516, description: test-interface-2 } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - name: Change interface parameters in aggregate net_interface: aggregate: - { name: GigabitEthernet0/0/0/3 } - { name: GigabitEthernet0/0/0/2 } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"no interface GigabitEthernet0/0/0/3 speed 10" in result.commands' - '"interface GigabitEthernet0/0/0/3 description configured by iosxr_interface" in result.commands' - '"no interface GigabitEthernet0/0/0/3 duplex half" in result.commands' - '"no interface GigabitEthernet0/0/0/3 mtu 256" in result.commands' - '"no interface GigabitEthernet0/0/0/2 speed 100" in result.commands' - '"interface GigabitEthernet0/0/0/2 description configured by iosxr_interface" in result.commands' - '"no interface GigabitEthernet0/0/0/2 duplex full" in result.commands' - '"no interface GigabitEthernet0/0/0/2 mtu 516" in result.commands' - name: Disable interface aggregate net_interface: aggregate: - { name: GigabitEthernet0/0/0/3, state: down } - { name: GigabitEthernet0/0/0/2, state: down } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/3 shutdown" in result.commands' - '"interface GigabitEthernet0/0/0/2 shutdown" in result.commands' - name: Enable interface aggregate net_interface: aggregate: - { name: GigabitEthernet0/0/0/3, state: up } - { name: GigabitEthernet0/0/0/2, state: up } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"no interface GigabitEthernet0/0/0/3 shutdown" in result.commands' - '"no interface GigabitEthernet0/0/0/2 shutdown" in result.commands' - name: Create interface aggregate net_interface: aggregate: - { name: GigabitEthernet0/0/0/4 } - { name: GigabitEthernet0/0/0/5 } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/0/0/4 description configured by iosxr_interface" in result.commands' - '"interface GigabitEthernet0/0/0/5 description configured by iosxr_interface" in result.commands' - name: Delete interface aggregate net_interface: aggregate: - { name: GigabitEthernet0/0/0/4, state: absent } - { name: GigabitEthernet0/0/0/5, state: absent } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"no interface GigabitEthernet0/0/0/4" in result.commands' - '"no interface GigabitEthernet0/0/0/5" in result.commands' - name: Delete interface aggregate (idempotent) net_interface: aggregate: - { name: GigabitEthernet0/0/0/4, state: absent } - { name: GigabitEthernet0/0/0/5, state: absent } state: present provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - debug: msg="END net_interface iosxr/basic.yaml"