�
�Udac @ s� i d d 6d g d 6d d 6Z d Z d Z d Z d d
l m Z m Z d d l m Z d d l m Z d
� Z
d � Z 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_bysD
---
module: nxos_udld_interface
extends_documentation_fragment: nxos
version_added: "2.2"
short_description: Manages UDLD interface configuration params.
description:
- Manages UDLD interface configuration params.
author:
- Jason Edelman (@jedelman8)
notes:
- Tested against NXOSv 7.3.(0)D1(1) on VIRL
- Feature UDLD must be enabled on the device to use this module.
options:
mode:
description:
- Manages UDLD mode for an interface.
required: true
choices: ['enabled','disabled','aggressive']
interface:
description:
- FULL name of the interface, i.e. Ethernet1/1-
required: true
state:
description:
- Manage the state of the resource.
required: false
default: present
choices: ['present','absent']
s�
# ensure Ethernet1/1 is configured to be in aggressive mode
- nxos_udld_interface:
interface: Ethernet1/1
mode: aggressive
state: present
host: "{{ inventory_hostname }}"
username: "{{ un }}"
password: "{{ pwd }}"
# Remove the aggressive config only if it's currently in aggressive mode and then disable udld (switch default)
- nxos_udld_interface:
interface: Ethernet1/1
mode: aggressive
state: absent
host: "{{ inventory_hostname }}"
username: "{{ un }}"
password: "{{ pwd }}"
# ensure Ethernet1/1 has aggressive mode enabled
- nxos_udld_interface:
interface: Ethernet1/1
mode: enabled
host: "{{ inventory_hostname }}"
username: "{{ un }}"
password: "{{ pwd }}"
s�
proposed:
description: k/v pairs of parameters passed into module
returned: always
type: dict
sample: {"mode": "enabled"}
existing:
description:
- k/v pairs of existing configuration
returned: always
type: dict
sample: {"mode": "aggressive"}
end_state:
description: k/v pairs of configuration after module execution
returned: always
type: dict
sample: {"mode": "enabled"}
updates:
description: command sent to the device
returned: always
type: list
sample: ["interface ethernet1/33",
"no udld aggressive ; no udld disable"]
changed:
description: check to see if a change was made on the device
returned: always
type: bool
sample: true
i����( t load_configt run_commands( t nxos_argument_spec( t
AnsibleModulec 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_listt command( ( sT /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_udld_interface.pyt flatten_listv s
c C s d | j � d } i } d } d } y� t | i | d 6d d 6g � d } d | k rh d } d } nl d | k r� d } d } nQ d
| k r� d } d
} n6 d | k r� d } d } n d
| k r� d } d
} n | | d <Wn t t t f k
ri } n X| | f S( Ns show run udld all | section t $R t textt outputi t
aggressives no udld enablet disableds no udld disablet enableds udld disables udld enablet mode( t titlet NoneR t KeyErrort AttributeErrort
IndexError( t modulet interfaceR t interface_udldR t mode_strt body( ( sT /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_udld_interface.pyt get_udld_interface� s2 $
c C sV g } | d } | d k r, | j d � n
| j d � | j d d j | � � | S( NR R s udld aggressives no udld aggressivei s
interface {0}( R t insertt format( t deltaR R t existingt commandsR ( ( sT /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_udld_interface.pyt# get_commands_config_udld_interface1� s
c C s� g } t | | � \ } } | d } | d k rO | d k rF d } qj d } n | d k rd d } n d } | r� | j | � | j d d j | � � n | S( NR R s no udld enables udld enables no udld disables udld disablei s
interface {0}( R"