Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/f5/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyo

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
mZddl
mZdd
l
mZddlmZy�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZWn�ek
r�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl mZddl mZnXdefd��YZ!de!fd��YZ"de!fd��YZ#de!fd��YZ$d e$fd!��YZ%d"e$fd#��YZ&d$e'fd%��YZ(d&e'fd'��YZ)d(e'fd)��YZ*d*e*fd+��YZ+d,e*fd-��YZ,d.e'fd/��YZ-d0�Z.e/d1kr�e.�nd2S(3i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontstableinterfacetstatust	certifiedtsupported_bys#

---
module: bigip_gtm_wide_ip
short_description: Manages F5 BIG-IP GTM wide ip
description:
  - Manages F5 BIG-IP GTM wide ip.
version_added: 2.0
options:
  pool_lb_method:
    description:
      - Specifies the load balancing method used to select a pool in this wide
        IP. This setting is relevant only when multiple pools are configured
        for a wide IP.
    type: str
    required: True
    aliases: ['lb_method']
    choices:
      - round-robin
      - ratio
      - topology
      - global-availability
    version_added: 2.5
  name:
    description:
      - Wide IP name. This name must be formatted as a fully qualified
        domain name (FQDN). You can also use the alias C(wide_ip) but this
        is deprecated and will be removed in a future Ansible version.
    type: str
    required: True
    aliases:
      - wide_ip
  type:
    description:
      - Specifies the type of wide IP. GTM wide IPs need to be keyed by query
        type in addition to name, since pool members need different attributes
        depending on the response RDATA they are meant to supply. This value
        is required if you are using BIG-IP versions >= 12.0.0.
    type: str
    choices:
      - a
      - aaaa
      - cname
      - mx
      - naptr
      - srv
    version_added: 2.4
  state:
    description:
      - When C(present) or C(enabled), ensures that the Wide IP exists and
        is enabled.
      - When C(absent), ensures that the Wide IP has been removed.
      - When C(disabled), ensures that the Wide IP exists and is disabled.
    type: str
    choices:
      - present
      - absent
      - disabled
      - enabled
    default: present
    version_added: 2.4
  partition:
    description:
      - Device partition to manage resources on.
    type: str
    default: Common
    version_added: 2.5
  pools:
    description:
      - The pools that you want associated with the Wide IP.
      - If C(ratio) is not provided when creating a new Wide IP, it will default
        to 1.
    type: list
    suboptions:
      name:
        description:
          - The name of the pool to include.
        type: str
        required: True
      ratio:
        description:
          - Ratio for the pool.
          - The system uses this number with the Ratio load balancing method.
        type: int
    version_added: 2.5
  irules:
    description:
      - List of rules to be applied.
      - If you want to remove all existing iRules, specify a single empty value; C("").
        See the documentation for an example.
    type: list
    version_added: 2.6
  aliases:
    description:
      - Specifies alternate domain names for the web site content you are load
        balancing.
      - You can use the same wildcard characters for aliases as you can for actual
        wide IP names.
    type: list
    version_added: 2.7
  last_resort_pool:
    description:
      - Specifies which GTM pool, for the system to use as the last resort pool for
        the wide IP.
      - The valid pools for this parameter are those with the C(type) specified in this
        module.
    type: str
    version_added: 2.8
notes:
  - Support for TMOS versions below v12.x has been deprecated for this module, and will be removed in Ansible 2.12.
extends_documentation_fragment: f5
author:
  - Tim Rupp (@caphrim007)
  - Wojciech Wypior (@wojtek0806)
s*
- name: Set lb method
  bigip_gtm_wide_ip:
    pool_lb_method: round-robin
    name: my-wide-ip.example.com
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Add iRules to the Wide IP
  bigip_gtm_wide_ip:
    pool_lb_method: round-robin
    name: my-wide-ip.example.com
    irules:
      - irule1
      - irule2
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Remove one iRule from the Virtual Server
  bigip_gtm_wide_ip:
    pool_lb_method: round-robin
    name: my-wide-ip.example.com
    irules:
      - irule1
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Remove all iRules from the Virtual Server
  bigip_gtm_wide_ip:
    pool_lb_method: round-robin
    name: my-wide-ip.example.com
    irules: ""
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Assign a pool with ratio to the Wide IP
  bigip_gtm_wide_ip:
    pool_lb_method: round-robin
    name: my-wide-ip.example.com
    pools:
      - name: pool1
        ratio: 100
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost
s�
lb_method:
  description: The new load balancing method used by the wide IP.
  returned: changed
  type: str
  sample: topology
state:
  description: The new state of the wide IP.
  returned: changed
  type: str
  sample: disabled
irules:
  description: iRules set on the Wide IP.
  returned: changed
  type: list
  sample: ['/Common/irule1', '/Common/irule2']
aliases:
  description: Aliases set on the Wide IP.
  returned: changed
  type: list
  sample: ['alias1.foo.com', '*.wildcard.domain']
(t
AnsibleModule(tenv_fallback(t	iteritems(tLooseVersion(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tfq_name(tf5_argument_spec(ttransform_name(t
is_valid_fqdn(ttmos_version(tmodule_provisionedt
ParameterscB`sweZidd6dd6dd6Zdddddd	d
dgZdddddd
dgZddd	ddd
dgZRS(tpool_lb_methodt
poolLbModetirulestrulestlast_resort_pooltlastResortPooltstatetpoolstenabledtdisabledtaliasestname(t__name__t
__module__tapi_mapt
updatablestreturnablestapi_attributes(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s4
		t
ApiParameterscB`sDeZed��Zed��Zed��Zed��ZRS(cC`s|jdtkrtStS(NR(t_valuestTruetFalse(tself((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRscC`s|jdtkrtStS(NR(R)R*R+(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRscC`s�g}|jddkrgSt|jddd��}xq|D]i}t�}|j|�dj|d|d�}|d=|d=|d=|d=||d<|j|�q@W|S(	NRtkeycS`s|dS(Ntorder((tx((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt<lambda>*ss/{0}/{1}t	partitionR!t
nameReferenceR.(R)tNonetsortedtdicttupdatetformattappend(R,tresultRtitemtpoolR!((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR%s
	

cC`s"|jddkrdS|jdS(NRttnone(NR<R=(R)R3(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR7s(R"R#tpropertyRRRR(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR(stModuleParameterscB`s�eZed��Zed��Zed��Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed	��ZRS(
cC`s=|jddkrdSdj|jt|j|jd��S(NRR<R=s{0} {1}(NR<snone(R)R3R7ttypeRR1(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR?scC`s.|jddkrdSt|jd�}|S(NR(R)R3tstr(R,t	lb_method((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRGscC`s(|jddkrdSt|jd�S(NR@(R)R3RA(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR@NscC`sD|jddkrdSt|jd�s9td��n|jdS(NR!s&The provided name must be a valid FQDN(R)R3RR
(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR!TscC`s"|jddkrdS|jdS(NRRtpresent(R)(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR^scC`s6|jddkrtS|jddkr.tSdSdS(NRRRCR(spresentsenabled(R)R+R*R3(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRds
cC`s6|jddkrtS|jddkr.tSdSdS(NRRRCR(spresentsenabled(R)R*R+R3(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRms
cC`s�g}|jddkrdSx}|jdD]n}t�}d|krUtd��nd|krr|d|d<nt|j|d�|d<|j|�q+W|S(NRR!s8'name' is a required key for items in the list of pools.tratio(R)R3R5R
RR1R8(R,R9R:R;((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRvs	cC`s�g}|jddkrdSt|jd�dkrQ|jdddkrQdSx4|jdD]%}t|j|�}|j|�q_W|S(NRiiR<(R)R3tlenRR1R8(R,tresultstiruleR9((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s0cC`sg|jddkrdSt|jd�dkrK|jdddkrKdS|jdj�|jdS(NR iiR<(R)R3REtsort(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR �s0(
R"R#R>RRR@R!RRRRRR (((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR?>s
		tChangescB`seZd�ZRS(cC`s}i}y_xI|jD]>}t||�}t|t�rG|j|�q|||<qW|j|�}Wntk
rxnX|S(N(R&tgetattrt
isinstanceR5R6t_filter_paramst	Exception(R,R9t
returnabletchange((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt	to_return�s
(R"R#RP(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRI�st
UsableChangescB`seZed��ZRS(cC`s9|jddkrdS|jddkr.gS|jdS(NRR<(R)R3(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s
(R"R#R>R(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRQ�stReportableChangescB`s&eZed��Zed��ZRS(cC`s'td|jdd|jd�}|S(NRBR(R5R)(R,R9((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s
cC`sF|jddkrdS|jddkr.dS|jdjd�dS(NRR<R=t i(R<snone(R)R3tsplit(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s
(R"R#R>RR(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRR�st
DifferencecB`s�eZd
d�Zd�Zd�Zd�Zd�Zed��Z	ed��Z
ed��Zed��Zed	��Z
RS(cC`s||_||_dS(N(twantthave(R,RVRW((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt__init__�s	cC`s9yt||�}|SWntk
r4|j|�SXdS(N(RJtAttributeErrort_Difference__default(R,tparamR9((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pytcompare�s

cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(RJRVRWRY(R,R[tattr1tattr2((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt	__default�s
cC`s\g}xO|D]G}gt|�D]$\}}t|�t|�f^q }||7}q
W|S(N(R
RA(R,titemsR9R/tktvttmp((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pytto_tuple�s

7cC`sq|gkr|dkrdS|dkr,dS|j|�}|j|�}t|�jt|��ridS|SdS(N(R3Rdtsettissubset(R,RVRWtwth((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt_diff_complex_items�scC`sd|jjdkrdS|jjdkr>|jjdkr>dS|jj|jjkr`|jjSdS(NR<(RVRR3RW(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s$cC`sT|jjdkr(|jjr(|jjS|jjdkrP|jjrP|jjSdS(NRRCR(spresentsenabled(RVRRWRR(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s
cC`s"|j|jj|jj�}|S(N(RiRVRRW(R,R9((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRscC`s�|jjdkrdS|jjdkr>|jjdkr>dS|jjdkrlt|jj�dkrlgStt|jj��tt|jj��kr�|jjSdS(NR<i(RVRR3RWRER4Re(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRs$*0cC`s�|jjdkrdS|jjdkr>|jjdkr>dS|jjdkrlt|jj�dkrlgS|jjdkr�|jjSt|jj�t|jj�kr�|jjSdS(NR<i(RVR R3RWRERe(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR s$*
$N(R"R#R3RXR\RZRdRiR>RRRRR (((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRU�s						t
ModuleManagercB`s,eZd�Zd�Zd�Zd�ZRS(cO`s7|jdd�|_t|jj�|_||_dS(Ntmodule(tgetR3RkRtparamstclienttkwargs(R,targsRo((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRX scC`sXt|jd�s!td��n|j�r?|jd�}n|jd�}|j�S(Ntgtms+GTM must be provisioned to use this module.tuntypedttyped(RRnR
tversion_is_less_than_12tget_managertexec_module(R,tmanager((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRv%scC`s6|dkrt|j�S|dkr2t|j�SdS(NRsRr(tTypedManagerRotUntypedManager(R,R@((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRu0s
cC`s3t|j�}t|�td�kr+tStSdS(Ns12.0.0(RRnRR*R+(R,tversion((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRt6s(R"R#RXRvRuRt(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRjs			tBaseManagercB`s}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
cO`s^|jdd�|_t|jj�|_td|jj�|_t�|_	t
�|_dS(NRkRm(RlR3RkRRmRnR?RVR(RWRQtchanges(R,RpRo((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRX?s
cC`sji}xBtjD]7}t|j|�dk	rt|j|�||<qqW|rftd|�|_ndS(NRm(RR&RJRVR3RQR|(R,tchangedR-((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt_set_changed_optionsFscC`s�t|j|j�}tj}t�}xX|D]P}|j|�}|dkrUq.q.t|t�rt|j	|�q.|||<q.W|r�t
d|�|_tSt
S(NRm(RURVRWRR%R5R\R3RKR6RQR|R*R+(R,tdiffR%R}RaRO((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt_update_changed_optionsNs		
cC`s�t}t�}|jj}|dkr6|j�}n|dkrQ|j�}ntd|jj��}|j�}|j	|�|j	td|��|j
|�|S(NRCRtabsentRmR}(spresentsdisabled(R+R5RVRRCR�RRR|RPR6t_announce_deprecations(R,R}R9Rt
reportableR|((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRv`s	

cC`sd|jdg�}|j�r.|j|�nx/|D]'}|jjd|dd|d�q5WdS(Nt
__warningstmsgRz(tpopRtt_deprecate_v11Rkt	deprecate(R,R9twarningstwarning((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�qs

cC`s3t|j�}t|�td�kr+tStSdS(Ns12.0.0(RRnRR*R+(R,Rz((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRt{scC`s |jtdddd��dS(NR�s0The support for this TMOS version is deprecated.Rzs2.12(R8R5(R,R9((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��scC`s$|j�r|j�S|j�SdS(N(texistsR6tcreate(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRC�s
cC`sI|jjdkr!td��n|j�|jjr;tS|j�tS(Ns?The 'pool_lb_method' option is required when state is 'present'(	RVRR3R
R~Rkt
check_modeR*tcreate_on_device(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s

cC`s|j�}|rtStS(N(R�R*R+(R,R9((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt
should_update�scC`s=|j�|_|j�stS|jjr/tS|j�tS(N(tread_current_from_deviceRWR�R+RkR�R*tupdate_on_device(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR6�s
cC`s|j�r|j�StS(N(R�tremoveR+(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s
cC`s9|jjrtS|j�|j�r5td��ntS(NsFailed to delete the Wide IP(RkR�R*tremove_from_deviceR�R
(R,((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s
(R"R#RXR~R�RvR�RtR�RCR�R�R6R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR{>s					
								RycB`s5eZd�Zd�Zd�Zd�Zd�ZRS(cC`s�dj|jjd|jjdt|jj|jj��}|jjj|�}y|j	�}Wnt
k
rwtSX|jdks�d|kr�|ddkr�tSt
S(Ns&https://{0}:{1}/mgmt/tm/gtm/wideip/{2}tservertserver_porti�tcode(R7RntproviderRRVR1R!tapiRltjsont
ValueErrorR+RR*(R,turitresptresponse((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s


+cC`s�|jj�}dj|jjd|jjdt|jj|jj��}|jj	j
|d|�}y|j�}Wn%tk
r�}t
t|���nXd|kr�|ddkr�d|kr�t
|d��q�t
|j��ndS(Ns&https://{0}:{1}/mgmt/tm/gtm/wideip/{2}R�R�R�R�i�tmessage(R|t
api_paramsR7RnR�RRVR1R!R�tpatchR�R�R
RAtcontent(R,RmR�R�R�tex((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s

cC`s�dj|jjd|jjdt|jj|jj��}|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��ntd|�S(Ns&https://{0}:{1}/mgmt/tm/gtm/wideip/{2}R�R�R�i�R�Rm(R7RnR�RRVR1R!R�RlR�R�R
RAR�R((R,R�R�R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s

cC`s�|jj�}|jj|d<|jj|d<dj|jjd|jjd�}|jjj	|d|�}y|j
�}Wn%tk
r�}tt
|���nXd|kr�|ddkr�d
|kr�t|d
��q�t|j��n|dS(
NR!R1s#https://{0}:{1}/mgmt/tm/gtm/wideip/R�R�R�R�i�i�R�tselfLink(i�i�(R|R�RVR!R1R7RnR�R�tpostR�R�R
RAR�(R,RmR�R�R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR��s 
cC`sydj|jjd|jjdt|jj|jj��}|jjj|�}|j	dkrft
St|j��dS(Ns&https://{0}:{1}/mgmt/tm/gtm/wideip/{2}R�R�i�(
R7RnR�RRVR1R!R�tdeleteRR*R
R�(R,R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s

(R"R#R�R�R�R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRy�s
				RxcB`s>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cO`s;tt|�j|�|jjdkr7td��ndS(NsPThe 'type' option is required for BIG-IP instances greater than or equal to 12.x(tsuperRxRXRVR@R3R
(R,RpRo((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRXscC`s�dj|jjd|jjd|jjt|jj|jj��}|jjj	|�}y|j
�}Wntk
r�tSX|j
dks�d|kr�|ddkr�tStS(Ns*https://{0}:{1}/mgmt/tm/gtm/wideip/{2}/{3}R�R�i�R�(R7RnR�RVR@RR1R!R�RlR�R�R+RR*(R,R�R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�s

	
+cC`s�|jj�}dj|jjd|jjd|jjt|jj|jj	��}|jj
j|d|�}y|j�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j��ndS(Ns*https://{0}:{1}/mgmt/tm/gtm/wideip/{2}/{3}R�R�R�R�i�R�(R|R�R7RnR�RVR@RR1R!R�R�R�R�R
RAR�(R,RmR�R�R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�(s

	cC`s�dj|jjd|jjd|jjt|jj|jj��}|jjj	|�}y|j
�}Wn%tk
r�}tt
|���nXd|kr�|ddkr�d|kr�t|d��q�t|j��ntd|�S(Ns*https://{0}:{1}/mgmt/tm/gtm/wideip/{2}/{3}R�R�R�i�R�Rm(R7RnR�RVR@RR1R!R�RlR�R�R
RAR�R((R,R�R�R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�<s

	cC`s|jj�}|jj|d<|jj|d<dj|jjd|jjd|jj�}|jj	j
|d|�}y|j�}Wn%tk
r�}t
t|���nXd|kr�|ddkr�d
|kr�t
|d
��q�t
|j��n|dS(
NR!R1s'https://{0}:{1}/mgmt/tm/gtm/wideip/{2}/R�R�R�R�i�i�R�R�(i�i�(R|R�RVR!R1R7RnR�R@R�R�R�R�R
RAR�(R,RmR�R�R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�Ps"

cC`s�dj|jjd|jjd|jjt|jj|jj��}|jjj	|�}|j
dkrotSt|j
��dS(Ns*https://{0}:{1}/mgmt/tm/gtm/wideip/{2}/{3}R�R�i�(R7RnR�RVR@RR1R!R�R�RR*R
R�(R,R�R�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�fs

	(R"R#RXR�R�R�R�R�(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRxs					tArgumentSpeccB`seZd�ZRS(cC`s>ddddg}t|_tdtd|ddg�d	td
tddg�dtdd
dddddg�dtdddddddg�dtdddtd	td
t�dtdd���dtdddtd gf�d!tdd�dtdd�d"t��	}i|_|jjt�|jj|�dS(#Nsround-robinttopologyRDsglobal-availabilityRtchoicesR RBR!trequiredtwide_ipR@tataaaatcnametmxtnaptrtsrvRtdefaultRCR�RRRtlisttoptionstintR1tCommontfallbacktF5_PARTITIONRR(R*tsupports_check_modeR5R	t
argument_specR6R(R,tlb_method_choicesR�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyRXts<				(R"R#RX(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyR�sscC`s�t�}td|jd|j�}y,td|�}|j�}|j|�Wn)tk
r{}|jdt	|��nXdS(NR�R�RkR�(
R�RR�R�RjRvt	exit_jsonR
t	fail_jsonRA(tspecRktmmRFR�((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pytmain�s		t__main__N(0t
__future__RRRR@t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNtansible.module_utils.basicRR	tansible.module_utils.sixR
tdistutils.versionRt%library.module_utils.network.f5.bigipRt&library.module_utils.network.f5.commonR
RRRRRt(library.module_utils.network.f5.icontrolRRtImportErrort%ansible.module_utils.network.f5.bigipt&ansible.module_utils.network.f5.commont(ansible.module_utils.network.f5.icontrolRR(R?RIRQRRtobjectRURjR{RyRxR�R�R"(((sP/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_wide_ip.pyt<module>s\


s=
'&_
VzWd0	

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]