�
�Udac @ s� i d d 6d g d 6d d 6Z d Z d Z d Z d d
l Z d d l m Z m Z m Z d d l m Z m
Z
d d
l m Z d d � Z
d � Z d � Z d � Z e d � Z d � Z d � Z d � Z e d k r� e � n d
S( s 1.1t metadata_versiont previewt statust networkt supported_bys!
---
module: nxos_igmp_snooping
extends_documentation_fragment: nxos
version_added: "2.2"
short_description: Manages IGMP snooping global configuration.
description:
- Manages IGMP snooping global configuration.
author:
- Jason Edelman (@jedelman8)
- Gabriele Gerbino (@GGabriele)
notes:
- Tested against NXOSv 7.3.(0)D1(1) on VIRL
- When C(state=default), params will be reset to a default state.
- C(group_timeout) also accepts I(never) as an input.
options:
snooping:
description:
- Enables/disables IGMP snooping on the switch.
type: bool
group_timeout:
description:
- Group membership timeout value for all VLANs on the device.
Accepted values are integer in range 1-10080, I(never) and
I(default).
link_local_grp_supp:
description:
- Global link-local groups suppression.
type: bool
report_supp:
description:
- Global IGMPv1/IGMPv2 Report Suppression.
type: bool
v3_report_supp:
description:
- Global IGMPv3 Report Suppression and Proxy Reporting.
type: bool
state:
description:
- Manage the state of the resource.
default: present
choices: ['present','default']
sh
# ensure igmp snooping params supported in this module are in there default state
- nxos_igmp_snooping:
state: default
# ensure following igmp snooping params are in the desired state
- nxos_igmp_snooping:
group_timeout: never
snooping: true
link_local_grp_supp: false
optimize_mcast_flood: false
report_supp: true
v3_report_supp: true
sa
commands:
description: command sent to the device
returned: always
type: list
sample: ["ip igmp snooping link-local-groups-suppression",
"ip igmp snooping group-timeout 50",
"no ip igmp snooping report-suppression",
"no ip igmp snooping v3-report-suppression",
"no ip igmp snooping"]
i����N( t
get_configt load_configt run_commands( t nxos_argument_spect
check_args( t
AnsibleModulet textc C s$ i | d 6| d 6} t | | g � S( Nt commandt output( R ( R t moduleR
( ( sS /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_igmp_snooping.pyt execute_show_commandg s
c C sG g } x: | D]2 } t | t � r2 | j | � q
| j | � q
W| S( N( t
isinstancet listt extendt append( t
command_listst flat_command_listR ( ( sS /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_igmp_snooping.pyt flatten_listp s
c C s: t j d | t j � } | r0 | j d � } n d } | S( Ns! Group timeout configured: (\S+)i t ( t ret searcht Mt group( t configt matcht value( ( sS /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_igmp_snooping.pyt get_group_timeoutz s
c C s� d } i } y t | | d d �d } Wn t k
rB g } n X| rtt | j d � � j � } | d k s| | d k r� t | d <n
t | d <t | j d � � j � } | d k s� | d k r� t | d <n
t | d <t | j d
� � j � } | d k s| d k rt | d <n
t | d <t | j d � � j � } | d k sZ| d k rgt | d
<qtt | d
<n d } t | | � d } | r�t | � | d <n | S( Ns show ip igmp snoopingR
t jsoni t enabledt truet snoopingt grepsupt report_suppt glinklocalgrpsupt link_local_grp_suppt gv3repsupt v3_report_suppt
group_timeout( R t
IndexErrort strt gett lowert Truet FalseR ( R R t existingt bodyR# R% R'