Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/onyx/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyo

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlZddlm
Z
dd
lmZddlmZd�Zdefd��YZd�Zedkr�e�ndS(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	communitytsupported_bys
---
module: onyx_igmp_vlan
version_added: '2.8'
author: Anas Badaha (@anasbadaha)
short_description: Configures IGMP Vlan parameters
description:
  - This module provides declarative management of IGMP vlan configuration on Mellanox ONYX network devices.
notes:
  - Tested on ONYX 3.7.0932-01
options:
  vlan_id:
    description:
      - VLAN ID, vlan should exist.
    required: true
  state:
    description:
      - IGMP state.
    choices: ['enabled', 'disabled']
    default: enabled
  mrouter:
    description:
      - Configure ip igmp snooping mrouter port on vlan
    suboptions:
      state:
        description:
          - Enable IGMP snooping mrouter on vlan interface.
        choices: ['enabled', 'disabled']
        default: enabled
      name:
        description:
          - Configure mrouter interface
        required: true
  querier:
    description:
      - Configure the IGMP querier parameters
    suboptions:
      state:
        description:
          - Enable IGMP snooping querier on vlan in the switch.
        choices: ['enabled', 'disabled']
        default: enabled
      interval:
        description:
          - Update time interval between querier queries, range 60-600
      address:
        description:
          - Update IP address for the querier
  static_groups:
    description:
      - List of IGMP static groups.
    suboptions:
      multicast_ip_address:
        description:
          - Configure static IP multicast group, range 224.0.1.0-239.255.255.25.
        required: true
      name:
        description:
          - interface name to configure static groups on it.
      sources:
        description:
          - List of IP sources to be configured
  version:
    description:
      - IGMP snooping operation version on this vlan
    choices: ['V2','V3']
sx
- name: configure igmp vlan
  onyx_igmp_vlan:
    state: enabled
    vlan_id: 10
    version:
      V2
    querier:
      state: enabled
      interval: 70
      address: 10.11.121.13
    mrouter:
      state: disabled
      name: Eth1/2
    static_groups:
      - multicast_ip_address: 224.5.5.8
        name: Eth1/1
        sources:
          - 1.1.1.1
          - 1.1.1.2
s�
commands:
  description: The list of configuration mode commands to send to the device.
  returned: always
  type: list
  sample:
    - vlan 10 ip igmp snooping
    - vlan 10 ip igmp snooping static-group 224.5.5.5 interface ethernet 1/1
N(t
AnsibleModule(tshow_cmd(tBaseOnyxModulecC`stjdtj|��dS(Ns!Ii(tstructtunpacktsockett	inet_aton(taddr((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt
_ip_to_intxstOnyxIgmpVlanModulecB`s"eZed�Zed�Zd�Zd�Zd�Zdd�Z	d�Z
d�Zed��Z
d	�Zed
��Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!RS(s	224.0.1.0s239.255.255.255cC`sjtdtdt�dtdddgdd��}tdtdddgdd�dtd	d
�dt��}tdtdt�dtdt�d
td	d��}tdtd	d
dt�dtdddgdd�dtd	dd|�dtd	dddd|�dtd	dd|�dtdddg��}t�}|j|�td|dt�|_dS(s initialize module
        tnametrequiredtstatetchoicestenabledtdisabledtdefaulttintervalttypetinttaddresstmulticast_ip_addresstsourcestlisttvlan_idtqueriertdicttoptionst
static_groupstelementstmroutertversiontV2tV3t
argument_spectsupports_check_modeN(R"tTruetupdateRt_module(tselftmrouter_spectquerier_spectstatic_groups_spectelement_specR*((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pytinit_module�s"!!	
cC`s/|jj}t|�|_|j|j�dS(N(R.tparamsR"t_required_configtvalidate_param_values(R/t
module_params((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pytget_required_config�scC`sE|dksA|dkrn&|dk	rA|jjdd|�ndS(NR Rtmsgs6Can not set %s value on switch while state is disabled(tNoneR.t	fail_json(R/t	attr_namet
attr_value((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_validate_attr_is_not_none�scC`sU|ddkr8x%|D]}|j|||�qWntt|�j||�dS(NRR(R?tsuperRR7(R/tobjtparamR=((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyR7�s
cC`sR|jd�}|rNdt|�ko2dknrN|jjdd�ndS(NRi<iXR:s/query-interval value must be between 60 and 600(tgetRR.R<(R/tvalueR((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pytvalidate_querier�s)cC`sS|jd�}t|�}||jks9||jkrO|jjdd�ndS(NRR:sAmulticast IP address must be in range 224.0.1.0 - 239.255.255.255(RCRtMIN_MULTICAST_IPtMAX_MULTICAST_IPR.R<(R/RDtmulticast_ip((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pytvalidate_static_groups�scC`s-|dkridd6Sidd6|d6SdS(NtnoneRRRR((tmrouter_port((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_get_curr_mrouter_config�s
cC`s�d|kridd6Sd|kr�|j�d}|d|jd}|d}t|d	�}|d
}idd6|d6|d
6SdS(NsNon-QuerierRRtQuerieris(Snooping querier information for VLAN %dR isQuery intervalsConfigured querier IP addressRRR(t_show_igmp_querier_configR6R(R/tquerier_configtigmp_querier_configtsnooping_querier_infoRR((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_get_curr_querier_config�s


cC`s$d|krdSd|kr dSdS(NR)R(((R'((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_get_curr_version�scC`sad}d}|j|�}|dk	rY|d}|jd|jd|f�}|dk	rRt|�dkr�|djd�}n�t|�dkr@t�}|djd�}|djd�}|djd	�}t|t�rd}	x3|D]}
||	||
<|	d7}	q�Wn
|||<|djd�}|}ni|d
6|d6SdSndSdS(Nis3Snooping group information for VLAN %d and group %sR isV1/V2 Receiver PortsisV3 Receiver PortssPort NumbersInclude sourcesRtnames(R;t!_show_igmp_snooping_groups_configRCR6tlenR"t
isinstanceR(R/RRRTtigmp_snooping_groups_configtsnooping_group_informationtsources_dicttv3_receiver_portstports_numbertitport_number((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_get_curr_static_group_config�s8
	

	

	
c	C`sV|d}|sdS|jd�|jd<d|jdkrMd|jd<n#d|jdkrpd|jd<n|jd�}t|j|��|jd<|jd�}t|j|��|jd	<|jd
�}|j|�|jd<|jjd�}|dk	rRt�}|jd<x2|D]'}|j|d
�}|||d
<q$WndS(Nis	message 1RRRsmrouter static port listR&s	message 3R!s	message 2R'R$R(	RCt_current_configR"RLRRRSR6R;R_(	R/tigmp_vlan_configRKROR'treq_static_groupsR$tstatic_grouptstatic_group_config((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_set_igmp_config�s(

cC`s-d|jd}t|j|dtdt�S(Nsshow ip igmp snooping vlan %dR tjson_fmtt
fail_on_error(R6R	R.R,tFalse(R/tcmd((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_show_igmp_vlan
scC`s-d|jd}t|j|dtdt�S(Ns&show ip igmp snooping querier vlan %d R RfRg(R6R	R.R,Rh(R/Ri((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRNscC`s3d|jd|f}t|j|dtdt�S(Ns-show ip igmp snooping groups vlan %d group %sR RfRg(R6R	R.R,Rh(R/RRi((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRUs

cC`s2t�|_|j�}|r.|j|�ndS(N(R"R`RjRe(R/Ra((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pytload_current_configsc
C`sc|jjdd�}|j|�|jjd�}|dk	rP|j|�n|jjd�}|dk	r�|jdd�}|j|�|jd�}|dk	r�|jd|d�n|jd�}|dk	r�|jd|d�q�n|jjd�}|dk	r |j|�n|jjd	�}|dk	r_x|D]}	|j|	�qEWndS(
NRRR&R!Rsquery-intervalRR'R$(	R6RCt_generate_igmp_vlan_cmdsR;t_generate_igmp_mrouter_cmdst_generate_igmp_querier_cmdst_gen_querier_attr_commandst_generate_igmp_version_cmdst _generate_igmp_static_groups_cmd(
R/t	req_statet_mroutert_queriertreq_querier_statetreq_querier_intervaltreq_querier_addresst_versiont_static_groupsRc((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pytgenerate_commands s,


cC`sE|dkr d|jd}nd|jd}|jj|�dS(NRsvlan %d ip igmp snoopingR svlan %d no ip igmp snooping(R6t	_commandstappend(R/Rrt
igmp_vlan_cmd((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_add_igmp_vlan_commands>scC`s2|jjd�}||kr.|j|�ndS(NR(R`RCR~(R/Rrt
curr_state((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRlFscC`sX|jjd�}|j|�}||krT|jjd|jd||f�ndS(NR!s&vlan %d ip igmp snooping querier %s %sR (R`RCR{R|R6(R/R=treq_attr_valuet
attr_cmd_namet
_curr_queriertcurr_querier_val((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRoKs
cC`sX|dkr*|jjd|jd�n*|dkrT|jjd|jd�ndS(NRs vlan %d ip igmp snooping querierR Rs#vlan %d no ip igmp snooping querier(R{R|R6(R/Ru((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_add_querier_commandsRs
cC`sA|jjd�}|jd�}||kr=|j|�ndS(NR!R(R`RCR�(R/RuR�tcurr_querier_state((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRnYscC`sJ|jjd�}||krF|jjd|jd|df�ndS(NR's#vlan %d ip igmp snooping version %sR i(R`RCR{R|R6(R/R't
_curr_version((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRp_scC`s|jd�}|jd�}|jd�}|jd�}|jdd�}|dkr�|dkr�|jjd|jd|f�n�|dkr�|dkr�|jjd	|jd|f�nH|dkr|dkr||kr|jjd	|jd|f�ndS(
NRRtEths	ethernet RRs0vlan %d no ip igmp snooping mrouter interface %sR s-vlan %d ip igmp snooping mrouter interface %s(RCtreplaceR{R|R6(R/treq_mroutertcurr_mrouterRtcurr_interfaceRrt
req_interfacetmrouter_interface((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_add_mrouter_commandses$cC`s5|jjd�}||kr1|j||�ndS(NR&(R`RCR�(R/R�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRmuscC`s�|dkr?|jjd|jd||jdd�f�nK|jdd�|kr�|jjd|jd||jdd�f�ndS(Ns5vlan %d ip igmp snooping static-group %s interface %sR R�s	ethernet tEte(R;R{R|R6R�(R/treq_nametreq_multicast_ip_addresst
curr_names((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt_add_igmp_static_groups_cmdzs'cC`s�|dkrSxw|D]9}|jjd|jd||jdd�|f�qWn3|j|jdd��}|dkr�tg�}ntd�|jd�D��}t|�t|�}t|�t|�}t|�d	kr-xD|D]9}|jjd|jd||jdd�|f�q�Wnt|�d	kr�xD|D]9}|jjd
|jd||jdd�|f�qFWndS(Ns?vlan %d ip igmp snooping static-group %s interface %s source %sR R�s	ethernet R�R�cs`s|]}|j�VqdS(N(tstrip(t.0tx((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pys	<genexpr>�st,isBvlan %d no ip igmp snooping static-group %s interface %s source %s(	R;R{R|R6R�RCtsettsplitRV(R/treq_sourcesR�R�tcurr_sourcestsourcetsources_to_addtsources_to_remove((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt#_add_igmp_static_groups_sources_cmd�s,


!

c	C`s�|jd�}|jd�}|jd�}|jjd�}|j|�}d}d}|dk	r�|jd�}|jd�}n|j|||�|dk	r�|j||||�ndS(NRRRR$RT(RCR`R;R�R�(	R/RcR�R�R�tcurr_static_groupstcurr_static_groupR�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyRq�sN("t__name__t
__module__RRFRGR4R9R?R;R7RERItstaticmethodRLRRRSR_ReRjRNRURkRzR~RlRoR�RnRpR�RmR�R�Rq(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyR|s:							#																cC`stj�dS(s+ main entry point for module execution
    N(Rtmain(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyR��st__main__(t
__future__RRRRt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNR
Rtansible.module_utils.basicRt&ansible.module_utils.network.onyx.onyxR	R
RRR�R�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp_vlan.pyt<module>s$


D
	�2	

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]