Fix platform agnostic network integration test cases (#32378)

* Fix platform agnostic network test cases

* Fix vyos_interface CI failure
This commit is contained in:
Ganesh Nalawade 2017-10-31 15:21:27 +05:30 committed by GitHub
commit 5d1ed1fc25
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 659 additions and 255 deletions

View file

@ -1,40 +1,69 @@
---
- debug: msg="START net_interface cli/basic.yaml"
- name: Run show version
ios_command:
commands: show version
authorize: yes
register: show_version_result
- block:
- name: Set test interface to GigabitEthernet0/1 as we are on Cisco IOS
set_fact: test_interface=GigabitEthernet0/1
- name: Set test interface 2 to GigabitEthernet0/2 as we are on Cisco IOS
set_fact: test_interface2=GigabitEthernet0/2
when: "'Cisco IOS' in show_version_result.stdout[0]"
- block:
- name: Set test interface to GigabitEthernet2 as we are on Cisco IOS-XE
set_fact: test_interface=GigabitEthernet2
- name: Disable autonegotiation on GigabitEthernet2
ios_config:
lines:
- no negotiation auto
parents: int GigabitEthernet2
authorize: yes
- name: Set test interface 2 to GigabitEthernet3 as we are on Cisco IOS-XE
set_fact: test_interface2=GigabitEthernet3
- name: Disable autonegotiation on GigabitEthernet3
ios_config:
lines:
- no negotiation auto
parents: int GigabitEthernet3
authorize: yes
when: "'Cisco IOS-XE' in show_version_result.stdout[0]"
- name: Configure interface (setup)
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
description: test-interface-1
speed: 10
duplex: full
mtu: 256
speed: 1000
mtu: 1800
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- name: Confgure interface
- name: Configure interface
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
description: test-interface-initial
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"description test-interface-initial" in result.commands'
- name: Confgure interface (idempotent)
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
description: test-interface-initial
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
@ -43,120 +72,99 @@
- name: Confgure interface parameters
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
description: test-interface
speed: 100
mtu: 512
mtu: 2000
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"description test-interface" in result.commands'
- '"speed 100" in result.commands'
- '"mtu 512" in result.commands'
- '"mtu 2000" in result.commands'
- name: Change interface parameters
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
description: test-interface-1
speed: 10
duplex: half
mtu: 256
mtu: 1800
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"description test-interface-1" in result.commands'
- '"speed 10" in result.commands'
- '"duplex half" in result.commands'
- '"mtu 256" in result.commands'
- '"mtu 1800" in result.commands'
- name: Disable interface
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
enabled: False
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"shutdown" in result.commands'
- name: Enable interface
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
enabled: True
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"no shutdown" in result.commands'
- name: Confgure second interface (setup)
net_interface:
name: GigabitEthernet0/1
name: "{{ test_interface2 }}"
description: test-interface-initial
speed: 100
duplex: half
mtu: 516
speed: 1000
mtu: 1800
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- name: Add interface aggregate
net_interface:
aggregate:
- { name: GigabitEthernet0/1, mtu: 256, description: test-interface-1 }
- { name: GigabitEthernet0/2, mtu: 516, description: test-interface-2 }
duplex: full
speed: 100
- { name: "{{ test_interface }}", mtu: 2000, description: test-interface-1 }
- { name: "{{ test_interface2 }}", mtu: 2000, description: test-interface-2 }
speed: 1000
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/1" in result.commands'
- '"speed 100" in result.commands'
- '"description test-interface-1" in result.commands'
- '"duplex full" in result.commands'
- '"mtu 256" in result.commands'
- '"interface GigabitEthernet0/2" in result.commands'
- '"speed 100" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"mtu 2000" in result.commands'
- '"interface {{ test_interface2 }}" in result.commands'
- '"description test-interface-2" in result.commands'
- '"duplex full" in result.commands'
- '"mtu 516" in result.commands'
- '"mtu 2000" in result.commands'
- name: Add interface aggregate (idempotent)
net_interface:
aggregate:
- { name: GigabitEthernet0/1, mtu: 256, description: test-interface-1 }
- { name: GigabitEthernet0/2, mtu: 516, description: test-interface-2 }
duplex: full
speed: 100
- { name: "{{ test_interface }}", mtu: 2000, description: test-interface-1 }
- { name: "{{ test_interface2 }}", mtu: 2000, description: test-interface-2 }
speed: 1000
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
@ -166,39 +174,37 @@
- name: Disable interface aggregate
net_interface:
aggregate:
- name: GigabitEthernet0/1
- name: GigabitEthernet0/2
- { name: "{{ test_interface }}" }
- { name: "{{ test_interface2 }}" }
enabled: False
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/1" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"shutdown" in result.commands'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface2 }}" in result.commands'
- '"shutdown" in result.commands'
- name: Enable interface aggregate
net_interface:
aggregate:
- name: GigabitEthernet0/1
- name: GigabitEthernet0/2
- { name: "{{ test_interface }}" }
- { name: "{{ test_interface2 }}" }
enabled: True
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"interface GigabitEthernet0/1" in result.commands'
- '"interface {{ test_interface }}" in result.commands'
- '"no shutdown" in result.commands'
- '"interface GigabitEthernet0/2" in result.commands'
- '"interface {{ test_interface2 }}" in result.commands'
- '"no shutdown" in result.commands'
- name: loopback interface setup
@ -216,7 +222,6 @@
- name: Loopback10
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
@ -232,7 +237,6 @@
- name: Loopback10
state: absent
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
@ -248,7 +252,6 @@
- name: Loopback10
state: absent
authorize: yes
provider: "{{ cli }}"
register: result
- assert:

View file

@ -1,14 +1,28 @@
---
- debug: msg="START net_interface ios/intent.yaml"
- name: Run show version
ios_command:
commands: show version
authorize: yes
register: show_version_result
- name: Set test interface to GigabitEthernet0/2 if we are on Cisco IOS
set_fact: test_interface=GigabitEthernet0/2
when: "'Cisco IOS' in show_version_result.stdout[0]"
- name: Set test interface to GigabitEthernet2 if we are on Cisco IOS-XE
set_fact: test_interface=GigabitEthernet2
when: "'Cisco IOS-XE' in show_version_result.stdout[0]"
- name: Check intent arguments
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
state: up
tx_rate: ge(0)
rx_rate: le(0)
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
@ -17,12 +31,11 @@
- name: Check intent arguments (failed condition)
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
state: down
tx_rate: gt(0)
rx_rate: lt(0)
authorize: yes
provider: "{{ cli }}"
ignore_errors: yes
register: result
@ -35,11 +48,10 @@
- name: Config + intent
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
enabled: False
state: down
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
@ -48,11 +60,10 @@
- name: Config + intent (fail)
net_interface:
name: GigabitEthernet0/2
name: "{{ test_interface }}"
enabled: False
authorize: yes
state: up
provider: "{{ cli }}"
ignore_errors: yes
register: result
@ -61,17 +72,90 @@
- "result.failed == true"
- "'state eq(up)' in result.failed_conditions"
- name: Register show neighbors detail
ios_command:
commands:
- show lldp neighbors
authorize: yes
register: show_lldp_neighbors_result
- block:
- name: Check neighbors intent arguments
net_interface:
name: Gi0/0
neighbors:
- port: eth0
host: netdev
authorize: yes
register: result
- assert:
that:
- "result.failed == false"
- name: Check neighbors intent arguments (failed condition)
net_interface:
name: Gi0/0
neighbors:
- port: dummy_port
host: dummy_host
authorize: yes
ignore_errors: yes
register: result
- assert:
that:
- "result.failed == true"
- "'host dummy_host' in result.failed_conditions"
- "'port dummy_port' in result.failed_conditions"
when: '"netdev" in show_lldp_neighbors_result.stdout'
- name: Aggregate config + intent (pass)
net_interface:
aggregate:
- name: GigabitEthernet0/2
enabled: True
state: up
- name: "{{ test_interface }}"
enabled: True
state: up
authorize: yes
provider: "{{ cli }}"
ignore_errors: yes
register: result
- assert:
that:
- "result.failed == false"
- block:
- name: Aggregate neighbors intent (pass)
net_interface:
aggregate:
- name: Gi0/0
neighbors:
- port: eth0
host: netdev
authorize: yes
ignore_errors: yes
register: result
- assert:
that:
- "result.failed == false"
- name: Aggregate neighbors intent (fail)
net_interface:
aggregate:
- name: Gi0/0
neighbors:
- port: eth0
host: netdev
- port: dummy_port
host: dummy_host
authorize: yes
ignore_errors: yes
register: result
- assert:
that:
- "result.failed == true"
- "'host dummy_host' in result.failed_conditions"
- "'port dummy_port' in result.failed_conditions"
when: "'netdev' in show_lldp_neighbors_result.stdout"

View file

@ -5,7 +5,6 @@
net_interface:
name: GigabitEthernet0/0/0/2
state: absent
provider: "{{ cli }}"
register: result
@ -14,7 +13,6 @@
name: GigabitEthernet0/0/0/2
description: test-interface-initial
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -27,7 +25,6 @@
name: GigabitEthernet0/0/0/2
description: test-interface-initial
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -42,7 +39,6 @@
duplex: half
mtu: 512
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -61,7 +57,6 @@
duplex: full
mtu: 256
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -80,8 +75,8 @@
duplex: full
mtu: 256
state: present
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == false'
@ -90,7 +85,6 @@
net_interface:
name: GigabitEthernet0/0/0/2
enabled: False
provider: "{{ cli }}"
register: result
- assert:
@ -102,7 +96,6 @@
net_interface:
name: GigabitEthernet0/0/0/2
enabled: True
provider: "{{ cli }}"
register: result
- assert:
@ -115,7 +108,6 @@
name: GigabitEthernet0/0/0/3
description: test-interface-initial
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -138,7 +130,6 @@
speed: 100
duplex: full
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -162,7 +153,6 @@
speed: 100
duplex: full
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -176,7 +166,6 @@
- name: GigabitEthernet0/0/0/2
enabled: False
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -192,7 +181,6 @@
- name: GigabitEthernet0/0/0/2
enabled: True
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -207,7 +195,6 @@
- name: GigabitEthernet0/0/0/4
- name: GigabitEthernet0/0/0/5
description: test-interface-initial
provider: "{{ cli }}"
register: result
- name: Create interface aggregate
@ -218,7 +205,6 @@
- name: GigabitEthernet0/0/0/5
description: test_interface_2
state: present
provider: "{{ cli }}"
register: result
- assert:
@ -233,7 +219,6 @@
- name: GigabitEthernet0/0/0/4
- name: GigabitEthernet0/0/0/5
state: absent
provider: "{{ cli }}"
register: result
- assert:
@ -248,7 +233,6 @@
- name: GigabitEthernet0/0/0/4
- name: GigabitEthernet0/0/0/5
state: absent
provider: "{{ cli }}"
register: result
- assert:

View file

@ -7,7 +7,6 @@
description: test_interface_5
enabled: True
state: present
provider: "{{ cli }}"
register: result
- name: Check intent arguments
@ -15,7 +14,6 @@
name: GigabitEthernet0/0/0/5
state: up
delay: 20
provider: "{{ cli }}"
register: result
- assert:
@ -26,7 +24,6 @@
net_interface:
name: GigabitEthernet0/0/0/5
state: down
provider: "{{ cli }}"
ignore_errors: yes
register: result
@ -41,7 +38,6 @@
enabled: False
state: down
delay: 20
provider: "{{ cli }}"
register: result
- assert:
@ -53,7 +49,6 @@
name: GigabitEthernet0/0/0/5
enabled: False
state: up
provider: "{{ cli }}"
ignore_errors: yes
register: result
@ -69,7 +64,6 @@
enabled: True
state: up
delay: 20
provider: "{{ cli }}"
ignore_errors: yes
register: result

View file

@ -1,60 +1,85 @@
---
- debug: msg="START net_interface vyos/basic.yaml"
- name: Run vyos lsmod command
vyos_command:
commands:
- lsmod
register: lsmod_out
- name: Set up - delete interface
net_interface:
name: eth1
state: absent
- name: Configure interface params
- name: Set up - Create interface
net_interface:
name: eth1
state: present
description: test-interface
speed: 100
duplex: half
mtu: 256
register: result
- assert:
that:
- 'result.changed == true'
- '"set interfaces ethernet eth1" in result.commands'
- '"set interfaces ethernet eth1 description test-interface" in result.commands'
- '"set interfaces ethernet eth1 speed 100" in result.commands'
- '"set interfaces ethernet eth1 duplex half" in result.commands'
- '"set interfaces ethernet eth1 mtu 256" in result.commands'
- name: Configure interface params (idempotent)
net_interface:
name: eth1
state: present
description: test-interface
speed: 100
duplex: half
mtu: 256
register: result
- assert:
that:
- 'result.changed == false'
- name: Change interface params
- name: Configure interface params
net_interface:
name: eth1
state: present
description: test-interface-1
speed: 1000
duplex: full
mtu: 512
speed: 100
duplex: half
mtu: 256
when: "'virtio_net' not in lsmod_out.stdout[0]"
register: result
- assert:
that:
- 'result.changed == true'
- '"set interfaces ethernet eth1 description test-interface-1" in result.commands'
- '"set interfaces ethernet eth1 speed 100" in result.commands'
- '"set interfaces ethernet eth1 duplex half" in result.commands'
- '"set interfaces ethernet eth1 mtu 256" in result.commands'
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Configure interface params (idempotent)
net_interface:
name: eth1
state: present
description: test-interface-1
speed: 100
duplex: half
mtu: 256
register: result
when: "'virtio_net' not in lsmod_out.stdout[0]"
- assert:
that:
- 'result.changed == false'
when: "'virtio' not in lsmod_out.stdout[0]"
- name: Change interface params
net_interface:
name: eth1
state: present
description: test-interface-2
speed: 1000
duplex: full
mtu: 512
register: result
when: "'virtio_net' not in lsmod_out.stdout[0]"
- assert:
that:
- 'result.changed == true'
- '"set interfaces ethernet eth1 description test-interface-2" in result.commands'
- '"set interfaces ethernet eth1 speed 1000" in result.commands'
- '"set interfaces ethernet eth1 duplex full" in result.commands'
- '"set interfaces ethernet eth1 mtu 512" in result.commands'
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Disable interface
net_interface:
@ -111,6 +136,7 @@
- { name: eth1, description: test-interface-1, speed: 100, duplex: half, mtu: 512}
- { name: eth2, description: test-interface-2, speed: 1000, duplex: full, mtu: 256}
register: result
when: "'virtio_net' not in lsmod_out.stdout[0]"
- assert:
that:
@ -123,6 +149,7 @@
- '"set interfaces ethernet eth2 speed 1000" in result.commands'
- '"set interfaces ethernet eth2 duplex full" in result.commands'
- '"set interfaces ethernet eth2 mtu 256" in result.commands'
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Set interface on aggregate (idempotent)
net_interface:
@ -130,16 +157,19 @@
- { name: eth1, description: test-interface-1, speed: 100, duplex: half, mtu: 512}
- { name: eth2, description: test-interface-2, speed: 1000, duplex: full, mtu: 256}
register: result
when: "'virtio_net' not in lsmod_out.stdout[0]"
- assert:
that:
- 'result.changed == false'
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Disable interface on aggregate
net_interface:
aggregate:
- name: eth1
- name: eth2
description: test-interface
enabled: False
register: result
@ -189,4 +219,5 @@
that:
- 'result.changed == false'
- debug: msg="END net_interface vyos/basic.yaml"

View file

@ -1,30 +1,46 @@
---
- debug: msg="START net_interface vyos/intent.yaml"
- name: Run vyos lsmod command
vyos_command:
commands:
- lsmod
register: lsmod_out
- name: Setup (interface is up)
net_interface:
name: eth1
enabled: True
state: present
provider: "{{ cli }}"
register: result
- name: Check intent arguments
net_interface:
name: eth1
state: up
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.failed == false"
- name: Check lldp neighbors intent arguments
net_interface:
name: eth0
neighbors:
- port: eth0
when: "'virtio_net' not in lsmod_out.stdout[0]"
register: result
- assert:
that:
- "result.failed == false"
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Check intent arguments (failed condition)
net_interface:
name: eth1
state: down
provider: "{{ cli }}"
ignore_errors: yes
register: result
@ -33,12 +49,28 @@
- "result.failed == true"
- "'state eq(down)' in result.failed_conditions"
- name: Check lldp neighbors intent arguments (failed)
net_interface:
name: eth0
neighbors:
- port: dummy_port
host: dummy_host
ignore_errors: yes
when: "'virtio_net' not in lsmod_out.stdout[0]"
register: result
- assert:
that:
- "result.failed == true"
- "'host dummy_host' in result.failed_conditions"
- "'port dummy_port' in result.failed_conditions"
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Config + intent
net_interface:
name: eth1
enabled: False
state: down
provider: "{{ cli }}"
register: result
- assert:
@ -50,7 +82,6 @@
name: eth1
enabled: False
state: up
provider: "{{ cli }}"
ignore_errors: yes
register: result
@ -65,10 +96,42 @@
- name: eth1
enabled: True
state: up
provider: "{{ cli }}"
ignore_errors: yes
register: result
- assert:
that:
- "result.failed == false"
- name: Check lldp neighbors intent aggregate arguments
net_interface:
aggregate:
- name: eth0
neighbors:
- port: eth0
when: "'virtio_net' not in lsmod_out.stdout[0]"
register: result
- assert:
that:
- "result.failed == false"
when: "'virtio_net' not in lsmod_out.stdout[0]"
- name: Check lldp neighbors intent aggregate arguments (failed)
net_interface:
aggregate:
- name: eth0
neighbors:
- port: eth0
- port: dummy_port
host: dummy_host
ignore_errors: yes
when: "'virtio_net' not in lsmod_out.stdout[0]"
register: result
- assert:
that:
- "result.failed == true"
- "'host dummy_host' in result.failed_conditions"
- "'port dummy_port' in result.failed_conditions"
when: "'virtio_net' not in lsmod_out.stdout[0]"