�
�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_vrouter_interface_ip
author: "Pluribus Networks (@rajaspachipulusu17)"
version_added: "2.8"
short_description: CLI command to add/remove vrouter-interface-ip
description:
- This module can be used to add an IP address on interface from a vRouter
or remove an IP address on interface from a vRouter.
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 addvrouter-interface-ip
and C(absent) to remove vrouter-interface-ip.
required: true
type: str
choices: ['present', 'absent']
pn_bd:
description:
- interface Bridge Domain.
required: false
type: str
pn_netmask:
description:
- netmask.
required: false
type: str
pn_vnet:
description:
- interface VLAN VNET.
required: false
type: str
pn_ip:
description:
- IP address.
required: false
type: str
pn_nic:
description:
- virtual NIC assigned to interface.
required: false
type: str
pn_vrouter_name:
description:
- name of service config.
required: false
type: str
s�
- name: Add vrouter interface to nic
pn_vrouter_interface_ip:
state: "present"
pn_cliswitch: "sw01"
pn_vrouter_name: "foo-vrouter"
pn_ip: "2620:0:1651:1::30"
pn_netmask: "127"
pn_nic: "eth0.4092"
- name: Remove vrouter interface to nic
pn_vrouter_interface_ip:
state: "absent"
pn_cliswitch: "sw01"
pn_vrouter_name: "foo-vrouter"
pn_ip: "2620:0:1651:1::30"
pn_nic: "eth0.4092"
s�
command:
description: the CLI command run on the target node.
returned: always
type: str
stdout:
description: set of responses from the vrouter-interface-ip command.
returned: always
type: list
stderr:
description: set of error responses from the vrouter-interface-ip 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` sE | j d } | j d } | j d } | d } t | | � d } | rY | j � } n | | k rk t n t } | r� | d | } | d | 7} t | | � d } | r� | | j d � d k r� t } q� t } n | r8| d | } | d
7} t | | � d } | r| j � } n | | k r/t n t }
n | | |
f S( s�
This method checks if vRouter exists on the target node.
This method also checks for idempotency using the vrouter-interface-show
command.
If the given vRouter exists, return VROUTER_EXISTS as True else False.
If an interface with the given ip exists on the given vRouter,
return INTERFACE_EXISTS as True else False. This is required for
vrouter-interface-add.
If nic_str exists on the given vRouter, return NIC_EXISTS as True else
False. This is required for vrouter-interface-remove.
:param module: The Ansible module to fetch input parameters
:param cli: The CLI string
:return Booleans: VROUTER_EXISTS, INTERFACE_EXISTS, NIC_EXISTS
t pn_vrouter_namet pn_ipt pn_nics) vrouter-show format name no-show-headersi s( vrouter-interface-show vrouter-name %s s% ip2 %s format ip2,nic no-show-headerst i����s format nic no-show-headers( t paramsR t splitt Truet False( t modulet clit vrouter_namet interface_ipt nic_strt
check_vroutert outt VROUTER_EXISTSt showt INTERFACE_EXISTSt
NIC_EXISTS( ( s\ /usr/lib/python2.7/site-packages/ansible/modules/network/netvisor/pn_vrouter_interface_ip.pyt check_clio 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 t d t d d � d t d t d d � d t d t d d � � d d
d d d d d
g g d
d d d d g g f � } | j d } | j d
} | j d } | j d
} | j d } | j d } | j d } | j d } | | }
t | | � } t | | � \ } }
} | t k r�| j d t d d | � n | t k r�| j d t d d | � n | d |
| f 7} |
d k r�|
t k rB| j d t d d | � n | d | | f 7} | rm| d | 7} n | r�| d | 7} n | r�| d | 7} q�n |
d k r|
t k r�| j d t d d | � n | r�| d | 7} n | r| d | j
d! � d"