ansible/test/integration/targets/ios_linkagg/tests/cli/basic.yaml
Trishna Guha 2e76f04a9e
Add ios_linkagg DI module (#33215)
* Add ios_linkagg DI module

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* pep8 fixes

* update ios version

* ios_linkagg integration test

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* fix port-channel commands

* update test

* ios tests to network_cli

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* add required_together check in aggregate and update test

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* fix pep8 issues

* Add discovery of ios switch type

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-01-11 12:33:15 +05:30

171 lines
4 KiB
YAML

---
- debug: msg="START cli/basic.yaml on connection={{ ansible_connection }}"
- set_fact: switch_type="{{ switch_type }}"
- block:
- name: setup - remove config used in test(part1)
ios_config:
lines:
- no interface port-channel 20
authorize: yes
ignore_errors: yes
- name: setup - remove config used in test(part2)
ios_config:
lines:
- no interface port-channel 5
authorize: yes
ignore_errors: yes
- name: setup - remove config used in test(part3)
ios_config:
lines:
- no channel-group 20 mode active
authorize: yes
parents: "{{ item }}"
loop:
- interface GigabitEthernet0/1
- interface GigabitEthernet0/2
- name: create linkagg
ios_linkagg: &create
group: 20
state: present
authorize: yes
register: result
- assert:
that:
- "result.changed == true"
- "'interface port-channel 20' in result.commands"
- name: create linkagg(Idempotence)
ios_linkagg: *create
register: result
- assert:
that:
- "result.changed == false"
- name: set link aggregation group to members
ios_linkagg: &configure_member
group: 20
mode: active
members:
- GigabitEthernet0/1
- GigabitEthernet0/2
authorize: yes
register: result
- assert:
that:
- "result.changed == true"
- "'interface GigabitEthernet0/1' in result.commands"
- "'channel-group 20 mode active' in result.commands"
- "'interface GigabitEthernet0/2' in result.commands"
- "'channel-group 20 mode active' in result.commands"
- name: set link aggregation group to members(Idempotence)
ios_linkagg: *configure_member
register: result
- assert:
that:
- "result.changed == false"
- name: remove link aggregation group from member
ios_linkagg: &remove_member
group: 20
mode: active
members:
- GigabitEthernet0/2
authorize: yes
register: result
- assert:
that:
- "result.changed == true"
- "'interface GigabitEthernet0/1' in result.commands"
- "'no channel-group 20 mode active' in result.commands"
- name: remove link aggregation group from member(Idempotence)
ios_linkagg: *remove_member
register: result
- assert:
that:
- "result.changed == false"
- name: remove linkagg
ios_linkagg: &remove
group: 20
state: absent
authorize: yes
register: result
- assert:
that:
- "result.changed == true"
- "'no interface port-channel 20' in result.commands"
- name: remove linkagg(Idempotence)
ios_linkagg: *remove
register: result
- assert:
that:
- "result.changed == false"
- name: create aggregate of linkagg definitions
ios_linkagg: &create_agg
aggregate:
- { group: 5 }
- { group: 20, mode: active, members: ['GigabitEthernet0/1'] }
authorize: yes
register: result
- assert:
that:
- "result.changed == true"
- "'interface port-channel 5' in result.commands"
- "'interface port-channel 20' in result.commands"
- "'interface GigabitEthernet0/1' in result.commands"
- "'channel-group 20 mode active' in result.commands"
- name: create aggregate of linkagg definitions(Idempotence)
ios_linkagg: *create_agg
register: result
- assert:
that:
- "result.changed == false"
- name: teardown(part1)
ios_config:
lines:
- no interface port-channel 20
authorize: yes
ignore_errors: yes
- name: teardown(part2)
ios_config:
lines:
- no interface port-channel 5
authorize: yes
ignore_errors: yes
- name: teardown(part3)
ios_config:
lines:
- no channel-group 20 mode active
authorize: yes
parents: "{{ item }}"
loop:
- interface GigabitEthernet0/1
- interface GigabitEthernet0/2
when: switch_type == 'L2'
- debug: msg="END cli/basic.yaml on connection={{ ansible_connection }}"