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

�
�Udac@`s?ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlmZdd
l
mZydddlmZddlmZddlmZddlmZddlmZddlmZWnqek
rUddlmZddlmZddlmZddlmZddlmZddlmZnXdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZ defd��YZ!d e"fd!��YZ#d"e"fd#��YZ$d$e"fd%��YZ%d&�Z&e'd'kr;e&�ndS((i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontstableinterfacetstatust	certifiedtsupported_bys�

---
module: bigip_provision
short_description: Manage BIG-IP module provisioning
description:
  - Manage BIG-IP module provisioning. This module will only provision at the
    standard levels of Dedicated, Nominal, and Minimum.
version_added: 2.4
options:
  module:
    description:
      - The module to provision in BIG-IP.
    type: str
    required: True
    choices:
      - am
      - afm
      - apm
      - asm
      - avr
      - cgnat
      - fps
      - gtm
      - ilx
      - lc
      - ltm
      - mgmt
      - pem
      - sam
      - sslo
      - swg
      - urldb
      - vcmp
    aliases:
      - name
  level:
    description:
      - Sets the provisioning level for the requested modules. Changing the
        level for one module may require modifying the level of another module.
        For example, changing one module to C(dedicated) requires setting all
        others to C(none). Setting the level of a module to C(none) means that
        the module is not activated.
      - Use C(state) absent to set c(level) to none and de-provision module.
      - This parameter is not relevant to C(cgnat - pre tmos 15.0) or C(mgmt) and will not be
        applied to the C(cgnat - pre tmos 15.0) or C(mgmt) module.
    type: str
    choices:
      - dedicated
      - nominal
      - minimum
    default: nominal
  memory:
    description:
      - Sets additional memory for management module. This is in addition to
        minimum allocated RAM of 1264MB.
      - The accepted value range is C(0 - 8192). Maximum value is restricted by
        systems available RAM.
      - Specifying C(large) reserves an additional 500MB for mgmt module.
      - Specifying C(medium) reserves an additional 200MB for mgmt module.
      - Specifying C(small) reserves no additional RAM for mgmt module.
      - Use C(large) for configurations containing more than 2000 objects, or
        more specifically, for any configuration that exceeds 1000 objects
        per 2 GB of installed memory. Changing the Management C(mgmt) size
        after initial provisioning causes a reprovision operation
    type: str
    version_added: 2.9
  state:
    description:
      - The state of the provisioned module on the system. When C(present),
        guarantees that the specified module is provisioned at the requested
        level provided that there are sufficient resources on the device (such
        as physical RAM) to support the provisioned module.
      - When C(absent), de-provision the module.
      - C(absent), is not a relevant option to C(mgmt) module as module can not be de-provisioned.
    type: str
    choices:
      - present
      - absent
    default: present
extends_documentation_fragment: f5
author:
  - Tim Rupp (@caphrim007)
  - Greg Crosby (@crosbygw)
s�
- name: Provision PEM at "nominal" level
  bigip_provision:
    module: pem
    level: nominal
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost

- name: Provision a dedicated SWG. This will unprovision every other module
  bigip_provision:
    module: swg
    level: dedicated
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost

- name: Provision mgmt with medium amount of memory.
  bigip_provision:
    module: mgmt
    memory: medium
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
s�
level:
  description: The new provisioning level of the module.
  returned: changed
  type: str
  sample: minimum
memory:
  description: The new provisioned amount of memory for mgmt module.
  returned: changed
  type: str
  sample: large
N(t
AnsibleModule(tLooseVersion(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tf5_argument_spec(tTransactionContextManager(ttmos_versiont
ParameterscB`s<eZidd6ZddgZddgZdddgZRS(tmemorytvaluetleveltcgnat(t__name__t
__module__tapi_maptapi_attributestreturnablest
updatables(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�s
		t
ApiParameterscB`seZRS((RR(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�stModuleParameterscB`s/eZd�Zed��Zed��ZRS(cC`s�|jddkrdS|jddkr.dS|jddkrEdSdt|�kobd	knrqt|�Std
��dS(NRtsmallt0tmediumt200tlarget500ii sHValid 'memory' must be in range 0 - 8192, 'small', 'medium', or 'large'.(t_valuestinttstrR(tselftlimit((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt_validate_memory_limit�s"
cC`sR|jddkrdS|jddkr.dS|jdkrAdSt|jd�S(NRtmoduletmgmttabsenttnone(R#tNonetstateR%(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�scC`sH|jddkrdS|jddkr.dSt|j|jd��S(NRR)R*(R#R-R$R((R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�s
(RRR(tpropertyRR(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�s	

tChangescB`seZd�ZRS(cC`s]i}y>x$|jD]}t||�||<qW|j|�}|SWntk
rX|SXdS(N(Rtgetattrt_filter_paramst	Exception(R&tresultt
returnable((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt	to_return�s
(RRR6(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR0�st
UsableChangescB`seZRS((RR(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR7�stReportableChangescB`seZed��ZRS(cC`sm|jddkrdS|jddkr.dS|jddkrEdS|jddkr\dSt|jd�S(NRRRR RR"R!(R#R-R%(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�s(RRR/R(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR8�st
DifferencecB`s5eZdd�Zd�Zd�Zed��ZRS(cC`s||_||_dS(N(twantthave(R&R:R;((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt__init__s	cC`s?yt||�}|SWn!tk
r:|j|�}|SXdS(N(R1tAttributeErrort_Difference__default(R&tparamR4((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pytcompares
cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(R1R:R;R=(R&R?tattr1tattr2((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt	__default
s
cC`si|jjdkre|jjdkr:|jjtkr:tS|jjdkre|jjtkretSndS(NRR+tpresent(R:R)R.R;tenabledtTruetdisabled(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRs
$$N(RRR-R<R@R>R/R(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR9s			t
ModuleManagercB`s
eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cO`s[|jdd�|_t|jj�|_d|_td|jj�|_t	�|_
dS(NR)tparams(tgetR-R)R
RItclientR;RR:R7tchanges(R&targstkwargs((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR< s
	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(NRI(R9R:R;RRtdictR@R-t
isinstancetupdateR7RLRFtFalse(R&tdiffRtchangedtktchange((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt_update_changed_options's		
cC`s�t}t�}|jj}|dkr6|j�}n|dkrQ|j�}ntd|jj��}|j�}|j	|�|j	td|��|S(NRDR+RIRT(
RRROR:R.RDR+R8RLR6RQ(R&RTR4R.t
reportableRL((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pytexec_module9s	
cC`s3t|j�}t|�td�kr+tStSdS(Ns15.0.0(RRKR	RFRR(R&tversion((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pytversion_is_greater_or_equal_15HscC`s|j�rtS|j�S(N(texistsRRRQ(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRDOscC`s�|jjdkr"|j�r"dj|jjd|jjd�}|jjj|�}y|j�}Wn%t	k
r�}t
t|���nXd|kr�|ddkr�d|kr�t
|d��q�t
|j��nd	|kr�|d	t
kr�tSd
|kr?|d
t
kr?t
Sn|jjdkr?dj|jjd|jjd�}|jjj|�}y|j�}Wnt	k
r�tSX|jdks�d|kr�|ddkr�tSt|d
�dkr�|jjdkr�tSt|d
�dkr|jjdkrt
St|d
�|jjkr;t
StSy`xYtdd�D]H}dj|jjd|jjd|jj�}|jjj|�}y|j�}Wn%t	k
r�}t
t|���nXd|kr!|ddkr!d|krt
|d��q!t
|j��nt|d�dkrM|jjdkrMt
St|d�dkry|jjdkrytSt|d�|jjkr�t
StSWWn6tk
r�}dt|�kr�tStjd�nXdS(NRs1https://{0}:{1}/mgmt/tm/sys/feature-module/cgnat/tservertserver_porttcodei�i�tmessageRGRER*s1https://{0}:{1}/mgmt/tm/sys/db/provision.extramb/Riis)https://{0}:{1}/mgmt/tm/sys/provision/{2}RR,snot registeredi(i�i�(i�i�(R:R)R[tformatRKtprovidertapiRJtjsont
ValueErrorRR%tcontentRFRRRRtrangeRR3ttimetsleep(R&turitresptresponsetextx((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR\Tsz


+((

((	cC`s|j�|_|j�stS|jjr/tS|j�}|jjdkr^|j	�r^|S|j
�|jjdkr�|j�|j
�n|jjdkr�|j�n|jjdkr�|j
�n|jjdkr�|j�n|jjdkr
|j�ntS(NRtvcmptasmtafmR*(tread_current_from_deviceR;t
should_updateRRR)t
check_modeRFtupdate_on_deviceR:R[t_wait_for_module_provisioningt_wait_for_reboott_wait_for_asm_readyt_wait_for_afm_readyt_wait_for_cgnat_readyt_wait_for_mgmt_ready(R&R4((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRQ�s*






cC`s:x3tdd�D]"}y�dj|jjd|jjdd�}|jjj|�}y|j�}Wn%tk
r�}tt	|���nXd|kr�|ddkr�d
|kr�t|d
��q�t|j
��n|ddkr�tS|dd
krtj
d�nWqtk
r1tj
d�qXqWtS(Niis"https://{0}:{1}/mgmt/tm/sys/db/{2}R]R^sprovision.actionR_i�i�R`RtrebootR,i(i�i�(RgRaRKRbRcRJRdReRR%RfRFRhRiR3RR(R&RnRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt
should_reboot�s,

	
c	C`s�d}|j�}y�tdddd�}dj|jjd|jjd�}|jjj|d	|�}y|j�}Wn%tk
r�}t	t
|���nXd
|kr�|d
dkr�d
|kr�t	|d
��q�t	|j��nd|kr
t
|d�SWntk
rnXt
jd�x�|dkr�yQ|jj�|j�}|dkrld}n||kr�d}n
|d7}Wntk
r�}nXt
jd�q/WdS(NitcommandtruntutilCmdArgss-c "/sbin/reboot"s!https://{0}:{1}/mgmt/tm/util/bashR]R^RdR_i�i�R`t
commandResultiiii
(i�i�(t_get_last_rebootRORaRKRbRctpostRdReRR%RfR3RhRit	reconnectR-(	R&tnopstlast_rebootRIRjRkRlRmtnext_reboot((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt
reboot_device�sH	



		cC`s|j�}|rtStS(N(RWRFRR(R&R4((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRsscC`sx|jjdkr9|j�r9|jjr5|j�StS|jjdkrj|jjdkrj|j�n
|j	�dS(NRt	dedicatedR*(
R:R)R[RLRtprovision_cgnat_on_deviceRRRtprovision_dedicated_on_devicet!provision_non_dedicated_on_device(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRus
$
cC`s�dj|jjd|jjd�}tdt�}|jjj|d|�}y|j�}Wn%tk
r�}t	t
|���nXd|kr�|dd
kr�d	|kr�t	|d	��q�t	|j��ntS(Ns1https://{0}:{1}/mgmt/tm/sys/feature-module/cgnat/R]R^RERdR_i�i�R`(i�i�(RaRKRbRORFRctpatchRdReRR%Rf(R&RjRIRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�s
cC`s�|jj�}dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
r�}t	t
|���nXd|kr�|dd
kr�d|kr�t	|d��q�t	|j��ng|dD]&}|d	|jjkr�|d	^q�}t
|j��u}x�|D]�}	||	}
|jj|
d
tdd��}y|j�}Wn%tk
r�}t	t
|���nXd|kr|ddkrd|kr�t	|d��q�t	|j��qqW||jj}
|jj|
d
|�}y|j�}Wn%tk
r8}t	t
|���nXd|kr�|ddkr�d|krtt	|d��q�t	|j��nWdQXdS(Ns&https://{0}:{1}/mgmt/tm/sys/provision/R]R^R_i�i�R`titemstnameRdRR,(i�i�(i�i�(i�i�(R:t
api_paramsRaRKRbRcRJRdReRR%RfR)RR�RO(R&RIRjRkRlRmRnt	resourcesttransacttresourcettarget((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�$sH
7

!cC`s|jj�}|jjdkrJdj|jjd|jjd�}n/dj|jjd|jjd|jj�}|jjj|d|�}y|j�}Wn%t	k
r�}t
t|���nXd|kr|ddkrd
|krt
|d
��qt
|j��ndS(NR*s1https://{0}:{1}/mgmt/tm/sys/db/provision.extramb/R]R^s)https://{0}:{1}/mgmt/tm/sys/provision/{2}RdR_i�i�R`(i�i�(
R:R�R)RaRKRbRcR�RdReRR%Rf(R&RIRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�Ts$


cC`s�|jjdkr�|j�r�dj|jjd|jjd�}|jjj|�}y|j�}Wn%t	k
r�}t
t|���nXd|kr�|dd
kr�d|kr�t
|d��q�t
|j��q�n�|jjd	kr�d
j|jjd|jjd�}|jjj|�}y|j�}Wn%t	k
rf}t
t|���nXd|kr�|ddkr�d|kr�t
|d��q�t
|j��q�n�dj|jjd|jjd|jj�}|jjj|�}y|j�}Wn%t	k
r2}t
t|���nXd|kr�|ddkr�d|krnt
|d��q�t
|j��nt
d|�S(NRs1https://{0}:{1}/mgmt/tm/sys/feature-module/cgnat/R]R^R_i�i�R`R*s1https://{0}:{1}/mgmt/tm/sys/db/provision.extramb/s)https://{0}:{1}/mgmt/tm/sys/provision/{2}RI(i�i�(i�i�(i�i�(R:R)R[RaRKRbRcRJRdReRR%RfR(R&RjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRrmsP



cC`s|j�r|j�StS(N(R\tremoveRR(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR+�s
cC`s�|jjrtS|jjdkr9|j�r9|j�S|j�|j�|jjdkrv|j�|j�n|j	�r�|j
�|j�|j�n|j�r�t
d��ntS(NRRos!Failed to de-provision the module(R)RtRFR:R[tdeprovision_cgnat_on_devicetremove_from_deviceRvRwR}tsave_on_deviceR�R\R(R&((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR��s 







cC`s�d}tddddj|��}dj|jjd|jjd�}|jjj|d	|�}y|j�}Wn%tk
r�}tt	|���nXd
|kr�|d
dkr�d
|kr�t|d
��q�t|j
��ndS(Nstmsh save sys configR~RR�s-c "{0}"s!https://{0}:{1}/mgmt/tm/util/bashR]R^RdR_i�i�R`(i�i�(RORaRKRbRcR�RdReRR%Rf(R&R~RIRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR��s 
cC`s�dj|jjd|jjd|jj�}|jjj|dtdd��}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/sys/provision/{2}R]R^RdRR,R_i�R`(
RaRKRbR:R)RcR�RORdReRR%Rf(R&RjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR��s

$cC`s�dj|jjd|jjd�}tdt�}|jjj|d|�}y|j�}Wn%tk
r�}t	t
|���nXd|kr�|ddkr�d|kr�t	|d��q�t	|j��ntS(	Ns1https://{0}:{1}/mgmt/tm/sys/feature-module/cgnat/R]R^RGRdR_i�R`(RaRKRbRORFRcR�RdReRR%Rf(R&RjRIRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR��s
cC`s�d}tjd�xy|dkr�y#|j�s>|d7}nd}Wn6tk
r}y|jj�Wq~tk
ryq~XnXtjd�qWdS(Niiii(RhRit_is_mprov_running_on_deviceR3RKR�(R&R�((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRv�s




cC`sy�d}tddddj|��}dj|jjd|jjd�}|jjj|d	|�}y|j�}Wn%tk
r�}tt	|���nXd
|kr�|d
dkr�d
|kr�t|d
��q�t|j
��nd|kr�tSWntk
rnXt
S(Ns7ps aux | grep '[m]prov' | grep -v /usr/libexec/qemu-kvmR~RR�s-c "{0}"s!https://{0}:{1}/mgmt/tm/util/bashR]R^RdR_i�i�R`R�(i�i�(RORaRKRbRcR�RdReRR%RfRFR3RR(R&R~RIRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�s,


cC`sLd}t}x9|dkrGy�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
r�}tt	|���nXd|kr�|ddkr�d	|kr�t|d	��q�t|j
��nt|d
�dkr|d7}nd}Wn,tk
r6}|s7|j
�t}q7nXtjd�qWd
S(sWaits specifically for ASM

        On older versions, ASM can take longer to actually start up than
        all the previous checks take. This check here is specifically waiting for
        the Policies API to stop raising errors
        :return:
        iis%https://{0}:{1}/mgmt/tm/asm/policies/R]R^R_i�i�R`R�iiN(i�i�(RRRaRKRbRcRJRdReRR%RftlenR3t_restart_asmRFRhRi(R&R�t
restarted_asmRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRx6s0




cC`s-d}x |dkr(y�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
r�}tt|���nXd|kr�|ddkr�d	|kr�t|d	��q�t|j	��nt
|d
�dkr�|d7}nd}Wntk
r}nXtj
d�q	Wd
S(s�Waits specifically for AFM

        AFM can take longer to actually start up than all the previous checks take.
        This check here is specifically waiting for the Security API to stop raising
        errors.
        :return:
        iis!https://{0}:{1}/mgmt/tm/security/R]R^R_i�i�R`R�iiN(i�i�(RaRKRbRcRJRdReRR%RfR�R3RhRi(R&R�RjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRy]s*


cC`s-d}x |dkr(y�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
r�}tt|���nXd|kr�|ddkr�d	|kr�t|d	��q�t|j	��nt
|d
�dkr�|d7}nd}Wntk
r}nXtj
d�q	Wd
S(sWaits specifically for CGNAT

        Starting in TMOS 15.0 cgnat can take longer to actually start up than all the previous checks take.
        This check here is specifically waiting for a cgnat API to stop raising
        errors.
        :return:
        iis$https://{0}:{1}/mgmt/tm/ltm/lsn-poolR]R^R_i�i�R`R�iiN(i�i�(RaRKRbRcRJRdReRR%RfR�R3RhRi(R&R�RjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRz�s*


cC`s-d}x |dkr(y�dj|jjd|jjd�}|jjj|�}y|j�}Wn%tk
r�}tt|���nXd|kr�|ddkr�d	|kr�t|d	��q�t|j	��nt
|d
�dkr�|d7}nd}Wntk
r}nXtj
d�q	Wd
S(sWaits specifically for MGMT

        Modifying memory reserve for mgmt can take longer to actually start up than all the previous checks take.
        This check here is specifically waiting for a MGMT API to stop raising
        errors.
        :return:
        iishttps://{0}:{1}/mgmt/tmR]R^R_i�i�R`R�iiN(i�i�(RaRKRbRcRJRdReRR%RfR�R3RhRi(R&R�RjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR{�s*


cC`sy�tdddd�}dj|jjd|jjd�}|jjj|d|�}y|j�}Wn%tk
r�}tt	|���nXd	|kr�|d	dkr�d|kr�t|d��q�t|j
��ntjd
�t
SWntk
rnXdS(NR~RR�s-c "bigstart restart asm"s!https://{0}:{1}/mgmt/tm/util/bashR]R^RdR_i�i�R`i<(i�i�(RORaRKRbRcR�RdReRR%RfRhRiRFR3R-(R&RIRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR��s*	


cC`sy�tdddd�}dj|jjd|jjd�}|jjj|d|�}y|j�}Wn%tk
r�}tt	|���nXd	|kr�|d	dkr�d|kr�t|d��q�t|j
��nd
|kr�t	|d
�SWntk
rnXdS(NR~RR�s#-c "/usr/bin/last reboot | head -1"s!https://{0}:{1}/mgmt/tm/util/bashR]R^RdR_i�i�R`R�(i�i�(
RORaRKRbRcR�RdReRR%RfR3R-(R&RIRjRkRlRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR��s*	

cC`s�d}|j�}tjd�x�|dkr�yQ|jj�|j�}|dkr_d}n||krtd}n
|d7}Wntk
r�}nXtjd�q"WdS(Niiiii
(R�RhRiRKR�R-R3(R&R�R�R�Rm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRws

		(RRR<RWRYR[RDR\RQR}R�RsRuR�R�R�RrR+R�R�R�R�RvR�RxRyRzR{R�R�Rw(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyRHs:						G			1		
		0		4							'	'	$	$	$		tArgumentSpeccB`seZd�ZRS(cC`s�t|_tdtdtddddddd	d
ddd
ddddddddgddg�dtddddddg�dt�dtddddd g��}i|_|jjt�|jj|�d!d"gg|_dS(#NR)trequiredtchoicesRqtamtapmRptavrRtfpstgtmtilxtlctltmR*tpemtsamtsslotswgturldbRotaliasesR�RtdefaulttnominalR�tminimumRR.RDR+t
parameterstparameters_src(RFtsupports_check_modeROt
argument_specRQR
tmutually_exclusive(R&R�((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR<s&			(RRR<(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyR�scC`s�t�}td|jd|jd|j�}y,td|�}|j�}|j|�Wn)tk
r�}|j	dt
|��nXdS(NR�R�R�R)tmsg(R�RR�R�R�RHRYt	exit_jsonRt	fail_jsonR%(tspecR)tmmtresultsRm((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pytmain9s			t__main__((t
__future__RRRttypet
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNRhtansible.module_utils.basicRtdistutils.versionR	t%library.module_utils.network.f5.bigipR
t&library.module_utils.network.f5.commonRRR
t(library.module_utils.network.f5.icontrolRRtImportErrort%ansible.module_utils.network.f5.bigipt&ansible.module_utils.network.f5.commont(ansible.module_utils.network.f5.icontrolRRRR0R7R8tobjectR9RHR�R�R(((sN/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_provision.pyt<module>sL


U 

"���	

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