Add vyos_linkagg module (#26418)

* Add vyos_linkagg module

* Add vyos_linkagg integration tests

* Fix pep8 issue

* Address several review comments
This commit is contained in:
Ricardo Carrillo Cruz 2017-07-06 10:07:48 +02:00 committed by GitHub
parent c26a556929
commit c73275b4b8
6 changed files with 457 additions and 1 deletions

View file

@ -0,0 +1,3 @@
---
testcase: "*"
test_items: []

View file

@ -0,0 +1,15 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test case
include: "{{ test_case_to_run }}"
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,185 @@
---
- name: Remove linkagg
vyos_linkagg:
name: bond0
state: absent
- name: Create linkagg
vyos_linkagg:
name: bond0
members:
- eth1
- eth2
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"set interfaces bonding bond0 mode 802.3ad" in result.commands'
- '"set interfaces ethernet eth1 bond-group bond0" in result.commands'
- '"set interfaces ethernet eth2 bond-group bond0" in result.commands'
- name: Create linkagg again (idempotent)
vyos_linkagg:
name: bond0
members:
- eth1
- eth2
state: present
register: result
- assert:
that:
- 'result.changed == false'
- name: Add linkagg member
vyos_linkagg:
name: bond0
members:
- eth3
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"set interfaces ethernet eth3 bond-group bond0" in result.commands'
- name: Add linkagg member again (idempotent)
vyos_linkagg:
name: bond0
members:
- eth3
state: present
register: result
- assert:
that:
- 'result.changed == false'
- name: Disable linkagg
vyos_linkagg:
name: bond0
state: down
register: result
- assert:
that:
- 'result.changed == true'
- '"set interfaces bonding bond0 disable" in result.commands'
- name: Disable linkagg again (idempotent)
vyos_linkagg:
name: bond0
state: down
register: result
- assert:
that:
- 'result.changed == false'
- name: Enable linkagg
vyos_linkagg:
name: bond0
state: up
register: result
- assert:
that:
- 'result.changed == true'
- '"delete interfaces bonding bond0 disable" in result.commands[0]'
- name: Enable linkagg again (idempotent)
vyos_linkagg:
name: bond0
state: up
register: result
- assert:
that:
- 'result.changed == false'
- name: Remove linkagg
vyos_linkagg:
name: bond0
state: absent
register: result
- assert:
that:
- 'result.changed == true'
- '"delete interfaces ethernet eth1 bond-group" in result.commands'
- '"delete interfaces ethernet eth2 bond-group" in result.commands'
- '"delete interfaces ethernet eth3 bond-group" in result.commands'
- '"delete interfaces bonding bond0" in result.commands'
- name: Remove linkagg again (idempotent)
vyos_linkagg:
name: bond0
state: absent
register: result
- assert:
that:
- 'result.changed == false'
- name: Create collection of linkagg definitions
vyos_linkagg:
collection:
- { name: bond0, members: [eth1, eth2] }
- { name: bond1, members: [eth3, eth4] }
state: present
register: result
- assert:
that:
- 'result.changed == true'
- '"set interfaces bonding bond0 mode 802.3ad" in result.commands'
- '"set interfaces ethernet eth1 bond-group bond0" in result.commands'
- '"set interfaces ethernet eth2 bond-group bond0" in result.commands'
- '"set interfaces bonding bond1 mode 802.3ad" in result.commands'
- '"set interfaces ethernet eth3 bond-group bond1" in result.commands'
- '"set interfaces ethernet eth4 bond-group bond1" in result.commands'
- name: Create collection of linkagg definitions again (idempotent)
vyos_linkagg:
collection:
- { name: bond0, members: [eth1, eth2] }
- { name: bond1, members: [eth3, eth4] }
state: present
register: result
- assert:
that:
- 'result.changed == false'
- name: Remove collection of linkagg definitions
vyos_linkagg:
collection:
- { name: bond0 }
- { name: bond1 }
state: absent
register: result
- assert:
that:
- 'result.changed == true'
- '"delete interfaces ethernet eth1 bond-group" in result.commands'
- '"delete interfaces ethernet eth2 bond-group" in result.commands'
- '"delete interfaces bonding bond0" in result.commands'
- '"delete interfaces ethernet eth1 bond-group" in result.commands'
- '"delete interfaces ethernet eth2 bond-group" in result.commands'
- '"delete interfaces bonding bond1" in result.commands'
- name: Remove collection of linkagg definitions again (idempotent)
vyos_linkagg:
collection:
- { name: bond0 }
- { name: bond1 }
state: absent
register: result
- assert:
that:
- 'result.changed == false'

View file

@ -42,9 +42,16 @@
rescue:
- set_fact: test_failed=true
# - block:
# - include_role:
# name: vyos_linkagg
# when: "limit_to in ['*', 'vyos_linkagg']"
# rescue:
# - set_fact: test_failed=true
###########
- name: Has any previous test failed?
fail:
msg: "One or more tests failed, check log for details"
when: test_failed
when: test_failed