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.pyo

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlmZdd
l
mZddlmZddlmZdefd��YZd�Zedkr�e�ndS(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	communitytsupported_bys
---
module: onyx_igmp
version_added: "2.7"
author: "Samer Deeb (@samerd)"
short_description: Configures IGMP global parameters
description:
  - This module provides declarative management of IGMP protocol params
    on Mellanox ONYX network devices.
notes:
  - Tested on ONYX 3.6.6107
options:
  state:
    description:
      - IGMP state.
    required: true
    choices: ['enabled', 'disabled']
  last_member_query_interval:
    description:
      - Configure the last member query interval, range 1-25
  mrouter_timeout:
    description:
      - Configure the mrouter timeout, range 60-600
  port_purge_timeout:
    description:
      - Configure the host port purge timeout, range 130-1225
  proxy_reporting:
    description:
      - Configure ip igmp snooping proxy and enable reporting mode
    choices: ['enabled', 'disabled']
  report_suppression_interval:
    description:
      - Configure the report suppression interval, range 1-25
  unregistered_multicast:
    description:
      - Configure the unregistered multicast mode
        Flood unregistered multicast
        Forward unregistered multicast to mrouter ports
    choices: ['flood', 'forward-to-mrouter-ports']
  default_version:
    description:
      - Configure the default operating version of the IGMP snooping
    choices: ['V2','V3']
sZ
- name: configure igmp
  onyx_igmp:
    state: enabled
    unregistered_multicast: flood
s(
commands:
  description: The list of configuration mode commands to send to the device.
  returned: always
  type: list
  sample:
    - ip igmp snooping
    - ip igmp snooping last-member-query-interval 10
    - ip igmp snooping mrouter-timeout 150
    - ip igmp snooping port-purge-timeout 150
N(t
AnsibleModule(t	iteritems(tshow_cmd(tBaseOnyxModuletOnyxIgmpModulecB`s�eZejd�Zeddddd	dd
d�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d�Zd�ZRS(s^(\d+)\s+secondstlast_member_query_intervaliisLast member query intervaltmrouter_timeouti<iXsMrouter timeouttport_purge_timeouti�i�sPort purge timeouttreport_suppression_intervalsReport suppression intervalcC`s�tdtdddgdt�dtdd�d	tdd�d
tdd�dtdddg�dtdd�d
tdddg�dtdddg��}t�}|j|�td|dt�|_dS(s initialize module
        tstatetchoicestenabledtdisabledtrequiredR
ttypetintRRtproxy_reportingRtunregistered_multicasttfloodsforward-to-mrouter-portstdefault_versiontV2tV3t
argument_spectsupports_check_modeN(tdicttTruetupdateRt_module(tselftelement_specR((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pytinit_module`s	
cC`sr|jj|�}|rU|d|d}}|j|�}|j||||�ntt|�j||�dS(Nii(t_RANGE_VALIDATORStgett_validate_rangetsuperRt
_validate_key(R$tparamtkeytinterval_paramstmin_valtmax_valtvalue((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyR+tscC`s/|jj}t|�|_|j|j�dS(N(R#tparamsR t_required_configtvalidate_param_values(R$t
module_params((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pytget_required_config}scC`s�|d}|sdS|jdd�|jd<|jdd�|jd<|jdd�|jd	<|jd
d�|jd<x|t|j�D]k\}}|d
}|j|d�}|jj|�}|r�t|jd��}nd}||j|<q�WdS(NisIGMP snooping globallyRRsProxy-reporting globallyRs!IGMP default version for new VLANRRs$IGMP snooping unregistered multicastRRiti(	R(t_current_configR	t_RANGE_INTERVALStTIME_INTERVAL_REGEXtmatchRtgrouptNone(R$tigmp_configt
interval_nameR.tdisplay_strR1R;tinterval_value((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyt_set_igmp_config�s&

cC`s"d}t|j|dtdt�S(Nsshow ip igmp snoopingtjson_fmtt
fail_on_error(R
R#R!tFalse(R$tcmd((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyt
_show_igmp�scC`s2t�|_|j�}|r.|j|�ndS(N(R R8RGRB(R$R>((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pytload_current_config�scC`s4|jd}|dkr&|j�n
|j�dS(NRR(R3t_generate_igmp_cmdst_generate_no_igmp_cmds(R$R((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pytgenerate_commands�s

cC`s�|jjdd�}|dkr4|jjd�nx|jD]t}|jj|�}|sbq>n|jj|�}||kr�q>n|jdd�}|jjd||f�q>W|jjd�}|r	|jjdd�}||kr	|jjd	|�q	n|jjd
�}|rw|jjd
d�}||krwd}|dkrad|}n|jj|�qwn|jjd
�}|r�|jjd
d�}||kr�|d}|jjd|�q�ndS(NRRsip igmp snoopingt_t-sip igmp snooping %s %sRRs*ip igmp snooping unregistered multicast %sRs ip igmp snooping proxy reportingsno %sRRisip igmp snooping version %s(R8R(t	_commandstappendR9R3treplace(R$t
curr_stateR?treq_valt
curr_valuetinterval_cmdRFtversion((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyRI�sJ				
	
	cC`s8|jjdd�}|dkr4|jjd�ndS(NRRsno ip igmp snooping(R8R(RNRO(R$RQ((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyRJ�s(iisLast member query interval(i<iXsMrouter timeout(i�i�sPort purge timeout(iisReport suppression interval(t__name__t
__module__tretcompileR:R R9R&R+R6RBRGRHRKRIRJ(((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyRVs										*cC`stj�dS(s+ main entry point for module execution
    N(Rtmain(((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyRZ�st__main__(t
__future__RRRRt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNRXtansible.module_utils.basicRtansible.module_utils.sixR	t&ansible.module_utils.network.onyx.onyxR
RRRZRV(((sJ/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_igmp.pyt<module>s 


-�	

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