Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/net_tools/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyo

�
�Udac@`sOddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlmZ
dd
lmZdZyFddlZddlZddlZddlZddlZeZWn#ek
r�e
j�ZeZnXddlmZm Z ddl!m"Z"de#fd��YZ$d�Z%e&dkrKe%�ndS(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	communitytsupported_bys�
---
module: nsupdate

short_description: Manage DNS records.
description:
    - Create, update and remove DNS records using DDNS updates
version_added: "2.3"
requirements:
  - dnspython
author: "Loic Blot (@nerzhul)"
options:
    state:
        description:
            - Manage DNS record.
        choices: ['present', 'absent']
        default: 'present'
    server:
        description:
            - Apply DNS modification on this server.
        required: true
    port:
        description:
            - Use this TCP port when connecting to C(server).
        default: 53
        version_added: 2.5
    key_name:
        description:
            - Use TSIG key name to authenticate against DNS C(server)
    key_secret:
        description:
            - Use TSIG key secret, associated with C(key_name), to authenticate against C(server)
    key_algorithm:
        description:
            - Specify key algorithm used by C(key_secret).
        choices: ['HMAC-MD5.SIG-ALG.REG.INT', 'hmac-md5', 'hmac-sha1', 'hmac-sha224', 'hmac-sha256', 'hmac-sha384',
                  'hmac-sha512']
        default: 'hmac-md5'
    zone:
        description:
            - DNS record will be modified on this C(zone).
            - When omitted DNS will be queried to attempt finding the correct zone.
            - Starting with Ansible 2.7 this parameter is optional.
    record:
        description:
            - Sets the DNS record to modify. When zone is omitted this has to be absolute (ending with a dot).
        required: true
    type:
        description:
            - Sets the record type.
        default: 'A'
    ttl:
        description:
            - Sets the record TTL.
        default: 3600
    value:
        description:
            - Sets the record value.
    protocol:
        description:
            - Sets the transport protocol (TCP or UDP). TCP is the recommended and a more robust option.
        default: 'tcp'
        choices: ['tcp', 'udp']
        version_added: 2.8
s�
- name: Add or modify ansible.example.org A to 192.168.1.1"
  nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "ansible"
    value: "192.168.1.1"

- name: Add or modify ansible.example.org A to 192.168.1.1, 192.168.1.2 and 192.168.1.3"
  nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "ansible"
    value: ["192.168.1.1", "192.168.1.2", "192.168.1.3"]

- name: Remove puppet.example.org CNAME
  nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "puppet"
    type: "CNAME"
    state: absent

- name: Add 1.1.168.192.in-addr.arpa. PTR for ansible.example.org
  nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    record: "1.1.168.192.in-addr.arpa."
    type: "PTR"
    value: "ansible.example.org."
    state: present

- name: Remove 1.1.168.192.in-addr.arpa. PTR
  nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    record: "1.1.168.192.in-addr.arpa."
    type: "PTR"
    state: absent
s*
changed:
    description: If module has modified record
    returned: success
    type: str
record:
    description: DNS record
    returned: success
    type: str
    sample: 'ansible'
ttl:
    description: DNS record TTL
    returned: success
    type: int
    sample: 86400
type:
    description: DNS record type
    returned: success
    type: str
    sample: 'CNAME'
value:
    description: DNS record value(s)
    returned: success
    type: list
    sample: '192.168.1.1'
zone:
    description: DNS record zone
    returned: success
    type: str
    sample: 'example.org.'
dns_rc:
    description: dnspython return code
    returned: always
    type: int
    sample: 4
dns_rc_str:
    description: dnspython return code (string representation)
    returned: always
    type: str
    sample: 'REFUSED'
N(tError(terror(t
AnsibleModuletmissing_required_lib(t	to_nativet
RecordManagercB`sYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cC`s�||_|jddkr�|jdddkrI|jjdd�ny)tjj|jjd�j�|_WnWtj	j
tjjtjjfk
r�}|jjdd|j
jt|�f�nX|jdkr)|jjdd�q)n5|jd|_|jddkr)|jd7_n|jdddkr^|jdd|j|_n|jd|_|jd	r�y.tjji|jd
|jd	6�|_Wqtk
r�|jdd�qtk
r�}|jddt|��qXn	d|_|jd
dkr$d|_n|jd
|_|jjdj�dkrxtt|j|jjd��|_n|jjd|_d|_dS(Ntzonetrecordi����t.tmsgs4record must be absolute when omitting zone parametersZone resolver error (%s): %ss,Unable to find zone, dnspython returned Nonetkey_namet
key_secretsMissing key_secretsTSIG key error: %st
key_algorithmshmac-md5sHMAC-MD5.SIG-ALG.REG.INTttypettxttvaluei(tmoduletparamstNonet	fail_jsontdnstresolvert
zone_for_nametto_textRt	exceptiontTimeoutt
NoNameserverst	NoRootSOAt	__class__t__name__Rtfqdnttsigkeyringt	from_texttkeyringt	TypeErrortbinascii_errort	algorithmtlowertlisttmapt
txt_helperRtdns_rc(tselfRte((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyt__init__�s@	)*-
"
!	(cC`s4|ddkr$|ddkr$|Sdjd|�S(Nit"i����s"{text}"ttext(tformat(R2tentry((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyR0�s cC`s)d}y�|jjddkrWtjj||jjdddd|jjd�}n5tjj||jjdddd|jjd�}Wn�tjjtjj	fk
r�}|jj
dd|jjt
|�f�nHttjjfk
r$}|jj
dd	|jjt
|�f�nX|S(
Ntprotocolttcptserverttimeouti
tportRsTSIG update error (%s): %ssDNS server error: (%s): %s(RRRRtqueryR:tudpttsigt
PeerBadKeytPeerBadSignatureRR$R%Rtsocket_errorR R!(R2tupdatetresponseR3((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyt__do_update�s89!,-cC`sitd6td6}|j�}|dkr�|jjrN|jjdt�n|dkr�|j�|_|jdkr�d|j|d<q�nA|dkr�|j�|_|jdkr�d|j|d<q�n|jdkr�t|d<qt|d<n
t|d<|S(	Ntchangedtfailediis$Failed to create DNS record (rc: %d)Rs$Failed to update DNS record (rc: %d)(ii(	tFalset
record_existsRt
check_modet	exit_jsontTruet
create_recordR1t
modify_record(R2tresulttexists((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pytcreate_or_update_records$


cC`s�tjj|jd|jd|j�}x�|jD]�}y8|j|jj	d|jj	d|jj	d|�Wq1t
k
r�|jjdd�q1tjj
k
r�|jjdd�q1Xq1W|j|�}tjjj|�S(	NR)tkeyalgorithmRtttlRRsvalue needed when state=presentsInvalid/malformed value(RRDtUpdateRR)R,RtaddRRtAttributeErrorRR tSyntaxErrort_RecordManager__do_updatetmessagetMessagetrcode(R2RDR8RE((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyRN's'


cC`s	tjj|jd|jd|j�}|j|jjd|jjd�x�|j	D]�}y8|j
|jjd|jjd|jjd|�WqUtk
r�|jjdd�qUtj
jk
r�|jjdd�qUXqUW|j|�}tjjj|�S(	NR)RSRRRTRsvalue needed when state=presentsInvalid/malformed value(RRDRURR)R,tdeleteRRRRVRWRR RXRYRZR[R\(R2RDR8RE((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyRO7s'$


cC`s�itd6td6}|j�dkr*|S|jjrL|jjdt�ntjj|j	d|j
d|j�}|j|jj
d|jj
d�|j|�}tjjj|�|_|jdkr�t|d<d|j|d	<n
t|d<|S(
NRGRHiR)RSRRs Failed to delete record (rc: %d)R(RIRJRRKRLRMRRDRURR)R,R]RRYRZR[R\R1(R2RPRDRE((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyt
remove_recordHs'$

cC`s�tjj|jd|jd|j�}y(|j|jjd|jjd�Wn;tj	j
k
r�}|jjddjt
|���nX|j|�}tjjj|�|_|jdkr�|jjdd	kr�d
Sx�|jD]�}y+|j|jjd|jjd|�Wq�tk
r>|jjdd�q�tjjk
rg|jjdd�q�Xq�W|j|�}tjjj|�|_|jdkr�|j�r�d
Sd
Sq�d
SndSdS(NR)RSRRRsRecord error: {0}itstatetabsentisvalue needed when state=presentsInvalid/malformed valuei(RRDRURR)R,tpresentRRt	rdatatypetUnknownRdatatypeRR7RRYRZR[R\R1RRWR RXtttl_changed(R2RDR3RER8((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyRJ`s2'(&+
cC`stjj|j|jjd�}y�|jjddkrstjj||jjdddd|jjd�}n5tjj||jjdddd|jjd�}WnHt	tj
jfk
r�}|jjdd	|j
jt|�f�nX|jd
j}||jjdkS(NRR9R:R;R<i
R=RsDNS server error: (%s): %siRT(RRZt
make_queryR&RRR>R:R?RCR R!RR$R%RtanswerRT(R2R>tlookupR3tcurrent_ttl((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyRds"89-(R%t
__module__R4R0RYRRRNROR^RJRd(((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyR
�s	1		
					c#C`s�dddddddg}tdtd	td
tddd
ddgdd�dtd
tdd�dtd
tdddd�dtd
tdd�dtd
tdddt�dtd
tddd
|dd�dtd
tdddd�dtd
tdd�dtd
tdddd�dtd
tdddd�dtd
tdddd�d td
tdd!d
d!d"gdd��d#t�}ts�|jd$td%�d&t�nt	|j
d�d'kr�|jd$d(�nt|�}i}|j
d	dkr|j�}n"|j
d	dkr*|j
�}n|j|d)<tjj|j�|d*<|d+rj|j|�nStd|jd|j
dd|j
dd|j
dd|j�|d<|j|�dS(,NsHMAC-MD5.SIG-ALG.REG.INTshmac-md5s	hmac-sha1shmac-sha224shmac-sha256shmac-sha384shmac-sha512t
argument_specR_trequiredtdefaultRatchoicesR`RtstrR;R=i5tintRRtno_logRRRtARTiRR.R9R:R?tsupports_check_modeRt	dnspythonR isrecord cannot be empty.R1t
dns_rc_strRH(R
tdictRIRMRtHAVE_DNSPYTHONRRtDNSPYTHON_IMP_ERRtlenRR
R^RRR1RR\RRRRL(t	tsig_algsRRRP((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pytmain�sJ'!*	




t__main__('t
__future__RRRRt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNt	tracebacktbinasciiRR+tsocketR	RCRRwt
dns.updateRt	dns.querytdns.tsigkeyringtdns.messagetdns.resolverRMRvtImportErrort
format_excRItansible.module_utils.basicR
Rtansible.module_utils._textRtobjectR
RzR%(((sF/usr/lib/python2.7/site-packages/ansible/modules/net_tools/nsupdate.pyt<module>s6


C1*


�	1

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