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_server.pyc

�
�Udac@`sAddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlmZdd
lm
Z
ddlmZy�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZWn�ek
r�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZnXyddl m!Z!Wn9ek
ryddl"m!Z!Wnek
rnXnXdefd��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)fd0��YZ/d1�Z0e1d2kr=e0�ndS(3i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontstableinterfacetstatust	certifiedtsupported_bys�,
---
module: bigip_gtm_server
short_description: Manages F5 BIG-IP GTM servers
description:
  - Manage BIG-IP server configuration. This module is able to manipulate the server
    definitions in a BIG-IP.
version_added: 2.5
options:
  name:
    description:
      - The name of the server.
    type: str
    required: True
  state:
    description:
      - The server state. If C(absent), an attempt to delete the server will be made.
        This will only succeed if this server is not in use by a virtual server.
        C(present) creates the server and enables it. If C(enabled), enable the server
        if it exists. If C(disabled), create the server if needed, and set state to
        C(disabled).
    type: str
    choices:
      - present
      - absent
      - enabled
      - disabled
    default: present
  datacenter:
    description:
      - Data center the server belongs to. When creating a new GTM server, this value
        is required.
    type: str
  devices:
    description:
      - Lists the self IP addresses and translations for each device. When creating a
        new GTM server, this value is required. This list is a complex list that
        specifies a number of keys.
      - The C(name) key specifies a name for the device. The device name must
        be unique per server. This key is required.
      - The C(address) key contains an IP address, or list of IP addresses, for the
        destination server. This key is required.
      - The C(translation) key contains an IP address to translate the C(address)
        value above to. This key is optional.
      - Specifying duplicate C(name) fields is a supported means of providing device
        addresses. In this scenario, the addresses will be assigned to the C(name)'s list
        of addresses.
    type: list
  server_type:
    description:
      - Specifies the server type. The server type determines the metrics that the
        system can collect from the server. When creating a new GTM server, the default
        value C(bigip) is used.
    type: str
    choices:
      - alteon-ace-director
      - cisco-css
      - cisco-server-load-balancer
      - generic-host
      - radware-wsd
      - windows-nt-4.0
      - bigip
      - cisco-local-director-v2
      - extreme
      - generic-load-balancer
      - sun-solaris
      - cacheflow
      - cisco-local-director-v3
      - foundry-server-iron
      - netapp
      - windows-2000-server
    aliases:
      - product
  link_discovery:
    description:
      - Specifies whether the system auto-discovers the links for this server. When
        creating a new GTM server, if this parameter is not specified, the default
        value C(disabled) is used.
      - If you set this parameter to C(enabled) or C(enabled-no-delete), you must
        also ensure that the C(virtual_server_discovery) parameter is also set to
        C(enabled) or C(enabled-no-delete).
    type: str
    choices:
      - enabled
      - disabled
      - enabled-no-delete
  virtual_server_discovery:
    description:
      - Specifies whether the system auto-discovers the virtual servers for this server.
        When creating a new GTM server, if this parameter is not specified, the default
        value C(disabled) is used.
    type: str
    choices:
      - enabled
      - disabled
      - enabled-no-delete
  partition:
    description:
      - Device partition to manage resources on.
    type: str
    default: Common
    version_added: 2.5
  iquery_options:
    description:
      - Specifies whether the Global Traffic Manager uses this BIG-IP
        system to conduct a variety of probes before delegating traffic to it.
    suboptions:
      allow_path:
        description:
          - Specifies that the system verifies the logical network route between a data
            center server and a local DNS server.
        type: bool
      allow_service_check:
        description:
          - Specifies that the system verifies that an application on a server is running,
            by remotely running the application using an external service checker program.
        type: bool
      allow_snmp:
        description:
          - Specifies that the system checks the performance of a server running an SNMP
            agent.
        type: bool
    type: dict
    version_added: 2.7
  monitors:
    description:
      - Specifies the health monitors that the system currently uses to monitor this resource.
      - When C(availability_requirements.type) is C(require), you may only have a single monitor in the
        C(monitors) list.
    type: list
    version_added: 2.8
  availability_requirements:
    description:
      - Specifies, if you activate more than one health monitor, the number of health
        monitors that must receive successful responses in order for the link to be
        considered available.
    suboptions:
      type:
        description:
          - Monitor rule type when C(monitors) is specified.
          - When creating a new pool, if this value is not specified, the default of 'all' will be used.
        type: str
        choices:
          - all
          - at_least
          - require
      at_least:
        description:
          - Specifies the minimum number of active health monitors that must be successful
            before the link is considered up.
          - This parameter is only relevant when a C(type) of C(at_least) is used.
          - This parameter will be ignored if a type of either C(all) or C(require) is used.
        type: int
      number_of_probes:
        description:
          - Specifies the minimum number of probes that must succeed for this server to be declared up.
          - When creating a new virtual server, if this parameter is specified, then the C(number_of_probers)
            parameter must also be specified.
          - The value of this parameter should always be B(lower) than, or B(equal to), the value of C(number_of_probers).
          - This parameter is only relevant when a C(type) of C(require) is used.
          - This parameter will be ignored if a type of either C(all) or C(at_least) is used.
        type: int
      number_of_probers:
        description:
          - Specifies the number of probers that should be used when running probes.
          - When creating a new virtual server, if this parameter is specified, then the C(number_of_probes)
            parameter must also be specified.
          - The value of this parameter should always be B(higher) than, or B(equal to), the value of C(number_of_probers).
          - This parameter is only relevant when a C(type) of C(require) is used.
          - This parameter will be ignored if a type of either C(all) or C(at_least) is used.
        type: int
    type: dict
    version_added: 2.8
  prober_preference:
    description:
      - Specifies the type of prober to use to monitor this server's resources.
      - This option is ignored in C(TMOS) version C(12.x).
      - From C(TMOS) version C(13.x) and up, when prober_preference is set to C(pool)
        a C(prober_pool) parameter must be specified.
    type: str
    choices:
      - inside-datacenter
      - outside-datacenter
      - inherit
      - pool
    version_added: 2.8
  prober_fallback:
    description:
      - Specifies the type of prober to use to monitor this server's resources
        when the preferred prober is not available.
      - This option is ignored in C(TMOS) version C(12.x).
      - From C(TMOS) version C(13.x) and up, when prober_preference is set to C(pool)
        a C(prober_pool) parameter must be specified.
      - The choices are mutually exclusive with prober_preference parameter,
        with the exception of C(any-available) or C(none) option.
    type: str
    choices:
      - any
      - inside-datacenter
      - outside-datacenter
      - inherit
      - pool
      - none
    version_added: 2.8
  prober_pool:
    description:
      - Specifies the name of the prober pool to use to monitor this server's resources.
      - From C(TMOS) version C(13.x) and up, this parameter is mandatory when C(prober_preference) is set to C(pool).
      - Format of the name can be either be prepended by partition (C(/Common/foo)), or specified
        just as an object name (C(foo)).
      - In C(TMOS) version C(12.x) prober_pool can be set to empty string to revert to default setting of inherit.
    type: str
    version_added: 2.8
  limits:
    description:
      - Specifies resource thresholds or limit requirements at the pool member level.
      - When you enable one or more limit settings, the system then uses that data to take
        members in and out of service.
      - You can define limits for any or all of the limit settings. However, when a
        member does not meet the resource threshold limit requirement, the system marks
        the member as unavailable and directs load-balancing traffic to another resource.
    suboptions:
      bits_enabled:
        description:
          - Whether the bits limit it enabled or not.
          - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      packets_enabled:
        description:
          - Whether the packets limit it enabled or not.
          - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      connections_enabled:
        description:
          - Whether the current connections limit it enabled or not.
          - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      cpu_enabled:
        description:
          - Whether the CPU limit it enabled or not.
          - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      memory_enabled:
        description:
          - Whether the memory limit it enabled or not.
          - This parameter allows you to switch on or off the effect of the limit.
        type: bool
      bits_limit:
        description:
          - Specifies the maximum allowable data throughput rate, in bits per second,
            for the member.
          - If the network traffic volume exceeds this limit, the system marks the
            member as unavailable.
        type: int
      packets_limit:
        description:
          - Specifies the maximum allowable data transfer rate, in packets per second,
            for the member.
          - If the network traffic volume exceeds this limit, the system marks the
            member as unavailable.
        type: int
      connections_limit:
        description:
          - Specifies the maximum number of concurrent connections, combined, for all of
            the member.
          - If the connections exceed this limit, the system marks the server as
            unavailable.
        type: int
      cpu_limit:
        description:
          - Specifies the percent of CPU usage.
          - If percent of CPU usage goes above the limit, the system marks the server as unavailable.
        type: int
      memory_limit:
        description:
          - Specifies the available memory required by the virtual servers on the server.
          - If available memory falls below this limit, the system marks the server as unavailable.
        type: int
    type: dict
    version_added: 2.8
extends_documentation_fragment: f5
author:
  - Robert Teller (@r-teller)
  - Tim Rupp (@caphrim007)
  - Wojciech Wypior (@wojtek0806)
s
- name: Create server "GTM_Server"
  bigip_gtm_server:
    name: GTM_Server
    datacenter: /Common/New York
    server_type: bigip
    link_discovery: disabled
    virtual_server_discovery: disabled
    devices:
      - name: server_1
        address: 1.1.1.1
      - name: server_2
        address: 2.2.2.1
        translation: 192.168.2.1
      - name: server_2
        address: 2.2.2.2
      - name: server_3
        addresses:
          - address: 3.3.3.1
          - address: 3.3.3.2
      - name: server_4
        addresses:
          - address: 4.4.4.1
            translation: 192.168.14.1
          - address: 4.4.4.2
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Create server "GTM_Server" with expanded keys
  bigip_gtm_server:
    server: lb.mydomain.com
    user: admin
    password: secret
    name: GTM_Server
    datacenter: /Common/New York
    server_type: bigip
    link_discovery: disabled
    virtual_server_discovery: disabled
    devices:
      - name: server_1
        address: 1.1.1.1
      - name: server_2
        address: 2.2.2.1
        translation: 192.168.2.1
      - name: server_2
        address: 2.2.2.2
      - name: server_3
        addresses:
          - address: 3.3.3.1
          - address: 3.3.3.2
      - name: server_4
        addresses:
          - address: 4.4.4.1
            translation: 192.168.14.1
          - address: 4.4.4.2
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost
sQ
bits_enabled:
  description: Whether the bits limit is enabled.
  returned: changed
  type: bool
  sample: yes
bits_limit:
  description: The new bits_enabled limit.
  returned: changed
  type: int
  sample: 100
connections_enabled:
  description: Whether the connections limit is enabled.
  returned: changed
  type: bool
  sample: yes
connections_limit:
  description: The new connections_limit limit.
  returned: changed
  type: int
  sample: 100
monitors:
  description: The new list of monitors for the resource.
  returned: changed
  type: list
  sample: ['/Common/monitor1', '/Common/monitor2']
link_discovery:
  description: The new C(link_discovery) configured on the remote device.
  returned: changed
  type: str
  sample: enabled
virtual_server_discovery:
  description: The new C(virtual_server_discovery) name for the trap destination.
  returned: changed
  type: str
  sample: disabled
server_type:
  description: The new type of the server.
  returned: changed
  type: str
  sample: bigip
datacenter:
  description: The new C(datacenter) which the server is part of.
  returned: changed
  type: str
  sample: datacenter01
packets_enabled:
  description: Whether the packets limit is enabled.
  returned: changed
  type: bool
  sample: yes
packets_limit:
  description: The new packets_limit limit.
  returned: changed
  type: int
  sample: 100
N(t
AnsibleModule(tenv_fallback(tLooseVersion(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tfq_name(tf5_argument_spec(ttransform_name(t
is_empty_list(ttmos_version(tmodule_provisioned(tOrderedDictt
ParameterscB`s�eZidd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6d&d'6d(d)6Zddddd*d+d,d	dd
dddddddddd!d#d%d'd)gZddd-d*d.dd
dddddddddd dd$d"d(d&gZdddd*d+dd
dddd/dddddddd dd$d"d(d&gZRS(0tserver_typetproducttvirtual_server_discoverytvirtualServerDiscoverytlink_discoveryt
linkDiscoverytdevicest	addressestiquery_allow_pathtiqAllowPathtiquery_allow_service_checktiqAllowServiceChecktiquery_allow_snmptiqAllowSnmptmonitorstmonitortprober_preferencetproberPreferencetprober_poolt
proberPooltprober_fallbacktproberFallbackt
bits_limittlimitMaxBpstbits_enabledtlimitMaxBpsStatustconnections_limittlimitMaxConnectionstconnections_enabledtlimitMaxConnectionsStatust
packets_limittlimitMaxPpstpackets_enabledtlimitMaxPpsStatust	cpu_limitt
limitCpuUsagetcpu_enabledtlimitCpuUsageStatustmemory_limitt
limitMemAvailtmemory_enabledtlimitMemAvailStatust
datacentertenabledtdisabledtserver_type_and_deviceststatetavailability_requirements(t__name__t
__module__tapi_maptapi_attributest
updatablestreturnables(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s�
		t
ApiParameterscB`s�eZed��Zed��Zed��Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed	��Zed
��Z
ed��Zed��Zed
��ZRS(cC`s"|jddkrdS|jdS(NR(t_valuestNone(tself((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR7scC`s=|jddkrdS|jddkr.dS|jdSdS(NRssingle-bigipsredundant-bigiptbigip(ssingle-bigipsredundant-bigip(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR=s
cC`s"|jddkrdS|jdS(NR(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pytraw_server_typeFscC`s|jddkrdStS(NRA(RMRNtTrue(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRALscC`s|jddkrdStS(NRB(RMRNRR(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRBRscC`s2|jddkrdS|jddkr.tStS(NRtyes(RMRNRRtFalse(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRXs
cC`s2|jddkrdS|jddkr.tStS(NR RS(RMRNRRRT(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR `s
cC`s2|jddkrdS|jddkr.tStS(NR"RS(RMRNRRRT(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR"hs
cC`sM|jddkrdSd|jdkr.dSd|jdkrEdSdSdS(NR$smin tat_leastsrequire trequiretall(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pytavailability_requirement_typepscC`sb|jddkrgSy+tjd|jd�}|j�|SWntk
r]|jdSXdS(NR$s/\w+/[^\s}]+(RMRNtretfindalltsortt	Exception(ROtresult((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt
monitors_list{s

cC`s�|jddkrdS|jddkr.dSg|jD]}t|j|�^q8}|jdkr�dj|�}dj|j|�}nQ|jdkr�dj|�}dj|j	|j
|�}ndj|�j�}|S(	NR$s
/Common/bigipRUt smin {0} of {{ {1} }}RVsrequire {0} from {1} {{ {2} }}s and (RMRNR^Rt	partitionRXtjointformatRUtnumber_of_probestnumber_of_proberststrip(ROtxR$R]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR$�s(cC`sS|jddkrdSd}tj||jd�}|dkrFdS|jd�S(s�Returns the probes value from the monitor string.

        The monitor string for a Require monitor looks like this.

            require 1 from 2 { /Common/tcp }

        This method parses out the first of the numeric values. This values represents
        the "probes" value that can be updated in the module.

        Returns:
             int: The probes value if found. None otherwise.
        R$s require\s+(?P<probes>\d+)\s+fromtprobesN(RMRNRYtsearchtgroup(ROtpatterntmatches((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRc�scC`sS|jddkrdSd}tj||jd�}|dkrFdS|jd�S(s�Returns the probers value from the monitor string.

        The monitor string for a Require monitor looks like this.

            require 1 from 2 { /Common/tcp }

        This method parses out the first of the numeric values. This values represents
        the "probers" value that can be updated in the module.

        Returns:
             int: The probers value if found. None otherwise.
        R$s*require\s+\d+\s+from\s+(?P<probers>\d+)\s+tprobersN(RMRNRYRhRi(RORjRk((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRd�scC`sS|jddkrdSd}tj||jd�}|dkrFdS|jd�S(s�Returns the 'at least' value from the monitor string.

        The monitor string for a Require monitor looks like this.

            min 1 of { /Common/gateway_icmp }

        This method parses out the first of the numeric values. This values represents
        the "at_least" value that can be updated in the module.

        Returns:
             int: The at_least value if found. None otherwise.
        R$smin\s+(?P<least>\d+)\s+of\s+tleastN(RMRNRYRhRi(RORjRk((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRU�s(RFRGtpropertyRRRQRARBRR R"RXR^R$RcRdRU(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRL6s	tModuleParameterscB`s�eZd�Zd�Zed��Zed��Zed��Zd�Zed��Z	ed��Z
ed��Zed	��Zed
��Z
ed��Zd�Zed
��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��Zed��ZRS(cC`sG|jddkrdS|jd|dkr2dSt|jd|�S(Ntlimits(RMRNtint(ROttype((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_get_limit_value�s
cC`sK|jddkrdS|jd|dkr2dS|jd|rGdSdS(NRpRARB(RMRN(RORr((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_get_limit_status�sc`s'|jddkrdSg}x|jdD]��t�fd�ddgD��sbtd��nd�kr�|j��}�d}�d}|ji|d6|d6|d6�q+d�kr+xZ�dD]K}|j|�}|d}�d}|ji|d6|d6|d6�q�Wq+q+W|S(	NRc3`s!|]}|�kr|VqdS(N((t.0Rf(tdevice(sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pys	<genexpr>�staddressRsFThe specified device list must contain an 'address' or 'addresses' keytnamet
deviceNamettranslation(RMRNtanyRt_determine_translationtappend(ROR]RzRxtdevice_nameRw((RvsO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s2"

	

	cC`s|jddkrtStS(NRDtpresentRA(spresentsenabled(RMRRRT(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRAscC`s.|jddkrdSt|j|jd�S(NR@(RMRNRR`(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR@scC`sd|krdS|dS(NRztnone((RORv((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR|scC`s"|jddkrdS|jdS(NRDRAR(RM(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRDscC`sA|jddkrdS|jdddkr2dS|jddS(Ntiquery_optionst
allow_path(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR#s
cC`sA|jddkrdS|jdddkr2dS|jddS(NR�tallow_service_check(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR +s
cC`sA|jddkrdS|jdddkr2dS|jddS(NR�t
allow_snmp(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR"3s
cC`sb|jddkrgSy+tjd|jd�}|j�|SWntk
r]|jdSXdS(NR$s/\w+/[^\s}]+(RMRNRYRZR[R\(ROR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR^;s

cC`s)|jddkrdSt|jd�r.dSg|jD]}t|j|�^q8}|jdkr�|jt|j�kr�t	d��ndj
|�}dj|j|�}nr|jdkrdj
|�}|j|j
kr�t	d��nd	j|j|j
|�}nd
j
|�j�}|S(NR$s
/Common/bigipRUs>The 'at_least' value must not exceed the number of 'monitors'.R_smin {0} of {{ {1} }}RVs?The 'number_of_probes' must not exceed the 'number_of_probers'.srequire {0} from {1} {{ {2} }}s and (RMRNRR^RR`RXRUtlenRRaRbRcRdRe(RORfR$R]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR$Fs&(cC`sG|jddkrdS|jd|dkr2dSt|jd|�S(NRE(RMRNRq(RORr((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_get_availability_value`s
cC`s&|jddkrdS|jddS(NRERr(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRXgscC`s
|jd�S(NRc(R�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRcmscC`s
|jd�S(NRd(R�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRdqscC`s
|jd�S(NRU(R�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRUuscC`sR|jddkrdS|jddkr5|jdSt|j|jd�}|S(NR(t(RMRNRR`(ROR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR(yscC`s"|jddkrdS|jdS(NR*R{s
any-available(RM(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR*�scC`s
|jd�S(NR,(Rs(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR,�scC`s
|jd�S(NR4(Rs(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR4�scC`s
|jd�S(NR0(Rs(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR0�scC`s
|jd�S(NR8(Rs(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR8�scC`s
|jd�S(NR<(Rs(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR<�scC`s
|jd�S(NR.(Rt(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR.�scC`s
|jd�S(NR6(Rt(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR6�scC`s
|jd�S(NR2(Rt(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR2�scC`s
|jd�S(NR:(Rt(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR:�scC`s
|jd�S(NR>(Rt(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR>�s( RFRGRsRtRnRRAR@R|RDRR R"R^R$R�RXRcRdRUR(R*R,R4R0R8R<R.R6R2R:R>(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRo�s:			!			tChangescB`seZd�ZRS(cC`s@i}x$|jD]}t||�||<qW|j|�}|S(N(RKtgetattrt_filter_params(ROR]t
returnable((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt	to_return�s
(RFRGR�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��st
UsableChangescB`sDeZed��Zed��Zed��Zed��ZRS(cC`sd|jd}|dkrdSd|kr`dr`|jd�jd�}dj|�j�}|S|S(NR$t{t}R�(RMRNRetsplitRatrstrip(ROtmonitor_stringttmpR%((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR$�s
cC`s,|jddkrdS|jdr(dSdS(NRRStno(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s

cC`s,|jddkrdS|jdr(dSdS(NR RSR�(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR �s

cC`s,|jddkrdS|jdr(dSdS(NR"RSR�(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR"�s

(RFRGRnR$RR R"(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��s
tReportableChangescB`s�eZed��Zed��Zed��Zed��Zed��Zed��Zed��Z	ed��Z
RS(cC`s"|jddkrdS|jdS(NRssingle-bigipsredundant-bigipRP(ssingle-bigipsredundant-bigip(RM(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�scC`sb|jddkrgSy+tjd|jd�}|j�|SWntk
r]|jdSXdS(NR$s/\w+/[^\s}]+(RMRNRYRZR[R\(ROR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR$�s

cC`sM|jddkrdSd|jdkr.dSd|jdkrEdSdSdS(NR$smin RUsrequire RVRW(RMRN(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRX�scC`sY|jddkrdSd}tj||jd�}|dkrFdSt|jd��S(s�Returns the probes value from the monitor string.

        The monitor string for a Require monitor looks like this.

            require 1 from 2 { /Common/tcp }

        This method parses out the first of the numeric values. This values represents
        the "probes" value that can be updated in the module.

        Returns:
             int: The probes value if found. None otherwise.
        R$s require\s+(?P<probes>\d+)\s+fromRgN(RMRNRYRhRqRi(RORjRk((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRc�scC`sY|jddkrdSd}tj||jd�}|dkrFdSt|jd��S(s�Returns the probers value from the monitor string.

        The monitor string for a Require monitor looks like this.

            require 1 from 2 { /Common/tcp }

        This method parses out the first of the numeric values. This values represents
        the "probers" value that can be updated in the module.

        Returns:
             int: The probers value if found. None otherwise.
        R$s*require\s+\d+\s+from\s+(?P<probers>\d+)\s+RlN(RMRNRYRhRqRi(RORjRk((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRdscC`sY|jddkrdSd}tj||jd�}|dkrFdSt|jd��S(s�Returns the 'at least' value from the monitor string.

        The monitor string for a Require monitor looks like this.

            min 1 of { /Common/gateway_icmp }

        This method parses out the first of the numeric values. This values represents
        the "at_least" value that can be updated in the module.

        Returns:
             int: The at_least value if found. None otherwise.
        R$smin\s+(?P<least>\d+)\s+of\s+RmN(RMRNRYRhRqRi(RORjRk((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRU*scC`sX|jddkrdSt�}|j|d<|j|d<|j|d<|j|d<|S(NR$RrRURdRc(RMRNtdictRXRURdRc(ROR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRE@s	



cC`s"|jddkrdS|jdS(NR*s
any-availableR{(RM(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR*Ks(RFRGRnRR$RXRcRdRURER*(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��st
DifferencecB`s�eZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
d��Ze
d��Zd	�Z
d
�Ze
d��Ze
d��Ze
d
��Ze
d��Ze
d��Ze
d��ZRS(cC`s||_||_dS(N(twantthave(ROR�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt__init__Ss	cC`s9yt||�}|SWntk
r4|j|�SXdS(N(R�tAttributeErrort_Difference__default(ROtparamR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pytcompareWs

cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(R�R�R�R�(ROR�R�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt	__default^s
cC`s�|jjdkr!|jj}n|jj}|jjdkrN|jj}n|jj}|dkr�|dkr�td��ndS(NRAsenabled-no-deleteRBsEVirtual server discovery must be enabled if link discovery is enabled(senabledsenabled-no-delete(R�RRNR�RR(RORR((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_discovery_constraintsgscC`s2|jjdkr(|jjdkr(dS|jjdkrI|jj}n|jj}|jjdkrpg}n|jj}t|�dkr�td��ng|D]}tt|j	���^q�}g|D]}tt|j	���^q�}t|�dkr|j
||�rtSn||kr.tStS(Nis>A GTM server must have at least one device associated with it.(
R�RRNRR�R�RRtsortedtitemst_false_positiveRTRR(RORthave_devicestdR�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_devices_changedws&$	++cC`sgd}xD|D]<}x3|D]+}|j�|j�kr|d}qqWq
W|t|�krctSdS(Nii(R�R�RR(RORR�tmatchtwth((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��s

cC`sR|jjdkr2|jji|jjd6�n|jj|jjkrNtStS(NR(R�RRNtupdateR�RRRT(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_server_type_changed�s
 cC`s0|j�|jj|jjkr,|jjSdS(N(R�R�RR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s
cC`s0|j�|jj|jjkr,|jjSdS(N(R�R�RR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s
cC`s<i}|r|jj|d<n|r8|jj|d<n|S(NRR(R�RR(ROtdevices_changet
server_changeR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt'_handle_current_server_type_and_devices�scC`s�i}|r�|r�|jj|d<t|jj�dkrn|jjdkrn|jjdkr�d|d<q�q�|jjdkr�|jjdkr�d|d<q�q�|jj|d<nB|r^|jj|d<t|jj�dkr|jjdkr|jjdkr[d|d<q[q�|jjdkrK|jjdkr[d|d<q[q�|jj|d<n�|r�t|jj�dkr�|jjdkr�|jjdkr�d|d<q�q�|jjdkr�|jjdkr�d|d<q�q�|jj|d<n|S(NRiRPsredundant-bigipRssingle-bigip(R�RR�RR�RQ(ROR�R�R]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt&_handle_legacy_server_type_and_devices�s8***cC`s�|j�}|j�}|r*|r*dSt|j�}t|�td�krg|j||�}|S|j||�}|SdS(s�Compares difference between server type and devices list

        These two parameters are linked with each other and, therefore, must be
        compared together to ensure that the correct setting is sent to BIG-IP

        :return:
        s13.0.0N(R�R�RNRtclientR
R�R�(ROR�R�ttmosR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRC�s	cC`sZ|jjdkr+|jjr+tdt�S|jjdkrV|jjrVtdt�SdS(NRBRRA(spresentsenabled(R�RDR�RAR�RRRB(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyRD�s
cC`s�|jjdkrdS|jjdkr>|jjdkr>dS|jjdkrf|jjdkrfdS|jjdkr�t|jj�dkr�dS|jjdkr�|jjS|jj|jjkr�|jjSdS(Ns
/Common/bigipi(R�R$RNR�R�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR$�s$$*
cC`sg|jjdkrdS|jjdkrA|jjdkrAdSn|jj|jjkrc|jjSdS(NR�(R�R(RNR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR(scC`sc|jjdkrdS|jj|jjkr2dS|jjdkre|jjdkretd��n|jjdkr�|jjdkr�|jjdkr�|jjdkr�tdj|jj|jj���q�n|jj|jjkr�td��n|jj|jjkr=tdj|jj|jj���n|jj|jjkr_|jjSdS(NtpoolsCA prober_pool needs to be set if prober_preference is set to 'pool'R�sOTo change prober_preference from {0} to {1}, set prober_pool to an empty strings8Prober_preference and prober_fallback must not be equal.sOCannot set prober_preference to {0} if prober_fallback on device is set to {1}.(R�R&RNR�R(RR*Rb(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR&s.$$$		cC`sc|jjdkrdS|jj|jjkr2dS|jjdkre|jjdkretd��n|jjdkr�|jjdkr�|jjdkr�|jjdkr�tdj|jj|jj���q�n|jj|jjkr�td��n|jj|jjkr=tdj|jj|jj���n|jj|jjkr_|jjSdS(NR�sAA prober_pool needs to be set if prober_fallback is set to 'pool'R�sMTo change prober_fallback from {0} to {1}, set prober_pool to an empty strings8Prober_preference and prober_fallback must not be equal.sOCannot set prober_fallback to {0} if prober_preference on device is set to {1}.(R�R*RNR�R(RR&Rb(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR*/s.$$$		N(RFRGRNR�R�R�R�R�R�R�RnRRR�R�RCRDR$R(R&R*(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�Rs"										#
 t
ModuleManagercB`s,eZd�Zd�Zd�Zd�ZRS(cO`s7|jdd�|_t|jj�|_||_dS(Ntmodule(tgetRNR�RtparamsR�tkwargs(ROtargsR�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�QscC`s[t|jd�s!td��n|jd�rB|jd�}n|jd�}|j�S(Ntgtms+GTM must be provisioned to use this module.s13.0.0tv1tv2(RR�Rtversion_is_less_thantget_managertexec_module(ROtmanager((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�VscC`s6|dkrt|j�S|dkr2t|j�SdS(NR�R�(t	V1ManagerR�t	V2Manager(RORr((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�as
cC`s3t|j�}t|�t|�kr+tStSdS(N(RR�R
RRRT(ROtversionR�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�gs(RFRGR�R�R�R�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�Ps			tBaseManagercB`s�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZRS(cO`sz|jdd�|_t|jj�|_td|jj�|_|jjt	d|j��t
�|_t�|_
dS(NR�R�R�(R�RNR�RR�R�RoR�R�R�RLR�R�tchanges(ROR�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�pscC`sji}xBtjD]7}t|j|�dk	rt|j|�||<qqW|rftd|�|_ndS(NR�(RRKR�R�RNR�R�(ROtchangedtkey((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_set_changed_optionsxscC`s�t|j|j�}|j|_tj}t�}xX|D]P}|j|�}|dkraq:q:t	|t�r�|j
|�q:|||<q:W|r�td|�|_t
StS(NR�(R�R�R�R�RRJR�R�RNt
isinstanceR�R�R�RRRT(ROtdiffRJR�tktchange((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt_update_changed_options�s		
cC`s�t}t�}|jj}|dkr6|j�}n|dkrQ|j�}ntd|jj��}|j�}|j	|�|j	td|��|j
|�|S(NRRARBtabsentR�R�(spresentsenabledsdisabled(RTR�R�RDRR�R�R�R�R�t_announce_deprecations(ROR�R]RDt
reportableR�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��s	

cC`sH|jdg�}x/|D]'}|jjd|dd|d�qWdS(Nt
__warningstmsgR�(tpopR�t	deprecate(ROR]twarningstwarning((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��s


cC`s7|jjdkr3|jjdkr3td��ndS(NRAsenabled-no-deleteRBsEVirtual server discovery must be enabled if link discovery is enabled(senabledsenabled-no-delete(R�RRR(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt"_check_link_discovery_requirements�s$cC`s$|j�r|j�S|j�SdS(N(texistsR�tcreate(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s
cC`s�|jjdkr,|jjitd6�n,|jjdkrX|jjitd6�n|j�|j�|jjdkr�td��n|j	�|j
�|j�|jj
r�tS|j�|j�r�tStd��dS(NRBRRAs#You must provide an initial device.sFailed to create the server(spresentsenabled(R�RDR�RRtadjust_server_type_by_versiont
should_updateRRNRt_assign_creation_defaultsthandle_prober_settingsR�R�t
check_modetcreate_on_deviceR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.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(
NRxR`s#https://{0}:{1}/mgmt/tm/gtm/server/tservertserver_porttjsontcodei�i�tmessagetselfLink(i�i�(R�t
api_paramsR�RxR`RbR�tprovidertapitpostR�t
ValueErrorRtstrtcontent(ROR�turitresptresponsetex((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.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/server/{2}R�R�R�i�R�R�(RbR�R�RR�R`RxR�R�R�R�RR�R�RL(ROR�R�R�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pytread_current_from_device�s

cC`s|j�}|rtStS(N(R�RRRT(ROR]((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.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/server/{2}R�R�R�R�i�R�(R�R�RbR�R�RR�R`RxR�tpatchR�R�RR�R�(ROR�R�R�R�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pytupdate_on_device�s

cC`s%t}|j�r!|j�}n|S(N(RTR�tremove(ROR�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�scC`s9|jjrtS|j�|j�r5td��ntS(NsFailed to delete the server(R�R�RRtremove_from_deviceR�R(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s
cC`sydj|jjd|jjdt|jj|jj��}|jjj|�}|j	dkrft
St|j��dS(Ns&https://{0}:{1}/mgmt/tm/gtm/server/{2}R�R�i�(
RbR�R�RR�R`RxR�tdeleteRRRRR�(ROR�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�s

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/server/{2}R�R�i�R�(RbR�R�RR�R`RxR�R�R�R�RTRRR(ROR�R�R�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�)s


+(RFRGR�R�R�R�R�R�RR�R�R�R�R�R�R�R�R�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�os 															R�cB`s,eZd�Zd�Zd�Zd�ZRS(cC`s�|jjdkr�t|jj�dkr9td��q�t|jj�dkrk|jjidd6�q�|jjidd6�n|jjdkr�|jjidd6�n|jjdkr�|jjidd	6�n|j	�dS(
Nis%You must provide at least one device.issingle-bigipRsredundant-bigipRBRR(
R�RRNR�RRR�RRR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�:scC`s�t|jj�dkrD|jjdkrD|jjidd6�nt|jj�dkr�|jjdkr�|jjidd6�ndS(NiRPssingle-bigipRsredundant-bigip(R�R�RRR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�Js**cC`sG|j�|_|j�|j�s)tS|jjr9tS|j�tS(N(	R�R�R�R�RTR�R�RRR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�Ps

cC`sT|jjdk	r(|jjjd�n|jjdk	rP|jjjd�ndS(NR&R*(R�R&RNRMR�R*(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�Zs(RFRGR�R�R�R�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�9s			
R�cB`s,eZd�Zd�Zd�Zd�ZRS(cC`s=|j�|_|j�stS|jjr/tS|j�tS(N(R�R�R�RTR�R�RRR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�bs
cC`s�|jjdkr,|jjidd6�n|jjdkrX|jjidd6�n|jjdkr�|jjidd6�n|j�dS(NRPRRBRR(R�RRNR�RRR�(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�kscC`sdS(N((RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�tscC`s�|jjdkr3|jjdkr3td��n|jjdk	r�|jjdk	r�|jj|jjkr�td��q�n|jjdkr�|jjdkr�td��ndS(NR�sCA prober_pool needs to be set if prober_preference is set to 'pool'sNThe parameters for prober_preference and prober_fallback must not be the same.sAA prober_pool needs to be set if prober_fallback is set to 'pool'(R�R&R(RNRR*(RO((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�ws$$$(RFRGR�R�R�R�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR�as					tArgumentSpeccB`seZd�ZRS(c1C`sddddg|_ddddd	d
ddd
dddddddg|_t|_tdtddd|j�dtdt�dtd|jddg�dt�dtddddg�d tddddg�d!td"d#�d$tdd%d&td'gf�d(td"d)d*td+td"d,�d-td"d,�d.td"d,���d/td"d)d*td"tdd0d1d2gdt�d1td"d3�d4td"d3�d5td"d3��d6d1d4gd1d5ggd7d"d1d1ggd"d2d4d5ggg�d8td"d)d*td9td"d,�d:td"d,�d;td"d,�d<td"d,�d=td"d,�d>td"d3�d?td"d3�d@td"d3�dAtd"d3�dBtd"d3��
�dCtd"d#�dDtddEdFdGdHg�dItddEdFdGdHdJdKg�dLt��}i|_|jjt�|jj|�dS(MNR�RRARBsalteon-ace-directors	cisco-cssscisco-server-load-balancersgeneric-hostsradware-wsdswindows-nt-4.0RPscisco-local-director-v2textremesgeneric-load-balancerssun-solarist	cacheflowscisco-local-director-v3sfoundry-server-irontnetappswindows-2000-serverRDtdefaulttchoicesRxtrequiredRtaliasesRR@Rsenabled-no-deleteRRRrtlistR`tCommontfallbacktF5_PARTITIONR�R�toptionsR�tboolR�R�RERWRURVRqRcRdtmutually_exclusivetrequired_ifRpR.R6R2R:R>R,R4R0R8R<R$R&sinside-datacentersoutside-datacentertinheritR�R*R{R�R((	tstatestserver_typesRRtsupports_check_modeR�R	t
argument_specR�R(ROR
((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��s�							(RFRGR�(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyR��scC`s�t�}td|jd|j�}y,td|�}|j�}|j|�Wn)tk
r{}|jdt	|��nXdS(NR
R	R�R�(
R�RR
R	R�R�t	exit_jsonRt	fail_jsonR�(tspecR�tmmtresultsR�((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pytmain�s		t__main__(2t
__future__RRRRrt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNRYtansible.module_utils.basicRR	tdistutils.versionR
t%library.module_utils.network.f5.bigipRt&library.module_utils.network.f5.commonRR
RRRRt(library.module_utils.network.f5.icontrolRRtImportErrort%ansible.module_utils.network.f5.bigipt&ansible.module_utils.network.f5.commont(ansible.module_utils.network.f5.icontroltcollectionsRtordereddictRRLRoR�R�R�tobjectR�R�R�R�R�R�RRF(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_gtm_server.pyt<module>sl


� A:


i��	'q��(&i	

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