|
|
|
---
|
|
|
|
- debug: msg="START connection={{ ansible_connection }} nxos_igmp_snooping sanity test"
|
|
|
|
- debug: msg="Using provider={{ connection.transport }}"
|
|
|
|
when: ansible_connection == "local"
|
|
|
|
|
|
|
|
- meta: end_host
|
|
|
|
# show ip igmp snooping | json does not work on some platforms
|
|
|
|
when: platform is search('N6K')
|
|
|
|
|
|
|
|
- set_fact: gt_run="false"
|
|
|
|
- block:
|
|
|
|
- set_fact: gt_run="true"
|
|
|
|
- set_fact: group_timeout="never"
|
|
|
|
- set_fact: def_group_timeout="default"
|
|
|
|
when: platform is not search('N35|N5K|N6K')
|
|
|
|
|
|
|
|
- name: Setup
|
|
|
|
nxos_igmp_snooping: &default
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
state: default
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- name: Configure igmp snooping with non-default values
|
|
|
|
nxos_igmp_snooping: &non-default
|
|
|
|
snooping: false
|
|
|
|
# group_timeout: n/a when snooping:false
|
|
|
|
link_local_grp_supp: false
|
|
|
|
report_supp: false
|
|
|
|
v3_report_supp: true
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: &true
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- block:
|
|
|
|
- name: "Check Idempotence - Configure igmp snooping with non-default values"
|
|
|
|
nxos_igmp_snooping: *non-default
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: &false
|
|
|
|
that:
|
|
|
|
- "result.changed == false"
|
|
|
|
when: (imagetag and (imagetag is version_compare('D1', 'ne')))
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- name: Negative Test config group-timeout when igmp snooping disabled
|
|
|
|
nxos_igmp_snooping:
|
|
|
|
snooping: false
|
|
|
|
group_timeout: "{{group_timeout|default(omit)}}"
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
state: present
|
|
|
|
ignore_errors: yes
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.failed == true"
|
|
|
|
- "result.msg == 'group-timeout cannot be enabled or changed when ip igmp snooping is disabled'"
|
|
|
|
|
|
|
|
- name: Configure group-timeout non-default
|
|
|
|
nxos_igmp_snooping: &non-defgt
|
|
|
|
snooping: true
|
|
|
|
group_timeout: "{{group_timeout|default(omit)}}"
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
nxos_igmp_snooping: *non-defgt
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
when: gt_run
|
|
|
|
|
|
|
|
- name: Configure igmp snooping with default group timeout
|
|
|
|
nxos_igmp_snooping: &defgt
|
|
|
|
group_timeout: "{{def_group_timeout|default(omit)}}"
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
state: present
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
when: gt_run
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
nxos_igmp_snooping: *defgt
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
when: gt_run or (imagetag and (imagetag is version_compare('D1', 'ne')))
|
|
|
|
|
|
|
|
- name: Configure igmp snooping with default values
|
|
|
|
nxos_igmp_snooping: *default
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- name: "Check Idempotence - Configure igmp snooping with default values"
|
|
|
|
nxos_igmp_snooping: *default
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
when: (imagetag and (imagetag is version_compare('D1', 'ne')))
|
|
|
|
|
|
|
|
always:
|
|
|
|
- name: Configure igmp snooping with default values
|
|
|
|
nxos_igmp_snooping: *default
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- debug: msg="END connection={{ ansible_connection }} nxos_igmp_snooping sanity test"
|