�
�Udac @` s� d d l m Z m Z m Z e Z i d d 6d g d 6d d 6Z d Z d Z d
Z d d l
m Z d d l m
Z
m Z d d
l m Z d � Z d � Z e d k r� e � n d S( i ( t absolute_importt divisiont print_functions 1.1t metadata_versiont previewt statust communityt supported_bys
---
module: pn_ipv6security_raguard_vlan
author: "Pluribus Networks (@rajaspachipulusu17)"
version_added: "2.9"
short_description: CLI command to add/remove ipv6security-raguard-vlan
description:
- This module can be used to Add vlans to RA Guard Policy and Remove vlans to RA Guard Policy.
options:
pn_cliswitch:
description:
- Target switch to run the CLI on.
required: false
type: str
state:
description:
- ipv6security-raguard-vlan configuration command.
required: false
type: str
choices: ['present', 'absent']
default: 'present'
pn_vlans:
description:
- Vlans attached to RA Guard Policy.
required: true
type: str
pn_name:
description:
- RA Guard Policy Name.
required: true
type: str
s�
- name: ipv6 security raguard vlan add
pn_ipv6security_raguard_vlan:
pn_cliswitch: "sw01"
pn_name: "foo"
pn_vlans: "100-105"
- name: ipv6 security raguard vlan add
pn_ipv6security_raguard_vlan:
pn_cliswitch: "sw01"
pn_name: "foo"
pn_vlans: "100"
- name: ipv6 security raguard vlan remove
pn_ipv6security_raguard_vlan:
pn_cliswitch: "sw01"
pn_name: "foo"
pn_vlans: "100-105"
state: 'absent'
s�
command:
description: the CLI command run on the target node.
returned: always
type: str
stdout:
description: set of responses from the ipv6security-raguard-vlan command.
returned: always
type: list
stderr:
description: set of error responses from the ipv6security-raguard-vlan command.
returned: on error
type: list
changed:
description: indicates whether the CLI caused changes on the target.
returned: always
type: bool
( t
AnsibleModule( t pn_clit run_cli( t run_commandsc C` s{ | j d } | j d } | } | d 7} t | | � d } | rR | j � } n | | k rd t n t } | d 7} t | | � d } | r� | j � } n | rNd | k rNt � } | j � j d � } xB t t | d � t | d � d � D] } | j t
| � � q� Wxc | D]/ } | | k r| j d t d d
| � qqWn) | | k rw| j d t d d
| � n | S( s�
This method checks for idempotency using the ipv6-security-reguard command.
If a name exists, return True if name exists else False.
:param module: The Ansible module to fetch input parameters
:param cli: The CLI string
t pn_namet pn_vlanss6 ipv6security-raguard-show format name no-show-headersi s$ vlan-show format id no-show-headerst -i t failedt msgsE vlan id %s does not exist. Make sure you create vlan before adding it( t paramsR t splitt Truet Falset listt stript ranget intt appendt strt fail_json( t modulet clit namet vlanst showt outt NAME_EXISTSt vlan_listt vlan( ( sa /usr/lib/python2.7/site-packages/ansible/modules/network/netvisor/pn_ipv6security_raguard_vlan.pyt check_cli\ s6
.
c C` sZ t d d d d � } t d t d t d t d d � d
t d t d d d | j � d d � d
t d t d d � d t d t d d � � � } | j d } | j d
} | j d
} | j d } | | } t | | � } t | | � } | d | | f 7} | rF| t k r,| j d t d d | � n | rF| d | 7} qFn t | | | � d S( s'