%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/modules/bigip.pyc

�
���^c(@@s�dZddlmZmZmZddlZy"ddlZddlZe	Z
Wnek
rieZ
nXddl
mZddlZdZd�ZdZdd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zddd�Zdd�Z ddddddddddd�
Z!dd�Z"dd�Z#dddddddddddddddddddddddd�Z$ddddddddddddddddddddddd�Z%d�Z&d�Z'd�Z(ddddddddddddd�Z)d�Z*dd�Z+ddddddddddddddddddddddddddddddddddddddd �&Z,dddddddddddddddddddddddddddddddddddddddd!�'Z-d"�Z.dd#�Z/d$�Z0d%�Z1d&�Z2dd'�Z3d(�Z4d)�Z5d*�Z6dS(+u�
An execution module which can manipulate an f5 bigip via iControl REST
    :maturity:      develop
    :platform:      f5_bigip_11.6
i(tabsolute_importtprint_functiontunicode_literalsN(tsixubigipcC@str
tStdfS(u.
    Only return if requests is installed
    uSThe bigip execution module cannot be loaded: python requests library not available.(tHAS_LIBSt__virtualname__tFalse(((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt__virtual__suhttps://{host}/mgmt/tmcC@s�tj�}||f|_t|_|jjidd6�|r�tddjd|��}|r}|jji|d6�q�|jjidd6�n|S(uG
    Create a session to be used when connecting to iControl REST.
    uapplication/jsonuContent-Typeu
grains.getubigip_f5_trans:{label}tlabeluX-F5-REST-Coordination-IdN(
trequeststsessiontauthRtverifytheaderstupdatet__salt__tformattNone(tusernametpasswordttrans_labeltbigipttrans_id((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt_build_session+s	cC@sTytjjj|j�}Wntk
r8|j}nXi|jd6|d6}|S(uM
    Load the response from json data, return the dictionary or raw text
    ucodeucontent(tsalttutilstjsontloadsttextt
ValueErrortstatus_code(tresponsetdatatret((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt_load_responseAs

cC@s*idd6djd|d|�d6}|S(u.
    Format and Return a connection error
    ucodeu<Error: Unable to connect to the bigip device: {host}
{error}thostterrorucontentN(RR(thostnameR$R!((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt_load_connection_errorPs&cC@sCi}x6tj|�D]%\}}|dk	r|||<qqW|S(u�
    Pass in a dictionary of parameters, loop through them and build a payload containing,
    parameters who's values are not None.
    N(Rt	iteritemsR(tparamstpayloadtparamtvalue((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt
_loop_payloadZs
cC@s�|dk	r�g}|dkr"|St|t�sC|jd�}n|}xE|D]=}|dkrr|j|�qP|ji|d6|d6�qPW|SdS(uy
    pass in an option to check for a list of items, create a list of dictionary of items to set
    for this option
    unoneu,ukindunameN(Rt
isinstancetlisttsplittappend(toption_valuet	item_kindtitemstvaluesR+((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt_build_listks
cC@s+x$tj|�D]\}}|ddk	r|dtksL|ddkri|ddkrid||<n=|dtks�|ddkr�|ddkr�d||<n|dtks�|ddkr�|ddkr�t||<q#|dtks|ddkr#|ddkr#t||<q#qqW|S(u�
    BigIP can't make up its mind if it likes yes / no or true or false.
    Figure out what it likes to hear without confusing the user.
    uvalueuyesutypeuyes_nounou
true_falseN(RR'RtTrueR(R)ttogglesttogglet
definition((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt_determine_toggles�s0
0
0
0c		C@s
t|t�s-t|t�s-t|t�r1|S|jd�r�|jd�r�|jdd�}|jdd�}ytjj	j
|�SWq�tk
r�tjj
�q�Xnd|krd|kr|jd�}g}x!|D]}|jt|��q�W|Sd|krtd|krti}|jd	�}x>|D]6}|jd�d
}|jd�d}|||<q6W|Sd	|kr�d|kr�|jd	�}|Sd|kr�|jdd�}nd|kr�|jdd�}nd|kr|jdd	�}n|Sd
S(u�
    A function to detect if user is trying to pass a dictionary or list.  parse it and return a
    dictionary list or a string
    uj{u}ju{u}u|u\|u:u\:u,iiu\,N(R-tbooltdictR.t
startswithtendswithtreplaceRRRRt	Exceptiont
exceptionstCommandExecutionErrorR/R0t
_set_value(	R+R4R3toptionst	key_pairstkey_pairtktvtvalue_items((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyRC�sB-


c
C@s�t||�}i}y8|jtjd|�ddtjjj|��}Wn#tj	j
k
rr}t||�SXt|�}|ddkr�|dd}	t
dd	i|	|6�d
jd|	d|�S|Sd
S(u�
    A function to connect to a bigip device and start a new transaction.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    label
        The name / alias for this transaction.  The actual transaction
        id will be stored within a grain called ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.start_transaction bigip admin admin my_transaction

    R#u/transactionR ucodei�ucontentutransIdu
grains.setvalubigip_f5_transu[Transaction: {trans_id} - has successfully been stored in the grain: bigip_f5_trans:{label}RRN(RtposttBIG_IP_URL_BASERRRRtdumpsR	RAtConnectionErrorR&R"R(
R%RRRt
bigip_sessionR)RteR R((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytstart_transaction�scC@s�t||�}tddjd|��}|r�y9|jtjd|�djd|��}t|�SWq�tjjk
r�}t	||�SXndSdS(	u�
    A function to connect to a bigip device and list an existing transaction.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    label
        the label of this transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.list_transaction bigip admin admin my_transaction

    u
grains.getubigip_f5_trans:{label}RR#u /transaction/{trans_id}/commandsRu�Error: the label for this transaction was not defined as a grain.  Begin a new transaction using the bigip.start_transaction functionN(
RRRtgetRKR"R	RARMR&(R%RRRRNRRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytlist_transactions+c	C@s�t||�}tddjd|��}|r�i}d|d<yN|jtjd|�djd|�d	tjjj|��}t	|�SWq�t
jjk
r�}t
||�SXnd
SdS(u�
    A function to connect to a bigip device and commit an existing transaction.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    label
        the label of this transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.commit_transaction bigip admin admin my_transaction
    u
grains.getubigip_f5_trans:{label}Ru
VALIDATINGustateR#u/transaction/{trans_id}RR u�Error: the label for this transaction was not defined as a grain.  Begin a new transaction using the bigip.start_transaction functionN(RRRtpatchRKRRRRLR"R	RARMR&(	R%RRRRNRR)RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytcommit_transaction6s
"cC@s�t||�}tddjd|��}|r�y9|jtjd|�djd|��}t|�SWq�tjjk
r�}t	||�SXndSdS(	u�
    A function to connect to a bigip device and delete an existing transaction.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    label
        The label of this transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.delete_transaction bigip admin admin my_transaction
    u
grains.getubigip_f5_trans:{label}RR#u/transaction/{trans_id}Ru�Error: the label for this transaction was not defined as a grain.  Begin a new transaction using the bigip.start_transaction functionN(
RRRtdeleteRKR"R	RARMR&(R%RRRRNRRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_transactionbs+cC@s�t|||�}yW|rI|jtjd|�djd|��}n|jtjd|�d�}Wn#tjjk
r�}t||�SXt|�S(u"
    A function to connect to a bigip device and list all nodes or a specific node.


    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the node to list. If no name is specified than all nodes
        will be listed.
    trans_label
        The label of the transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.list_node bigip admin admin my-node
    R#u/ltm/node/{name}tnameu	/ltm/node(	RRQRKRR	RARMR&R"(R%RRRWRRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt	list_node�s.#c
C@s�t|||�}i}||d<||d<y8|jtjd|�ddtjjj|��}Wn#tj	j
k
r�}	t||	�SXt|�S(u�
    A function to connect to a bigip device and create a node.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the node
    address
        The address of the node
    trans_label
        The label of the transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.create_node bigip admin admin 10.1.1.2
    unameuaddressR#u	/ltm/nodeR (
RRJRKRRRRRLR	RARMR&R"(
R%RRRWtaddressRRNR)RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytcreate_node�s

cC@s�i	|d6|d6|d6|d6|d6|	d6|
d6|d6|d	6}t|||
�}t|�}||d
<yD|jtjd|�djd
|�dtjjj|��}Wn#t	j
jk
r�}t||�SXt
|�S(uP
    A function to connect to a bigip device and modify an existing node.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the node to modify
    connection_limit
        [integer]
    description
        [string]
    dynamic_ratio
        [integer]
    logging
        [enabled | disabled]
    monitor
        [[name] | none | default]
    rate_limit
        [integer]
    ratio
        [integer]
    session
        [user-enabled | user-disabled]
    state
        [user-down | user-up ]
    trans_label
        The label of the transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.modify_node bigip admin admin 10.1.1.2 ratio=2 logging=enabled
    uconnection-limitudescriptionu
dynamic-ratiouloggingumonitoru
rate-limituratiousessionustateunameR#u/ltm/node/{name}RWR (RR,tputRKRRRRRLR	RARMR&R"(R%RRRWtconnection_limittdescriptiont
dynamic_ratiotloggingtmonitort
rate_limittratioR
tstateRR(RNR)RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytmodify_node�s(1

"cC@s�t|||�}y/|jtjd|�djd|��}Wn#tjjk
rf}t||�SXt|�dkr}t	St|�SdS(u�
    A function to connect to a bigip device and delete a specific node.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the node which will be deleted.
    trans_label
        The label of the transaction stored within the grain:
        ``bigip_f5_trans:<label>``

    CLI Example::

        salt '*' bigip.delete_node bigip admin admin my-node
    R#u/ltm/node/{name}RWuN(
RRURKRR	RARMR&R"R6(R%RRRWRRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_node(s/cC@s�t||�}yW|rF|jtjd|�djd|��}n|jtjd|�d�}Wn#tjjk
r�}t||�SXt|�S(u�
    A function to connect to a bigip device and list all pools or a specific pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to list. If no name is specified then all pools
        will be listed.

    CLI Example::

        salt '*' bigip.list_pool bigip admin admin my-pool
    R#u+/ltm/pool/{name}/?expandSubcollections=trueRWu	/ltm/pool(	RRQRKRR	RARMR&R"(R%RRRWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt	list_poolLs.#c!C@s�i|d6|d6|	d6|
d6|d6|d6|
d6|d6|d	6|d
6|d6|d6|d
6|d6|d6|d6|d6|d6|d6|d6}iidd6|d6d6idd6|d6d6}t|�}||d<t||�}|d k	r	t|d�|d<nt||�}y8|jtjd|�ddtj	j
j|��}Wn#tj
jk
ru} t|| �SXt|�S(!u�
    A function to connect to a bigip device and create a pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to create.
    members
        List of comma delimited pool members to add to the pool.
        i.e. 10.1.1.1:80,10.1.1.2:80,10.1.1.3:80
    allow_nat
        [yes | no]
    allow_snat
        [yes | no]
    description
        [string]
    gateway_failsafe_device
        [string]
    ignore_persisted_weight
        [enabled | disabled]
    ip_tos_to_client
        [pass-through | [integer]]
    ip_tos_to_server
        [pass-through | [integer]]
    link_qos_to_client
        [pass-through | [integer]]
    link_qos_to_server
        [pass-through | [integer]]
    load_balancing_mode
        [dynamic-ratio-member | dynamic-ratio-node |
        fastest-app-response | fastest-node |
        least-connections-members |
        least-connections-node |
        least-sessions |
        observed-member | observed-node |
        predictive-member | predictive-node |
        ratio-least-connections-member |
        ratio-least-connections-node |
        ratio-member | ratio-node | ratio-session |
        round-robin | weighted-least-connections-member |
        weighted-least-connections-node]
    min_active_members
        [integer]
    min_up_members
        [integer]
    min_up_members_action
        [failover | reboot | restart-all]
    min_up_members_checking
        [enabled | disabled]
    monitor
        [name]
    profiles
        [none | profile_name]
    queue_depth_limit
        [integer]
    queue_on_connection_limit
        [enabled | disabled]
    queue_time_limit
        [integer]
    reselect_tries
        [integer]
    service_down_action
        [drop | none | reselect | reset]
    slow_ramp_time
        [integer]

    CLI Example::

        salt '*' bigip.create_pool bigip admin admin my-pool 10.1.1.1:80,10.1.1.2:80,10.1.1.3:80 monitor=http
    udescriptionugateway-failsafe-deviceuignore-persisted-weightuip-tos-to-clientuip-tos-to-serverulink-qos-to-clientulink-qos-to-serveruload-balancing-modeumin-active-membersumin-up-membersumin-up-members-actionumin-up-members-checkingumonitoruprofilesuqueue-on-connection-limituqueue-depth-limituqueue-time-limitureselect-triesuservice-down-actionuslow-ramp-timeuyes_noutypeuvalueu	allow-natu
allow-snatunameultm:pool:membersumembersR#u	/ltm/poolR N(R,R:RR5RRJRKRRRRRLR	RARMR&R"(!R%RRRWtmemberst	allow_natt
allow_snatR]tgateway_failsafe_devicetignore_persisted_weighttip_tos_to_clienttip_tos_to_servertlink_qos_to_clienttlink_qos_to_servertload_balancing_modetmin_active_memberstmin_up_memberstmin_up_members_actiontmin_up_members_checkingR`tprofilestqueue_depth_limittqueue_on_connection_limittqueue_time_limittreselect_triestservice_down_actiontslow_ramp_timeR(R7R)RNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytcreate_poolnsJb

c C@sji|d6|d6|d6|	d6|
d6|d6|d6|
d6|d	6|d
6|d6|d6|d
6|d6|d6|d6|d6|d6|d6|d6}iidd6|d6d6idd6|d6d6}t|�}||d<t||�}t||�}yD|jtjd|�djd|�dtjjj	|��}Wn#t
jjk
r_}t
||�SXt|�S(u�
    A function to connect to a bigip device and modify an existing pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to modify.
    allow_nat
        [yes | no]
    allow_snat
        [yes | no]
    description
        [string]
    gateway_failsafe_device
        [string]
    ignore_persisted_weight
        [yes | no]
    ip_tos_to_client
        [pass-through | [integer]]
    ip_tos_to_server
        [pass-through | [integer]]
    link_qos_to_client
        [pass-through | [integer]]
    link_qos_to_server
        [pass-through | [integer]]
    load_balancing_mode
        [dynamic-ratio-member | dynamic-ratio-node |
        fastest-app-response | fastest-node |
        least-connections-members |
        least-connections-node |
        least-sessions |
        observed-member | observed-node |
        predictive-member | predictive-node |
        ratio-least-connections-member |
        ratio-least-connections-node |
        ratio-member | ratio-node | ratio-session |
        round-robin | weighted-least-connections-member |
        weighted-least-connections-node]
    min_active_members
        [integer]
    min_up_members
        [integer]
    min_up_members_action
        [failover | reboot | restart-all]
    min_up_members_checking
        [enabled | disabled]
    monitor
        [name]
    profiles
        [none | profile_name]
    queue_on_connection_limit
        [enabled | disabled]
    queue_depth_limit
        [integer]
    queue_time_limit
        [integer]
    reselect_tries
        [integer]
    service_down_action
        [drop | none | reselect | reset]
    slow_ramp_time
        [integer]

    CLI Example::

        salt '*' bigip.modify_pool bigip admin admin my-pool 10.1.1.1:80,10.1.1.2:80,10.1.1.3:80 min_active_members=1
    udescriptionugateway-failsafe-deviceuignore-persisted-weightuip-tos-to-clientuip-tos-to-serverulink-qos-to-clientulink-qos-to-serveruload-balancing-modeumin-active-membersumin-up-membersumin-up_members-actionumin-up-members-checkingumonitoruprofilesuqueue-on-connection-limituqueue-depth-limituqueue-time-limitureselect-triesuservice-down-actionuslow-ramp-timeuyes_noutypeuvalueu	allow-natu
allow-snatunameR#u/ltm/pool/{name}RWR (R,R:RR[RKRRRRRLR	RARMR&R"( R%RRRWRhRiR]RjRkRlRmRnRoRpRqRrRsRtR`RuRvRwRxRyRzR{R(R7R)RNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytmodify_poolsF_

"cC@s�t||�}y/|jtjd|�djd|��}Wn#tjjk
rc}t||�SXt|�dkrzt	St|�SdS(uu
    A function to connect to a bigip device and delete a specific pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool which will be deleted

    CLI Example::

        salt '*' bigip.delete_node bigip admin admin my-pool
    R#u/ltm/pool/{name}RWuN(
RRURKRR	RARMR&R"R6(R%RRRWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_pool�s/c
C@s�i}||d<|dk	r	t|tj�r@|jd�}ng}x�|D]�}t|t�r�d|j�kr�|jd�|d<nx3|D]+}|jdd�}	|j|�||	<q�W|j	|�qM|j	i|d6|jd�dd	6�qMW||d
<nt
||�}
yD|
jtj
d|�dj
d
|�dtjjj|��}Wn#tjjk
r�}t||�SXt|�S(u@
    A function to connect to a bigip device and replace members of an existing pool with new members.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to modify
    members
        List of comma delimited pool members to replace existing members with.
        i.e. 10.1.1.1:80,10.1.1.2:80,10.1.1.3:80

    CLI Example::

        salt '*' bigip.replace_pool_members bigip admin admin my-pool 10.2.2.1:80,10.2.2.2:80,10.2.2.3:80
    unameu,umember_stateustateu_u-u:iuaddressumembersR#u/ltm/pool/{name}RWR N(RR-Rtstring_typesR/R<tkeystpopR?R0RR[RKRRRRRLR	RARMR&R"(
R%RRRWRgR)tpool_memberstmembertkeytnew_keyRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytreplace_pool_members�s0


,
"cC@st|t�rvd|j�kr7|jd�|d<nx3|D]+}|jdd�}|j|�||<q>W|}n!i|d6|jd�dd6}t||�}yD|jtj	d	|�d
j	d|�dt
jjj
|��}	Wn#tjjk
r}
t||
�SXt|	�S(
u�
    A function to connect to a bigip device and add a new member to an existing pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to modify
    member
        The name of the member to add
        i.e. 10.1.1.2:80

    CLI Example:

    .. code-block:: bash

        salt '*' bigip.add_pool_members bigip admin admin my-pool 10.2.2.1:80
    umember_stateustateu_u-unameu:iuaddressR#u/ltm/pool/{name}/membersRWR (R-R<R�R�R?R/RRJRKRRRRRLR	RARMR&R"(R%RRRWR�R�R�R)RNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytadd_pool_member�s 
	!"cC@s�i|d6|d6|d6|d6|	d6|
d6|d6|d6|
d	6|d
6|d6|d6}t||�}t|�}yJ|jtjd
|�djd|d|�dtjjj|��}Wn#t	j
jk
r�}t||�SXt
|�S(u�
    A function to connect to a bigip device and modify an existing member of a pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to modify
    member
        The name of the member to modify i.e. 10.1.1.2:80
    connection_limit
        [integer]
    description
        [string]
    dynamic_ratio
        [integer]
    inherit_profile
        [enabled | disabled]
    logging
        [enabled | disabled]
    monitor
        [name]
    priority_group
        [integer]
    profiles
        [none | profile_name]
    rate_limit
        [integer]
    ratio
        [integer]
    session
        [user-enabled | user-disabled]
    state
        [ user-up | user-down ]

    CLI Example::

        salt '*' bigip.modify_pool_member bigip admin admin my-pool 10.2.2.1:80 state=use-down session=user-disabled
    uconnection-limitudescriptionu
dynamic-ratiouinherit-profileuloggingumonitorupriority-groupuprofilesu
rate-limituratiousessionustateR#u!/ltm/pool/{name}/members/{member}RWR�R (RR,R[RKRRRRRLR	RARMR&R"(R%RRRWR�R\R]R^tinherit_profileR_R`tpriority_groupRuRaRbR
RcR(RNR)RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytmodify_pool_member7s,8
(cC@s�t||�}y5|jtjd|�djd|d|��}Wn#tjjk
ri}t||�SXt|�dkr�t	St|�SdS(u�
    A function to connect to a bigip device and delete a specific pool.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the pool to modify
    member
        The name of the pool member to delete

    CLI Example::

        salt '*' bigip.delete_pool_member bigip admin admin my-pool 10.2.2.2:80
    R#u!/ltm/pool/{name}/members/{member}RWR�uN(
RRURKRR	RARMR&R"R6(R%RRRWR�RNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_pool_member�s5cC@s�t||�}yW|rF|jtjd|�djd|��}n|jtjd|�d�}Wn#tjjk
r�}t||�SXt|�S(u�
    A function to connect to a bigip device and list all virtuals or a specific virtual.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the virtual to list. If no name is specified than all
        virtuals will be listed.

    CLI Example::

        salt '*' bigip.list_virtual bigip admin admin my-virtual
    R#u./ltm/virtual/{name}/?expandSubcollections=trueRWu/ltm/virtual(	RRQRKRR	RARMR&R"(R%RRRWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytlist_virtual�s.#c+3C@sEi|d6|d6|d6|
d6|d6|
d6|d6|d6|d	6|d
6|d6|d6|d
6|d6|d6|d6|d6|d6|d6|#d6|%d6|(d6|)d6}+iidd6|d6d6idd6|	d6d6idd6|d6d6idd6|"d6d6idd6|d6d 6idd6|d6d!6idd6|d6d"6},t||�}-t|+�}.||.d#<||.d$<t|.|,�}.|dDk	r�t|d%�|.d&<n|dDk	r�t|d'�|.d<n|dDk	r�t|d(�|.d)<n| dDk	rt| dD�|.d*<n|!dDk	r(t|!dD�|.d+<n|$dDk	rt|$t�rP|$|.d,<q|$d-krwid-d6d-d6|.d,<q|$d.kr�id-d6d.d6|.d,<q|$d/kr�id-d6d/d6|.d,<q|$jd0�r|$jd1�d2}/i|/d6d0d6|.d,<qn|'dDk	r't|'dD�|.d3<n|*dDk	r�t|*t�r�y@|*d4|.d5<|*d6rjt	|.d7<n|*d8r�t	|.d9<nWq�t
k
r�d:jd;|*�SXq�|*d-kr�d-|.d5<q�|*d<kr�d<|.d5<q�t|*tj
�r�|*jd6�s|*jd8�r�yi|*jd1�d=}0|*jd1�d2jd>�|.d5<|0d8krWt	|.d9<n|0d6krpt	|.d7<nWq�t
k
r�d?jd;|*�SXq�d@Sn|&dDk	r�|&d6kr�t	|.d6<q�|&d8kr�t	|.d8<q�ny8|-jtjdA|�dBdCtjjj|.��}1Wn#tjjk
r:}2t||2�SXt|1�S(Eu%
    A function to connect to a bigip device and create a virtual server.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the virtual to create
    destination
        [ [virtual_address_name:port] | [ipv4:port] | [ipv6.port] ]
    pool
        [ [pool_name] | none]
    address_status
        [yes | no]
    auto_lasthop
        [default | enabled | disabled ]
    bwc_policy
        [none] | string]
    cmp_enabled
        [yes | no]
    dhcp_relay
        [yes | no]
    connection_limit
        [integer]
    description
        [string]
    state
        [disabled | enabled]
    fallback_persistence
        [none | [profile name] ]
    flow_eviction_policy
        [none | [eviction policy name] ]
    gtm_score
        [integer]
    ip_forward
        [yes | no]
    ip_protocol
        [any | protocol]
    internal
        [yes | no]
    twelve_forward
        (12-forward)
        [yes | no]
    last_hop-pool
        [ [pool_name] | none]
    mask
        { [ipv4] | [ipv6] }
    mirror
        { [disabled | enabled | none] }
    nat64
        [enabled | disabled]
    persist
        [none | profile1,profile2,profile3 ... ]
    profiles
        [none | default | profile1,profile2,profile3 ... ]
    policies
        [none | default | policy1,policy2,policy3 ... ]
    rate_class
        [name]
    rate_limit
        [integer]
    rate_limit_mode
        [destination | object | object-destination |
        object-source | object-source-destination |
        source | source-destination]
    rate_limit_dst
        [integer]
    rate_limitçsrc
        [integer]
    rules
        [none | [rule_one,rule_two ...] ]
    related_rules
        [none | [rule_one,rule_two ...] ]
    reject
        [yes | no]
    source
        { [ipv4[/prefixlen]] | [ipv6[/prefixlen]] }
    source_address_translation
        [none | snat:pool_name | lsn | automap ]
    source_port
        [change | preserve | preserve-strict]
    state
        [enabled | disabled]
    traffic_classes
        [none | default | class_one,class_two ... ]
    translate_address
        [enabled | disabled]
    translate_port
        [enabled | disabled]
    vlans
        [none | default | [enabled|disabled]:vlan1,vlan2,vlan3 ... ]

    CLI Examples::

        salt '*' bigip.create_virtual bigip admin admin my-virtual-3 26.2.2.5:80 \
            pool=my-http-pool-http profiles=http,tcp

        salt '*' bigip.create_virtual bigip admin admin my-virtual-3 43.2.2.5:80 \
            pool=test-http-pool-http profiles=http,websecurity persist=cookie,hash \
            policies=asm_auto_l7_policy__http-virtual \
            rules=_sys_APM_ExchangeSupport_helper,_sys_https_redirect \
            related_rules=_sys_APM_activesync,_sys_APM_ExchangeSupport_helper \
            source_address_translation=snat:my-snat-pool \
            translate_address=enabled translate_port=enabled \
            traffic_classes=my-class,other-class \
            vlans=enabled:external,internal

    upooluauto-lasthopu
bwc-policyuconnection-limitudescriptionufallback-persistenceuflow-eviction-policyu	gtm-scoreuip-protocolu
last-hop-poolumaskumirrorunat64upersistu
rate-classu
rate-limiturate-limit-modeurate-limit-dsturate-limit-srcusourceusource-portutranslate-addressutranslate-portuyes_noutypeuvalueuaddress-statusucmp-enabledu
true_falseu
dhcp-relayurejectu
12-forwarduinternalu
ip-forwardunameudestinationultm:virtual:profileuprofilesultm:virtual:persistultm:virtual:policyupoliciesurulesu
related-rulesusource-address-translationunoneuautomapulsnusnatu:iutraffic-classesuvlan_idsuvlansuenabledu
vlans-enabledudisableduvlans-disabledu8Error: Unable to Parse vlans dictionary: 
	vlans={vlans}tvlansudefaultiu,u4Error: Unable to Parse vlans option: 
	vlans={vlans}u,Error: vlans must be a dictionary or string.R#u/ltm/virtualR N(RR,R:RR5R-R<R=R/R6R@RRRRJRKRRRRLR	RARMR&R"(3R%RRRWtdestinationtpooltaddress_statustauto_lasthopt
bwc_policytcmp_enabledR\t
dhcp_relayR]tfallback_persistencetflow_eviction_policyt	gtm_scoret
ip_forwardtip_protocoltinternalttwelve_forwardt
last_hop_pooltmasktmirrortnat64tpersistRutpoliciest
rate_classRatrate_limit_modetrate_limit_dsttrate_limit_srctrulest
related_rulestrejecttsourcetsource_address_translationtsource_portRcttraffic_classesttranslate_addressttranslate_portR�R(R7RNR)t	snat_poolt
vlans_settingRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytcreate_virtual�s��









0 


c+3C@si|d6|d6|d6|d6|
d6|d6|
d6|d6|d	6|d
6|d6|d6|d
6|d6|d6|d6|d6|d6|d6|d6|#d6|%d6|(d6|)d6}+iidd6|d6d6idd6|	d6d6idd6|d6d6idd6|"d6d 6idd6|d6d!6idd6|d6d"6idd6|d6d#6},t||�}-t|+�}.||.d$<t|.|,�}.|dDk	r�t|d%�|.d&<n|dDk	r�t|d'�|.d<n|dDk	r�t|d(�|.d)<n| dDk	rt| dD�|.d*<n|!dDk	r%t|!dD�|.d+<n|$dDk	r�|$d,krXid,d6d,d6|.d-<q�|$d.krid,d6d.d6|.d-<q�|$d/kr�id,d6d/d6|.d-<q�|$jd0�r�|$jd1�d2}/i|/d6d0d6|.d-<q�n|'dDk	rt|'dD�|.d3<n|*dDk	rgt|*t�r�y@|*d4|.d5<|*d6rKt	|.d7<n|*d8rbt	|.d9<nWqdt
k
r�d:jd;|*�SXqg|*d,kr�d,|.d5<qg|*d<kr�d<|.d5<qg|*jd6�s�|*jd8�rgyi|*jd1�d=}0|*jd1�d2jd>�|.d5<|0d8kr&t	|.d9<n|0d6kr?t	|.d7<nWqdt
k
r`d?jd;|*�SXqgn|&dDk	r�|&d6kr�t	|.d6<q�|&d8kr�t	|.d8<q�nyD|-jt
jd@|�dAjdB|�dCtjjj|.��}1Wn#tjjk
r}2t||2�SXt|1�S(Eu

    A function to connect to a bigip device and modify an existing virtual server.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the virtual to modify
    destination
        [ [virtual_address_name:port] | [ipv4:port] | [ipv6.port] ]
    pool
        [ [pool_name] | none]
    address_status
        [yes | no]
    auto_lasthop
        [default | enabled | disabled ]
    bwc_policy
        [none] | string]
    cmp_enabled
        [yes | no]
    dhcp_relay
        [yes | no}
    connection_limit
        [integer]
    description
        [string]
    state
        [disabled | enabled]
    fallback_persistence
        [none | [profile name] ]
    flow_eviction_policy
        [none | [eviction policy name] ]
    gtm_score
        [integer]
    ip_forward
        [yes | no]
    ip_protocol
        [any | protocol]
    internal
        [yes | no]
    twelve_forward
        (12-forward)
        [yes | no]
    last_hop-pool
        [ [pool_name] | none]
    mask
        { [ipv4] | [ipv6] }
    mirror
        { [disabled | enabled | none] }
    nat64
        [enabled | disabled]
    persist
        [none | profile1,profile2,profile3 ... ]
    profiles
        [none | default | profile1,profile2,profile3 ... ]
    policies
        [none | default | policy1,policy2,policy3 ... ]
    rate_class
        [name]
    rate_limit
        [integer]
    rate_limitr_mode
        [destination | object | object-destination |
        object-source | object-source-destination |
        source | source-destination]
    rate_limit_dst
        [integer]
    rate_limit_src
        [integer]
    rules
        [none | [rule_one,rule_two ...] ]
    related_rules
        [none | [rule_one,rule_two ...] ]
    reject
        [yes | no]
    source
        { [ipv4[/prefixlen]] | [ipv6[/prefixlen]] }
    source_address_translation
        [none | snat:pool_name | lsn | automap ]
    source_port
        [change | preserve | preserve-strict]
    state
        [enabled | disable]
    traffic_classes
        [none | default | class_one,class_two ... ]
    translate_address
        [enabled | disabled]
    translate_port
        [enabled | disabled]
    vlans
        [none | default | [enabled|disabled]:vlan1,vlan2,vlan3 ... ]

    CLI Example::

        salt '*' bigip.modify_virtual bigip admin admin my-virtual source_address_translation=none
        salt '*' bigip.modify_virtual bigip admin admin my-virtual rules=my-rule,my-other-rule
    udestinationupooluauto-lasthopu
bwc-policyuconnection-limitudescriptionufallback-persistenceuflow-eviction-policyu	gtm-scoreuip-protocolu
last-hop-poolumaskumirrorunat64upersistu
rate-classu
rate-limiturate-limit-modeurate-limit-dsturate-limit-srcusourceusource-portutranslate-addressutranslate-portuyes_noutypeuvalueuaddress-statusucmp-enabledu
true_falseu
dhcp-relayurejectu
12-forwarduinternalu
ip-forwardunameultm:virtual:profileuprofilesultm:virtual:persistultm:virtual:policyupoliciesurulesu
related-rulesunoneusource-address-translationuautomapulsnusnatu:iutraffic-classesuvlan_idsuvlansuenabledu
vlans-enabledudisableduvlans-disabledu8Error: Unable to Parse vlans dictionary: 
	vlans={vlans}R�udefaultiu,u4Error: Unable to Parse vlans option: 
	vlans={vlans}R#u/ltm/virtual/{name}RWR N(RR,R:RR5R=R/R-R<R6R@RR[RKRRRRLR	RARMR&R"(3R%RRRWR�R�R�R�R�R�R\R�R]R�R�R�R�R�R�R�R�R�R�R�R�RuR�R�RaR�R�R�R�R�R�R�R�R�RcR�R�R�R�R(R7RNR)R�R�RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytmodify_virtual�s��







 


"cC@s�t||�}y/|jtjd|�djd|��}Wn#tjjk
rc}t||�SXt|�dkrzt	St|�SdS(uu
    A function to connect to a bigip device and delete a specific virtual.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    name
        The name of the virtual to delete

    CLI Example::

        salt '*' bigip.delete_virtual bigip admin admin my-virtual
    R#u/ltm/virtual/{name}RWuN(
RRURKRR	RARMR&R"R6(R%RRRWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_virtuals/cC@s�t||�}yi|rL|jtjd|�djd|d|��}n+|jtjd|�djd|��}Wn#tjjk
r�}t||�SXt|�S(u
    A function to connect to a bigip device and list an existing monitor.  If no name is provided than all
    monitors of the specified type will be listed.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    monitor_type
        The type of monitor(s) to list
    name
        The name of the monitor to list

    CLI Example::

        salt '*' bigip.list_monitor bigip admin admin http my-http-monitor

    R#u4/ltm/monitor/{type}/{name}?expandSubcollections=truettypeRWu/ltm/monitor/{type}(	RRQRKRR	RARMR&R"(R%RRtmonitor_typeRWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytlist_monitor's4/cK@s�t||�}i}||d<xZtj|�D]I\}}	|jd�s/|d
krx|jdd�}|	||<qxq/q/WyD|jtjd	|�d
jd|�dtj	j
j|��}
Wn#tj
jk
r�}t||�SXt|
�S(uJ
    A function to connect to a bigip device and create a monitor.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    monitor_type
        The type of monitor to create
    name
        The name of the monitor to create
    kwargs
        Consult F5 BIGIP user guide for specific options for each monitor type.
        Typically, tmsh arg names are used.

    CLI Example::

        salt '*' bigip.create_monitor bigip admin admin http my-http-monitor timeout=10 interval=5
    unameu__uhostnameuusernameupasswordutypeu_u-R#u/ltm/monitor/{type}R�R (uhostnameuusernameupasswordutype(RRR'R=R?RJRKRRRRRLR	RARMR&R"(R%RRR�RWtkwargsRNR)R�R+RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytcreate_monitorLs
"cK@s�t||�}i}xZtj|�D]I\}}	|jd�s%|dkrn|jdd�}|	||<qnq%q%WyJ|jtjd	|�d
jd|d|�d
tj	j
j|��}
Wn#tj
jk
r�}t||�SXt|
�S(uU
    A function to connect to a bigip device and modify an existing monitor.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    monitor_type
        The type of monitor to modify
    name
        The name of the monitor to modify
    kwargs
        Consult F5 BIGIP user guide for specific options for each monitor type.
        Typically, tmsh arg names are used.

    CLI Example::

        salt '*' bigip.modify_monitor bigip admin admin http my-http-monitor  timout=16 interval=6

    u__uhostnameuusernameupasswordutypeunameu_u-R#u/ltm/monitor/{type}/{name}R�RWR (uhostnameuusernameupasswordutypeuname(RRR'R=R?R[RKRRRRRLR	RARMR&R"(R%RRR�RWR�RNR)R�R+RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytmodify_monitor~s(cC@s�t||�}y5|jtjd|�djd|d|��}Wn#tjjk
ri}t||�SXt|�dkr�t	St|�SdS(u�
    A function to connect to a bigip device and delete an existing monitor.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    monitor_type
        The type of monitor to delete
    name
        The name of the monitor to delete

    CLI Example::

        salt '*' bigip.delete_monitor bigip admin admin http my-http-monitor

    R#u/ltm/monitor/{type}/{name}R�RWuN(
RRURKRR	RARMR&R"R6(R%RRR�RWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_monitor�s5cC@s�t||�}yi|rL|jtjd|�djd|d|��}n+|jtjd|�djd|��}Wn#tjjk
r�}t||�SXt|�S(u
    A function to connect to a bigip device and list an existing profile.  If no name is provided than all
    profiles of the specified type will be listed.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    profile_type
        The type of profile(s) to list
    name
        The name of the profile to list

    CLI Example::

        salt '*' bigip.list_profile bigip admin admin http my-http-profile

    R#u4/ltm/profile/{type}/{name}?expandSubcollections=trueR�RWu/ltm/profile/{type}(	RRQRKRR	RARMR&R"(R%RRtprofile_typeRWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytlist_profile�s4/cK@s't||�}i}||d<x�tj|�D]�\}}	|jd�s/|dkr�|jdd�}yt|	�||<Wq�tjjk
r�d	j	d
|d|	�SXq�q/q/WyD|j
tj	d|�d
j	d|�dtjj
j|��}
Wn#tjjk
r}t||�SXt|
�S(u�
    A function to connect to a bigip device and create a profile.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    profile_type
        The type of profile to create
    name
        The name of the profile to create
    kwargs
        ``[ arg=val ] ... [arg=key1:val1,key2:val2] ...``

        Consult F5 BIGIP user guide for specific options for each monitor type.
        Typically, tmsh arg names are used.

    Creating Complex Args
        Profiles can get pretty complicated in terms of the amount of possible
        config options. Use the following shorthand to create complex arguments such
        as lists, dictionaries, and lists of dictionaries. An option is also
        provided to pass raw json as well.

        lists ``[i,i,i]``:
            ``param='item1,item2,item3'``

        Dictionary ``[k:v,k:v,k,v]``:
            ``param='key-1:val-1,key-2:val2,key-3:va-3'``

        List of Dictionaries ``[k:v,k:v|k:v,k:v|k:v,k:v]``:
           ``param='key-1:val-1,key-2:val-2|key-1:val-1,key-2:val-2|key-1:val-1,key-2:val-2'``

        JSON: ``'j{ ... }j'``:
           ``cert-key-chain='j{ "default": { "cert": "default.crt", "chain": "default.crt", "key": "default.key" } }j'``

        Escaping Delimiters:
            Use ``\,`` or ``\:`` or ``\|`` to escape characters which shouldn't
            be treated as delimiters i.e. ``ciphers='DEFAULT\:!SSLv3'``

    CLI Examples::

        salt '*' bigip.create_profile bigip admin admin http my-http-profile defaultsFrom='/Common/http'
        salt '*' bigip.create_profile bigip admin admin http my-http-profile defaultsFrom='/Common/http' \
            enforcement=maxHeaderCount:3200,maxRequests:10

    unameu__uhostnameuusernameupassworduprofile_typeu_u-u=Error: Unable to Parse JSON data for parameter: {key}
{value}R�R+R#u/ltm/profile/{type}R�R (uhostnameuusernameupassworduprofile_type(RRR'R=R?RCRRARBRRJRKRRRLR	RMR&R"(R%RRR�RWR�RNR)R�R+RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytcreate_profile�s$3
!"cK@s-t||�}i}||d<x�tj|�D]�\}}	|jd�s/|dkr�|jdd�}yt|	�||<Wq�tjjk
r�d	j	d
|d|	�SXq�q/q/WyJ|j
tj	d|�d
j	d|d|�dtjj
j|��}
Wn#tjjk
r"}t||�SXt|
�S(uJ
    A function to connect to a bigip device and create a profile.

    A function to connect to a bigip device and create a profile.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    profile_type
        The type of profile to create
    name
        The name of the profile to create
    kwargs
        ``[ arg=val ] ... [arg=key1:val1,key2:val2] ...``

        Consult F5 BIGIP user guide for specific options for each monitor type.
        Typically, tmsh arg names are used.

    Creating Complex Args

        Profiles can get pretty complicated in terms of the amount of possible
        config options. Use the following shorthand to create complex arguments such
        as lists, dictionaries, and lists of dictionaries. An option is also
        provided to pass raw json as well.

        lists ``[i,i,i]``:
            ``param='item1,item2,item3'``

        Dictionary ``[k:v,k:v,k,v]``:
            ``param='key-1:val-1,key-2:val2,key-3:va-3'``

        List of Dictionaries ``[k:v,k:v|k:v,k:v|k:v,k:v]``:
           ``param='key-1:val-1,key-2:val-2|key-1:val-1,key-2:val-2|key-1:val-1,key-2:val-2'``

        JSON: ``'j{ ... }j'``:
           ``cert-key-chain='j{ "default": { "cert": "default.crt", "chain": "default.crt", "key": "default.key" } }j'``

        Escaping Delimiters:
            Use ``\,`` or ``\:`` or ``\|`` to escape characters which shouldn't
            be treated as delimiters i.e. ``ciphers='DEFAULT\:!SSLv3'``

    CLI Examples::

        salt '*' bigip.modify_profile bigip admin admin http my-http-profile defaultsFrom='/Common/http'

        salt '*' bigip.modify_profile bigip admin admin http my-http-profile defaultsFrom='/Common/http' \
            enforcement=maxHeaderCount:3200,maxRequests:10

        salt '*' bigip.modify_profile bigip admin admin client-ssl my-client-ssl-1 retainCertificate=false \
            ciphers='DEFAULT\:!SSLv3'
            cert_key_chain='j{ "default": { "cert": "default.crt", "chain": "default.crt", "key": "default.key" } }j'
    unameu__uhostnameuusernameupassworduprofile_typeu_u-u=Error: Unable to Parse JSON data for parameter: {key}
{value}R�R+R#u/ltm/profile/{type}/{name}R�RWR (uhostnameuusernameupassworduprofile_type(RRR'R=R?RCRRARBRR[RKRRRLR	RMR&R"(R%RRR�RWR�RNR)R�R+RRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytmodify_profileJs$:
!(cC@s�t||�}y5|jtjd|�djd|d|��}Wn#tjjk
ri}t||�SXt|�dkr�t	St|�SdS(u�
    A function to connect to a bigip device and delete an existing profile.

    hostname
        The host/address of the bigip device
    username
        The iControl REST username
    password
        The iControl REST password
    profile_type
        The type of profile to delete
    name
        The name of the profile to delete

    CLI Example::

        salt '*' bigip.delete_profile bigip admin admin http my-http-profile

    R#u/ltm/profile/{type}/{name}R�RWuN(
RRURKRR	RARMR&R"R6(R%RRR�RWRNRRO((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pytdelete_profile�s5(7t__doc__t
__future__RRRtsalt.utils.jsonRR	trequests.exceptionsR6RtImportErrorRtsalt.extRtsalt.exceptionsRRRKRRR"R&R,R5R:RCRPRRRTRVRXRZRdReRfR|R}R~R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s6/usr/lib/python2.7/site-packages/salt/modules/bigip.pyt<module>st


	
		
				<	1	'	,	&&+F$"�}	!	C	9M	##��	!%	2	2	$%	Q	X

Zerion Mini Shell 1.0