�
�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 m Z d d l m Z d d
l
m Z d d l Z d 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_vtp_domain
extends_documentation_fragment: nxos
version_added: "2.2"
short_description: Manages VTP domain configuration.
description:
- Manages VTP domain configuration.
author:
- Gabriele Gerbino (@GGabriele)
notes:
- Tested against NXOSv 7.3.(0)D1(1) on VIRL
- VTP feature must be active on the device to use this module.
- This module is used to manage only VTP domain names.
- VTP domain names are case-sensible.
- If it's never been configured before, VTP version is set to 1 by default.
Otherwise, it leaves the previous configured version untouched.
Use M(nxos_vtp_version) to change it.
- Use this in combination with M(nxos_vtp_password) and M(nxos_vtp_version)
to fully manage VTP operations.
options:
domain:
description:
- VTP domain name.
required: true
s�
# ENSURE VTP DOMAIN IS CONFIGURED
- nxos_vtp_domain:
domain: ntc
host: "{{ inventory_hostname }}"
username: "{{ un }}"
password: "{{ pwd }}"
s�
proposed:
description: k/v pairs of parameters passed into module
returned: always
type: dict
sample: {"domain": "ntc"}
existing:
description:
- k/v pairs of existing vtp domain
returned: always
type: dict
sample: {"domain": "testing", "version": "2", "vtp_password": ""}
end_state:
description: k/v pairs of vtp domain after module execution
returned: always
type: dict
sample: {"domain": "ntc", "version": "2", "vtp_password": ""}
updates:
description: command sent to the device
returned: always
type: list
sample: ["vtp domain ntc"]
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_spect
check_args( t get_capabilities( t
AnsibleModuleNt jsonc C s* i | d 6| d 6g } t | | � } | S( Nt commandt output( R ( R t moduleR
t cmdst body( ( sP /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_vtp_domain.pyt execute_show_commanda 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 ( ( sP /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_vtp_domain.pyt flatten_listj s
c
C s� d } t | | d � d } i } | r� d } d } y, t j | | t j � } | j � d } Wn t k
ry d } n Xy, t j | | t j � } | j � d } Wn t k
r� d } n X| r� | r� | | d <| | d <t | � | d <q� n | S(
Ns show vtp statust texti s- .*VTP version running\s+:\s+(?P<version>\d).*s) .*VTP Domain Name\s+:\s+(?P<domain>\S+).*t versiont t domaint vtp_password( R t ret matcht DOTALLt groupdictt AttributeErrort get_vtp_password(
R R R t
vtp_parsedt
version_regext domain_regext
match_versionR t match_domainR ( ( sP /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_vtp_domain.pyt get_vtp_configt s,
c C s� d } d } t | � d d } t j d | � r; d } n t | | | � d } | d k rr | j d d � } n6 d } d
} t j | | � } | r� | j d � } n t | � S( Ns show vtp passwordR t device_infot network_os_models Nexus 6R i t passwdR s VTP Password: (\S+)i ( R R t searchR t gett groupt str( R R R
t capR t passwordt rpt mo( ( sP /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_vtp_domain.pyR# � s c
C s� t d t d d d t � � } | j t � t d | d t � } t � } t | | � | j d } t | � } | } t d | � } t } t d � | j
� D� � } t t | j
� � j | j
� � � } g }
| r� |
j
d j | � g � n t |
� } | rg| j r)| j d t d
| � qgt } t | | � t | � } d | k rg| j d � qgn i } | | d
<| | d <| | d <| | d <| | d <| | d <| j | � d S( NR t typeR0 t requiredt
argument_spect supports_check_modec s s- | ]# \ } } | d k r | | f Vq d S( N( t None( t .0t kt v( ( sP /usr/lib/python2.7/site-packages/ansible/modules/network/nxos/nxos_vtp_domain.pys <genexpr>� s s vtp domain {0}t changedt commandst configurei t proposedt existingt end_statet updatest warnings( t dictt Truet updateR R
R R t paramsR) t Falset itemst sett
differenceR t formatR t
check_modet exit_jsonR t pop(
R7 R RD R RA RB t argsR= R@ t deltaR>