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_l2_interface.pyc

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
mZddlZdd
l
mZddlmZddlmZddlmZddlmZdefd��YZd�Zedkr�e�ndS(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	communitytsupported_bysh
---
module: onyx_l2_interface
version_added: "2.5"
author: "Samer Deeb (@samerd)"
short_description: Manage Layer-2 interface on Mellanox ONYX network devices
description:
  - This module provides declarative management of Layer-2 interface
    on Mellanox ONYX network devices.
options:
  name:
    description:
      - Name of the interface.
  aggregate:
    description:
      - List of Layer-2 interface definitions.
  mode:
    description:
      - Mode in which interface needs to be configured.
    default: access
    choices: ['access', 'trunk', 'hybrid']
  access_vlan:
    description:
      - Configure given VLAN in access port.
  trunk_allowed_vlans:
    description:
      - List of allowed VLANs in a given trunk port.
  state:
    description:
      - State of the Layer-2 Interface configuration.
    default: present
    choices: ['present', 'absent']
s�
- name: configure Layer-2 interface
  onyx_l2_interface:
    name: Eth1/1
    mode: access
    access_vlan: 30
- name: remove Layer-2 interface configuration
  onyx_l2_interface:
    name: Eth1/1
    state: absent
s�
commands:
  description: The list of configuration mode commands to send to the device
  returned: always.
  type: list
  sample:
    - interface ethernet 1/1
    - switchport mode access
    - switchport access vlan 30
(tdeepcopyN(t
AnsibleModule(t	iteritems(tremove_default_spec(tBaseOnyxModule(tget_interfaces_configtOnyxL2InterfaceModulecB`s�eZejd�Zed��Zed��Zd�Zd�Z	d�Z
ed��Zed��Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�ZRS(s^.*(Eth\d+\/\d+|Mpo\d+|Po\d+)cC`smtdt�dtdd�dtdddd�dtd	d
dd
dg�d
td	dddddg��S(Ntnametaccess_vlanttypetintttrunk_allowed_vlanstlisttelementststatetdefaulttpresenttchoicestabsenttmodetaccessthybridttrunk(tdict(tcls((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_get_element_specSs	cC`s-t|�}tdt�|d<t|�|S(NtrequiredR(RRtTrueR(R telement_spectaggregate_spec((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_get_aggregate_spec_s
c	C`s�|j�}|j|�}tdtddddd|��}|j|�ddgg}ddgg}td|d	|d
|dt�|_dS(
s module initialization
        t	aggregateRRRRtoptionsRt
argument_spectrequired_one_oftmutually_exclusivetsupports_check_modeN(R!R&RtupdateR	R#t_module(tselfR$R%R)R*R+((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytinit_modulehs
cC`st�|_|jj}|jd�}|r�x�|D]i}x4|D],}|j|�dkrA||||<qAqAW|j||�|j�}|jj|�q4WnZi|dd6|dd6|dd6|dd6|dd6}|j|�|jj|�dS(NR'RRRRR(	Rt_required_configR.tparamstgettNonetvalidate_param_valuestcopytappend(R/t
module_paramsR'titemtkeytreq_itemR2((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytget_required_configzs&


cC`sC|r?dt|�ko#dknr?|jjdd�ndS(Nii�tmsgs"vlan id must be between 1 and 4094(RR.t	fail_json(R/tvalue((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytvalidate_access_vlan�s)cC`s�|j|d�}g}|r�g|jd�D]}|j�^q.}x�|D]�}d|kru|jt|��qM|jd�}t|dj��}t|dj��}	t||	d�}
|j|
�qMWn|S(Ns
Allowed vlanst,t-ii(tget_config_attrtsplittstripR7Rtrangetextend(R tif_datat
allowed_vlanstinterface_allwoed_vlanstxtvlanstvlant
vlan_ranget
min_numbert
max_numbert	vlan_list((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytget_allowed_vlans�s(
cC`sB|j|d�}|r>yt|�SWq>tk
r:dSXndS(NsAccess vlan(RCRt
ValueErrorR4(R RHR((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytget_access_vlan�s
cC`s]|j|jkr|d}ni|d6|j|d�d6|j|�d6|j|�d6S(NiRtModeRRR(t_os_versiontONYX_API_VERSIONRCRTRR(R/tif_nameRH((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_create_switchport_data�s
cC`st|jd�S(Nt
switchport(R
R.(R/((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_get_switchport_config�scC`sk|j�|_t�|_|j�}|s1dSx3t|�D]%\}}|j||�|j|<q>WdS(N(t_get_os_versionRVRt_current_configR[R
RY(R/tswitchports_configRXRH((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytload_current_config�scC`sx|jd�r|jdd�S|jd�r>|jdd�S|jd�r]|jdd�S|jjdd|�dS(	NtEths	ethernet tPos
port-channel tMposmlag-port-channel R=sinvalid interface name: %s(t
startswithtreplaceR.R>(R/RX((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_get_switchport_command_name�scC`sG|j|�}|jjd|�|jj|�|jjd�dS(Nsinterface %stexit(Ret	_commandsR7RG(R/RXtcommandstif_cmd_name((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_add_interface_commands�scC`sdg}|j||�dS(Nsno switchport force(Rj(R/RXRh((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt _generate_no_switchport_commands�s	c	C`s�g}|jj|i�}|jd�}|jd�}||krY|jd|�n|jd�}|jd�}||kr�|r�|jd|�n|jd�p�t�}	|	r�t|	�}	n|jd�p�t�}
|
r�t|
�}
n|dkrv|	|
krv|
|	}x%|D]}|jd||f�q W|	|
}
x(|
D]}|jd||f�qRWn|r�|j||�ndS(	NRsswitchport mode %sRsswitchport access vlan %sRRs!switchport %s allowed-vlan add %ss$switchport %s allowed-vlan remove %s(R]R3R7tsetRj(R/RXtreq_confRht	curr_conft	curr_modetreq_modetcurr_access_vlantreq_access_vlantcurr_trunk_vlanstreq_trunk_vlanstadded_vlanstvlan_idt
removed_vlans((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_generate_switchport_commands�s6

	

	cC`sjxc|jD]X}|d}|d}|dkrR||jkrb|j|�qbq
|j||�q
WdS(NRRR(R1R]RkRx(R/RmRRX((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pytgenerate_commands�s

cC`s�|jj|i�}|sLd|}|jjd|�|jjd�n|d}|r�||jd�kr�|jjd||f�q�nt|jdg��}|d}|d}xr|D]j}	|	|kr�q�n|j|	�}
d|
|f}|jj|�d	|
||f}|jj|�q�Wt|�}xR|D]J}	|	|kr]qEn|j|	�}
d
|
||f}|jj|�qEWdS(Nsvlan svlan %sRft	vlan_namesvlan %s name %st
interfacesRsinterface %s switchport mode %ss.interface %s switchport %s allowed-vlan add %ss1interface %s switchport %s allowed-vlan remove %s(R]R3RgR7Rltget_switchport_command_name(R/RvRmt	curr_vlantcmdRztcurr_memberstreq_membersRtmemberRX((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt_generate_vlan_commandss:

 



(t__name__t
__module__tretcompiletIFNAME_REGEXtclassmethodR!R&R0R<R@RRRTRYR[R_ReRjRkRxRyR�(((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyRPs"									
				
cC`stj�dS(s+ main entry point for module execution
    N(Rtmain(((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyR�$st__main__(t
__future__RRRRt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNR6RR�tansible.module_utils.basicR	tansible.module_utils.sixR
t)ansible.module_utils.network.common.utilsRt&ansible.module_utils.network.onyx.onyxRR
RR�R�(((sR/usr/lib/python2.7/site-packages/ansible/modules/network/onyx/onyx_l2_interface.pyt<module>s$


"�	

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