Add eos_l2_interface module and integration tests (#35162)

* Add eos_l2_interface module and integration tests

* Address PR review comments

* Fix pylint issues
This commit is contained in:
Ricardo Carrillo Cruz 2018-01-22 20:00:39 +01:00 committed by GitHub
commit b7f4504a36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 483 additions and 0 deletions

View file

@ -0,0 +1,2 @@
---
testcase: "*"

View file

@ -0,0 +1,2 @@
dependencies:
- prepare_eos_tests

View file

@ -0,0 +1,22 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
register: test_cases
delegate_to: localhost
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
- name: run test case (connection=local)
include: "{{ test_case_to_run }} ansible_connection=local ansible_become=no"
with_first_found: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run

View file

@ -0,0 +1,16 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/eapi"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test case (connection=local)
include: "{{ test_case_to_run }} ansible_connection=local"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run

View file

@ -0,0 +1,2 @@
---
- { include: cli.yaml, tags: ['cli'] }

View file

@ -0,0 +1,137 @@
---
- debug: msg="START eos_l2_interface cli/basic.yaml on connection={{ ansible_connection }}"
- name: Delete test interface switchports
eos_l2_interface:
name: Ethernet1
state: absent
- name: Set switchport mode to access on vlan 4000
eos_l2_interface:
name: Ethernet1
state: present
mode: access
access_vlan: 4000
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == true'
- name: Set switchport mode to access on vlan 4000 again (idempotent)
eos_l2_interface:
name: Ethernet1
state: present
mode: access
access_vlan: 4000
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == false'
- name: Change access vlan to 4001
eos_l2_interface:
name: Ethernet1
state: present
mode: access
access_vlan: 4001
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == true'
- name: Change access vlan to 4001 again (idempotent)
eos_l2_interface:
name: Ethernet1
state: present
mode: access
access_vlan: 4001
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == false'
- name: Change switchport mode to trunk and set native vlan to 4001
eos_l2_interface:
name: Ethernet1
state: present
mode: trunk
native_vlan: 4001
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == true'
- name: Change switchport mode to trunk and set native vlan to 4001 again (idempotent)
eos_l2_interface:
name: Ethernet1
state: present
mode: trunk
native_vlan: 4001
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == false'
- name: Set trunk allowed vlans to 20 and 4000
eos_l2_interface:
name: Ethernet1
state: present
mode: trunk
trunk_allowed_vlans: 20,4000
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == true'
- name: Set trunk allowed vlans to 20 and 4000 again (idempotent)
eos_l2_interface:
name: Ethernet1
state: present
mode: trunk
trunk_allowed_vlans: 20,4000
authorize: yes
provider: "{{ cli }}"
become: yes
register: result
- assert:
that:
- 'result.changed == false'
- name: Tear down switchports
eos_l2_interface:
name: Ethernet1
state: absent
authorize: yes
provider: "{{ cli }}"
become: yes
- debug: msg="END eos_l3_interface cli/basic.yaml on connection={{ ansible_connection }}"