�
�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
Z
d d l Z d d l m
Z
d d
l 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: bigmon_chain
author: "Ted (@tedelhourani)"
short_description: Create and remove a bigmon inline service chain.
description:
- Create and remove a bigmon inline service chain.
version_added: "2.3"
options:
name:
description:
- The name of the chain.
required: true
state:
description:
- Whether the service chain should be present or absent.
default: present
choices: ['present', 'absent']
controller:
description:
- The controller IP address.
required: true
validate_certs:
description:
- If C(false), SSL certificates will not be validated. This should only be used
on personally controlled devices using self-signed certificates.
required: false
default: true
type: bool
access_token:
description:
- Bigmon access token. If this isn't set, the environment variable C(BIGSWITCH_ACCESS_TOKEN) is used.
s�
- name: bigmon inline service chain
bigmon_chain:
name: MyChain
controller: '{{ inventory_hostname }}'
state: present
validate_certs: false
s # N( t
AnsibleModule( t Rest( t to_nativec C` s� y | j d p t j d } Wn6 t k
rV } | j d d | j d t j � � n X| j d } | j d } | j d } t | i d d
6d | d 6d
| d � } d | | | f k r� | j d d � n | j
d d i �} | j d k r| j d d j | j
d � � n t } g | j
D] } | d | k r)| ^ q)}
|
rZt } n | d k r| r| j d t � n | d k r�| r�| j d t � n | d k r| j d | d i | d 6�} | j d k r�| j d t � q| j d d j | | j
d � � n | d k r�| j d | d i �} | j d k r`| j d t � q�| j d d j | | j
d � � n d S( Nt access_tokent BIGSWITCH_ACCESS_TOKENt msgs Unable to load %st exceptiont namet statet
controllers application/jsons content-types session_cookie=t Cookies https://s2 :8443/api/v1/data/controller/applications/bigchains parameter `name` is missings chain?config=truet datai� s+ failed to obtain existing chain config: {0}t descriptiont presentt changedt absents chain[name="%s"]i� s error creating chain '{0}': {1}s error deleting chain '{0}': {1}( t paramst ost environt KeyErrort fail_jsont messaget tracebackt
format_excR t Nonet gett status_codet formatt jsont Falset Truet exit_jsont putt delete( t moduleR t eR R R t restt responset config_presentt chaint matching( ( sR /usr/lib/python2.7/site-packages/ansible/modules/network/bigswitch/bigmon_chain.pyR/ I sB '
#, &c C` s� t d t d t d d d t � d t d d d t � d t d d d
g d d � d t d d
d d � d t d d d t � � � } y t | � Wn5 t k
r� } | j d t | � d t j � � n Xd S( Nt
argument_specR t typet strt requiredR R t choicesR R t defaultt validate_certst boolR&