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/bigiq_regkey_license_assignment.pyc

�
�Udac@`sddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlZddlm
Z
yTdd
lmZddlmZddlmZddlmZddlmZWnaek
r1dd
lmZddlmZddlmZddlmZddlmZnXdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZde fd��YZ!d e fd!��YZ"d"e fd#��YZ#d$�Z$e%d%kre$�ndS(&i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	certifiedtsupported_bys�	
---
module: bigiq_regkey_license_assignment
short_description: Manage regkey license assignment on BIG-IPs from a BIG-IQ
description:
  - Manages the assignment of regkey licenses on a BIG-IQ. Assignment means that
    the license is assigned to a BIG-IP, or, it needs to be assigned to a BIG-IP.
    Additionally, this module supported revoking the assignments from BIG-IP devices.
version_added: 2.6
options:
  pool:
    description:
      - The registration key pool to use.
    type: str
    required: True
  key:
    description:
      - The registration key that you want to assign from the pool.
    type: str
    required: True
  device:
    description:
      - When C(managed) is C(no), specifies the address, or hostname, where the BIG-IQ
        can reach the remote device to register.
      - When C(managed) is C(yes), specifies the managed device, or device UUID, that
        you want to register.
      - If C(managed) is C(yes), it is very important that you do not have more than
        one device with the same name. BIG-IQ internally recognizes devices by their ID,
        and therefore, this module's cannot guarantee that the correct device will be
        registered. The device returned is the device that will be used.
    type: str
  managed:
    description:
      - Whether the specified device is a managed or un-managed device.
      - When C(state) is C(present), this parameter is required.
    type: bool
  device_port:
    description:
      - Specifies the port of the remote device to connect to.
      - If this parameter is not specified, the default of C(443) will be used.
    type: int
    default: 443
  device_username:
    description:
      - The username used to connect to the remote device.
      - This username should be one that has sufficient privileges on the remote device
        to do licensing. Usually this is the C(Administrator) role.
      - When C(managed) is C(no), this parameter is required.
    type: str
  device_password:
    description:
      - The password of the C(device_username).
      - When C(managed) is C(no), this parameter is required.
    type: str
  state:
    description:
      - When C(present), ensures that the device is assigned the specified license.
      - When C(absent), ensures the license is revokes from the remote device and freed
        on the BIG-IQ.
    type: str
    choices:
      - present
      - absent
    default: present
extends_documentation_fragment: f5
author:
  - Tim Rupp (@caphrim007)
s�
- name: Register an unmanaged device
  bigiq_regkey_license_assignment:
    pool: my-regkey-pool
    key: XXXX-XXXX-XXXX-XXXX-XXXX
    device: 1.1.1.1
    managed: no
    device_username: admin
    device_password: secret
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Register a managed device, by name
  bigiq_regkey_license_assignment:
    pool: my-regkey-pool
    key: XXXX-XXXX-XXXX-XXXX-XXXX
    device: bigi1.foo.com
    managed: yes
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Register a managed device, by UUID
  bigiq_regkey_license_assignment:
    pool: my-regkey-pool
    key: XXXX-XXXX-XXXX-XXXX-XXXX
    device: 7141a063-7cf8-423f-9829-9d40599fa3e0
    managed: yes
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost
s
# only common fields returned
N(t
AnsibleModule(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tf5_argument_spec(tis_valid_ipt
ParameterscB`sneZidd6dd6dd6ZddddgZddddddgZddddddgZd	�ZRS(
tdevice_referencetdeviceReferencetdevice_addresst
deviceAddresstdevice_portt	httpsPorttmanagedtdevice_usernametdevice_passwordcC`sXi}y:x$|jD]}t||�||<qW|j|�}Wntk
rSnX|S(N(treturnablestgetattrt_filter_paramst	Exception(tselftresultt
returnable((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt	to_return�s
(t__name__t
__module__tapi_maptapi_attributesRt
updatablesR(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�s
t
ApiParameterscB`seZRS((R R!(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR%�stModuleParameterscB`s�eZed��Zed��Zed��Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed	��ZRS(
cC`s"|jddkrdS|jdS(NR(t_valuestNone(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�scC`s"|jddkrdS|jdS(NR(R'R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�scC`s|jr|jdSdS(Ntdevice(tdevice_is_addressR'(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�s	cC`s(|jddkrdSt|jd�S(NR(R'R(tint(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�scC`st|j�rtStS(N(R
R)tTruetFalse(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR*�scC`s#d}tj||j�rtStS(NsK[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}(tretmatchR)R,R-(Rtpattern((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytdevice_is_id�scC`s|jr|jrtStS(N(R*R1R,R-(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytdevice_is_name�scC`s�|js
dS|jr+dj|j�}nT|jrIdj|j�}n6|jrgdj|j�}ntdj|j���dj|jj	d|jj	d|�}|jj
j|�}y|j�}Wn%t
k
r�}tt|���nX|jdkr#|d	d
kr#td��nMd|krp|dd
krpd|kr^t|d��qpt|j��n|dd
d}tddj|��}|S(Nsaddress+eq+'{0}...{0}'shostname+eq+'{0}'s
uuid+eq+'{0}'sUnknown device format '{0}'sghttps://{0}:{1}/mgmt/shared/resolver/device-groups/cm-bigip-allBigIpDevices/devices/?$filter={2}&$top=1tservertserver_porti�t
totalItemsis/No device with the specified address was found.tcodei�tmessagetitemstuuidtlinksYhttps://localhost/mgmt/shared/resolver/device-groups/cm-bigip-allBigIpDevices/devices/{0}(RR(R*tformatR)R2R1R
tclienttprovidertapitgettjsont
ValueErrortstrRt_contenttdict(RtfilterturitresptresponsetextidR((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�s<				

	cC`sdj|j�}dj|jjd|jjd|�}|jjj|�}y|j�}Wn%tk
r�}tt	|���nX|j
dkr�|ddkr�td��nMd	|kr|d	d
krd|kr�t|d��qt|j��n|ddd
S(Ns(name eq '{0}')sPhttps://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses?$filter={2}&$top=1R3R4i�R5is*No pool with the specified name was found.R6i�R7R8RJ(R;tpoolR<R=R>R?R@RAR
RBRRC(RRERFRGRHRI((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytpool_ids$

	cC`sz|jrdj|j�}nT|jr<dj|j�}n6|jrZdj|j�}ntdj|j���dj|jjd|jjd|j|j	|�}|jj
j|�}y|j�}Wn%t
k
r�}tt|���nX|jdkr|d	d
krdSd|krd|ddkrdd
|krRt|d
��qdt|j��n|dd
d}|S(NsdeviceAddress+eq+'{0}...{0}'sdeviceName+eq+'{0}'sdeviceMachineId+eq+'{0}'sUnknown device format '{0}'sdhttps://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses/{2}/offerings/{3}/members/?$filter={4}R3R4i�R5iR6i�R7R8RJ(R*R;R)R2R1R
R<R=RLtkeyR>R?R@RARBRR(RC(RRERFRGRHRIR((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt	member_id&s6			

	(
R R!tpropertyRRRRR*R1R2RRLRN(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR&�s)tChangescB`seZRS((R R!(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRPKst
UsableChangescB`sbeZed��Zed��Zed��Zed��Zed��Zed��ZRS(cC`s|jdrdS|jdS(NRR(R'R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRPs
cC`s|jdrdS|jdS(NRR(R'R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRVs
cC`s|jdrdS|jdS(NRR(R'R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR\s
cC`s|jdsdS|jdS(NRR(R'R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRbs
cC`s|jdrdS|jdS(NRR(R'R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRhs
cC`sdS(N(R((R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRns(	R R!RORRRRRR(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRQOstReportableChangescB`seZRS((R R!(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRRsst
DifferencecB`s&eZdd�Zd�Zd�ZRS(cC`s||_||_dS(N(twantthave(RRTRU((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt__init__xs	cC`s9yt||�}|SWntk
r4|j|�SXdS(N(RtAttributeErrort_Difference__default(RtparamR((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytcompare|s

cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(RRTRURW(RRYtattr1tattr2((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt	__default�s
N(R R!R(RVRZRX(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRSws	t
ModuleManagercB`s�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(cO`sg|jdd�|_t|jj�|_td|jjd|j�|_t�|_	t
�|_dS(NtmoduletparamsR<(R?R(R_R	R`R<R&RTR%RURQtchanges(Rtargstkwargs((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRV�s
!cC`sji}xBtjD]7}t|j|�dk	rt|j|�||<qqW|rftd|�|_ndS(NR`(RRRRTR(RQRa(RtchangedRM((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt_set_changed_options�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(NR`(RSRTRURR$RDRZR(t
isinstancetupdateRQRaR,R-(RtdiffR$Rdtktchange((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt_update_changed_options�s		
cC`s|j�}|rtStS(N(RkR,R-(RR((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt
should_update�scC`s�t}t�}|jj}|dkr6|j�}n|dkrQ|j�}ntd|jj��}|j�}|j	|�|j	td|��|j
|�|S(NtpresenttabsentR`Rd(R-RDRTtstateRmRnRRRaRRgt_announce_deprecations(RRdRRot
reportableRa((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytexec_module�s	

cC`sH|jdg�}x/|D]'}|jjd|dd|d�qWdS(Nt
__warningstmsgtversion(tpopR_t	deprecate(RRtwarningstwarning((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRp�s


cC`s|j�rtS|j�S(N(texistsR-tcreate(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRm�scC`s�|jjdkrtSdj|jjd|jjd|jj|jj|jj�}|jj	j
|�}|jdkrtStS(Ns[https://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses/{2}/offerings/{3}/members/{4}R3R4i�(
RTRNR(R-R;R<R=RLRMR>R?RR,(RRFRG((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRz�s

		cC`sP|j�|jjrtS|j�|j�r?td��ntjd�tS(NsFailed to delete the resource.i<(	ReR_t
check_modeR,tremove_from_deviceRzR
ttimetsleep(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytremove�s


cC`s�|j�|jjs[|jjdkr7td��n|jjdkr[td��q[n|jjrkt	S|j
�|j�s�td��n|j�t
jd�t	S(NsIYou must specify a 'device_username' when working with unmanaged devices.sIYou must specify a 'device_password' when working with unmanaged devices.s$Failed to license the remote device.i<(ReRTRRR(R
RR_R|R,tcreate_on_deviceRztwait_for_device_to_be_licensedR~R(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR{�s"



cC`s|jj�}dj|jjd|jjd|jj|jj�}|jjsv|jj	|d<|jj
|d<n|jjj|d|�}y|j
�}Wn%tk
r�}tt|���nXd|kr|ddkrd	|krt|d	��qt|j��ndS(
NsXhttps://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses/{2}/offerings/{3}/members/R3R4tusernametpasswordR@R6i�R7(Rat
api_paramsR;R<R=RTRLRMRRRR>tpostR@RAR
RBtcontent(RR`RFRGRHRI((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�	s$

	cC`sd}dj|jjd|jjd|jj|jj|jj�}x�|dkr|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��n|d	d
kr
|d7}qJd}qJWdS(Nis[https://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses/{2}/offerings/{3}/members/{4}R3R4iR6i�R7RtLICENSEDi(R;R<R=RTRLRMRNR>R?R@RAR
RBR�(RtcountRFRGRHRI((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�"s(

		
cC`s|j�r|j�StS(N(RzR�R-(R((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRn<s
cC`s�dj|jjd|jjd|jj|jj|jj�}i}|jjs�|j|j	j
��|jj|d<|jj|d<|jj|d<n|jj
j|d|�dS(Ns[https://{0}:{1}/mgmt/cm/device/licensing/pool/regkey/licenses/{2}/offerings/{3}/members/{4}R3R4RJR�R�R@(R;R<R=RTRLRMRNRRgRaR�RRR>tdelete(RRFR`((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR}As

		(R R!RVReRkRlRrRpRmRzR�R{R�R�RnR}(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR^�s									
				tArgumentSpeccB`seZd�ZRS(cC`st|_tdtdt�dtdtdt�dtdt�dtdd�d	tdd
dd�d
tdt�dtdt�dtdddddg��}i|_|jjt�|jj|�ddddggdtdd
dggdtdggg|_dS(NRKtrequiredRMtno_logR)RttypetboolRR+tdefaulti�RRRoRmtchoicesRn(R,tsupports_check_modeRDt
argument_specRgRR-trequired_if(RR�((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyRVSs 		(R R!RV(((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyR�RscC`s�t�}td|jd|jd|j�}y,td|�}|j�}|j|�Wn)tk
r�}|j	dt
|��nXdS(NR�R�R�R_Rt(R�RR�R�R�R^Rrt	exit_jsonR
t	fail_jsonRB(tspecR_tmmtresultsRI((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pytmainis			t__main__(&t
__future__RRRR�t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNR.R~tansible.module_utils.basicRt%library.module_utils.network.f5.bigiqR	t&library.module_utils.network.f5.commonR
RRt)library.module_utils.network.f5.ipaddressR
tImportErrort%ansible.module_utils.network.f5.bigiqt&ansible.module_utils.network.f5.commont)ansible.module_utils.network.f5.ipaddressRR%R&RPRQRRtobjectRSR^R�R�R (((s^/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_regkey_license_assignment.pyt<module>sD


E+
 �$�	

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