�
�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_prefix_list_network
author: "Pluribus Networks (@rajaspachipulusu17)"
version_added: "2.8"
short_description: CLI command to add/remove prefix-list-network
description:
- This module is used to add network associated with prefix list
and remove networks associated with prefix list.
options:
pn_cliswitch:
description:
- Target switch to run the CLI on.
required: false
type: str
state:
description:
- State the action to perform. Use C(present) to create
prefix-list-network and C(absent) to delete prefix-list-network.
required: true
type: str
choices: ['present', 'absent']
pn_netmask:
description:
- netmask of the network associated the prefix list.
required: false
type: str
pn_name:
description:
- Prefix List Name.
required: false
type: str
pn_network:
description:
- network associated with the prefix list.
required: false
type: str
s^
- name: prefix list network add
pn_prefix_list_network:
pn_cliswitch: "sw01"
pn_name: "foo"
pn_network: "172.16.3.1"
pn_netmask: "24"
state: "present"
- name: prefix list network remove
pn_prefix_list_network:
pn_cliswitch: "sw01"
state: "absent"
pn_name: "foo"
pn_network: "172.16.3.1"
pn_netmask: "24"
s�
command:
description: the CLI command run on the target node.
returned: always
type: str
stdout:
description: set of responses from the prefix-list-network command.
returned: always
type: list
stderr:
description: set of error responses from the prefix-list-network 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 } | | j � d k rp | j d t d d | � n | } | d | 7} t | | � \ } } } | r� | j � d } | | j d
� d k r� t St St S( s�
This method checks for idempotency using prefix-list-network-show command.
If network exists, return as True else False.
:param module: The Ansible module to fetch input parameters
:param cli: The CLI string
t pn_namet
pn_networks- prefix-list-show format name no-show-headersi i����t failedt msgs( Prefix list with name %s does not existss@ prefix-list-network-show name %s format network no-show-headerst /i ( t paramsR t splitt fail_jsont Truet False( t modulet clit namet networkt showt outt rct err( ( s[ /usr/lib/python2.7/site-packages/ansible/modules/network/netvisor/pn_prefix_list_network.pyt check_cli^ s
!c
C` s t d d d d � } t d t d t d t d d � d
t d t d d d | j � � d t d t d d � d
t d t d d � d t d t d d � � d d
d d
d d g g d
d d
d d g g f d d d g f � } | j d } | j d
} | j d } | j d
} | j d } | | } t | | � } t | | � } | d | 7} | d k r�| t k r�| j d t d d | � q�n | d k r�| t k r�| j d t d d | � q�n | r�| d | 7} n | r�| d | 7} n | r| d | 7} n t | | | � d S( s'