Anons79 Mini Shell

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

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zdd
l	Z	dd
l
Z
dd
lZdd
lZdd
l
Z
dd
lZdd
lZdd
lZdd
lZdd
lZdd
lZdd
lZddlmZmZddlmZdd
lmZddlmZmZmZyddl m!Z!Wn!e"k
reddl#m!Z!nXej$d�Z%ej$d�Z&ej$d�Z'ej$d�Z(ej$d�Z)ej$d�Z*ej$d�Z+ej$d�Z,ej$d�Z-d�Z.d�Z/de0fd��YZ1de2fd��YZ3de2fd ��YZ4d!e4fd"��YZ5d#e4fd$��YZ6d%e4fd&��YZ7d'�Z8d(�Z9e:d)kr�e9�nd
S(*i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatustcoretsupported_bys�
---
module: unarchive
version_added: '1.4'
short_description: Unpacks an archive after (optionally) copying it from the local machine.
description:
     - The C(unarchive) module unpacks an archive. It will not unpack a compressed file that does not contain an archive.
     - By default, it will copy the source file from the local system to the target before unpacking.
     - Set C(remote_src=yes) to unpack an archive which already exists on the target.
     - If checksum validation is desired, use M(get_url) or M(uri) instead to fetch the file and set C(remote_src=yes).
     - For Windows targets, use the M(win_unzip) module instead.
options:
  src:
    description:
      - If C(remote_src=no) (default), local path to archive file to copy to the target server; can be absolute or relative. If C(remote_src=yes), path on the
        target server to existing archive file to unpack.
      - If C(remote_src=yes) and C(src) contains C(://), the remote machine will download the file from the URL first. (version_added 2.0). This is only for
        simple cases, for full download support use the M(get_url) module.
    type: path
    required: true
  dest:
    description:
      - Remote absolute path where the archive should be unpacked.
    type: path
    required: true
  copy:
    description:
      - If true, the file is copied from local 'master' to the target machine, otherwise, the plugin will look for src archive at the target machine.
      - This option has been deprecated in favor of C(remote_src).
      - This option is mutually exclusive with C(remote_src).
    type: bool
    default: yes
  creates:
    description:
      - If the specified absolute path (file or directory) already exists, this step will B(not) be run.
    type: path
    version_added: "1.6"
  list_files:
    description:
      - If set to True, return the list of files that are contained in the tarball.
    type: bool
    default: no
    version_added: "2.0"
  exclude:
    description:
      - List the directory and file entries that you would like to exclude from the unarchive action.
    type: list
    version_added: "2.1"
  keep_newer:
    description:
      - Do not replace existing files that are newer than files from the archive.
    type: bool
    default: no
    version_added: "2.1"
  extra_opts:
    description:
      - Specify additional options by passing in an array.
      - Each space-separated command-line option should be a new element of the array. See examples.
      - Command-line options with multiple elements must use multiple lines in the array, one for each element.
    type: list
    default: ""
    version_added: "2.1"
  remote_src:
    description:
      - Set to C(yes) to indicate the archived file is already on the remote system and not local to the Ansible controller.
      - This option is mutually exclusive with C(copy).
    type: bool
    default: no
    version_added: "2.2"
  validate_certs:
    description:
      - This only applies if using a https URL as the source of the file.
      - This should only set to C(no) used on personally controlled sites using self-signed certificate.
      - Prior to 2.2 the code worked as if this was set to C(yes).
    type: bool
    default: yes
    version_added: "2.2"
extends_documentation_fragment:
- decrypt
- files
todo:
    - Re-implement tar support using native tarfile module.
    - Re-implement zip support using native zipfile module.
notes:
    - Requires C(zipinfo) and C(gtar)/C(unzip) command on target host.
    - Can handle I(.zip) files using C(unzip) as well as I(.tar), I(.tar.gz), I(.tar.bz2) and I(.tar.xz) files using C(gtar).
    - Does not handle I(.gz) files, I(.bz2) files or I(.xz) files that do not contain a I(.tar) archive.
    - Uses gtar's C(--diff) arg to calculate if changed or not. If this C(arg) is not
      supported, it will always unpack the archive.
    - Existing files/directories in the destination which are not in the archive
      are not touched. This is the same behavior as a normal archive extraction.
    - Existing files/directories in the destination which are not in the archive
      are ignored for purposes of deciding if the archive should be unpacked or not.
seealso:
- module: archive
- module: iso_extract
- module: win_unzip
author: Michael DeHaan
s5
- name: Extract foo.tgz into /var/lib/foo
  unarchive:
    src: foo.tgz
    dest: /var/lib/foo

- name: Unarchive a file that is already on the remote machine
  unarchive:
    src: /tmp/foo.zip
    dest: /usr/local/bin
    remote_src: yes

- name: Unarchive a file that needs to be downloaded (added in 2.0)
  unarchive:
    src: https://example.com/example.zip
    dest: /usr/local/bin
    remote_src: yes

- name: Unarchive a file with extra options
  unarchive:
    src: /tmp/foo.zip
    dest: /usr/local/bin
    extra_opts:
    - --transform
    - s/^xxx/yyy/
N(tZipFilet
BadZipfile(t
AnsibleModule(t
fetch_file(tto_bytest	to_nativetto_text(tquotes: Uid differs$s: Gid differs$s: Mode differs$s: Mod time differs$s4: : Warning: Cannot stat: No such file or directory$s2: Warning: Cannot stat: No such file or directory$s([r-][w-][SsTtx-]){3}s: Invalid owners: Invalid groupcC`s5t|d��}|j�}WdQXtj|�d@S(s# Return a CRC32 checksum of a file trbNI����(topentreadtbinasciitcrc32(tpathtftfile_content((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�scC`stjdd|�S(s6 Quote meta-characters in the args for the unix shell s([^A-Za-z0-9_])s\\\1(tretsub(tstring((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pytshell_escape�stUnarchiveErrorcB`seZRS((t__name__t
__module__(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�st
ZipArchivecB`s\eZd�Zd�Zed�Zd�Zeed��Zd�Z	d�Z
d�ZRS(cC`s�||_||_||_|jd|_||_|jd|_g|_|jjd�|_	|jjd�|_
g|_t�|_
dS(Nt
extra_optstexcludetunziptzipinfo(tsrctb_destt	file_argstparamstoptstmoduletexcludestincludestget_bin_pathtcmd_pathtzipinfocmd_patht_files_in_archivetdictt	_infodict(tselfR$R%R&R)((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt__init__�s						cC`s�|ddd�}d}xbtdd�D]Q}xHtdd�D]7}||d|dkr?|d
|d|7}q?q?Wq)W||@S(sA Convert a Unix permission string (rw-r--r--) into a mode (0644) Ni����iitrtwtxtstti(R4R5R6R7R8(trange(R2tmodestrtumasktrevstrtmodetjti((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt_permstr_to_octal�s!cC`s�|jjd�}|s.td|j��n|jj|d|jg�\}}}|rqtd|j��nx\|j�dd!D]G}|jdd�}|jj	|d�t
|d�|j|d<q�WdS(	NR"s1Python Zipfile cannot read %s and unzip not founds-vs,Neither python zipfile nor unzip can read %sii����ii(R)R,RR$trun_commandt
splitlinestsplittNoneR/tappendtintR1(R2t
force_refresht	unzip_bintrctoutterrtlinetfields((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt_legacy_file_list�s'cC`s�|jr|j|Syt|j�}Wn?tk
rh}|jdj�jd�rb|j�q��n_Xy4x-|j�D]}t	|j
�|j|j<qyWWn'tk
r�|j
�td��nX|j|S(Nisbad magic numbers#Unable to list files in the archive(R1RR$R	targstlowert
startswithRNtinfolistRFtCRCtfilenamet	ExceptiontcloseR(R2Rtarchivetetitem((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt_crc32�s	
!

cC`s/|jr|r|jSg|_yt|j�}WnBtk
rw}|jdj�jd�rq|j|�q(�n�Xy|xu|j�D]g}t	}|j
r�x0|j
D]"}tj||�r�t}Pq�q�Wn|s�|jj
t|��q�q�WWn'tk
r|j�td��nX|j�|jS(Nisbad magic numbers#Unable to list files in the archive(R/RR$R	RORPRQRNtnamelisttFalseR*tfnmatchtTrueRER
RURVR(R2RGRWRXtmembertexclude_flagR!((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pytfiles_in_archives0		!


c,C`s�|jdd|jg}|jr;|jdg|j�n|jj|�\}}}|}d}d}|dkr}t}nt}tj	d�}tj	|�t
j�}	tj�}
tj
�}tj�}ytj|�j}
Wnttfk
r|}
nXytj|�j}Wn tttfk
r=|}nXd}}|jdr�ytj|jd�}WnTtk
r�ytj|jd�}Wq�ttfk
r�tj|�}q�XnX|j}|j}n$y
|
}Wntk
r�nX|}d}}|jdr�ytj|jd�}Wn]ttfk
r�ytj|jd�}Wq�tttfk
r�tj|�}q�XnX|j}|j}n$y
|}Wntk
r�nX|}x�	|j �D]�	}t}|j!dd�}t"|�d	krq�nt"|d�dkr>t"|d�d
kr>q�nt"|d�dkrZq�n|ddd
ks�t#|dd�j$d�r�q�n|dd}|dd}|d}|d}t%|d�}t&|ddd�}||jkr|d|7}q�n|ddkrG|dkr>|d||f7}nd}n?|dkr\d}n*|dkrqd}n|dkr�d}nt"|�dkr�|ddkr�d}n|dkr�d}nd }|}n!d!|	j'�kr�|}nd}t"|�d"kst(j)|�r+t*d#|��ntj+j,|j-t.|dd��} ytj/| �}!WnLtk
r�t}|j0j1|�|d$|7}|d%||f7}q�nX|dkrt2j3|!j4�rt}|j0j1|�|d&|7}|d'||f7}q�n|dkrqt2j5|!j4�rqt}t}|j0j1|�|d(|7}|d'||f7}q�n|dkr�t2j6|!j4�r�t}|j0j1|�|d)|7}|d'||f7}q�nt7d*|�}"t8j8t9j:|dd+�dd!�}#t9j;|#j<��}$t2j5|!j4�r|jj=d,r�|$|!j>kr{t}|j0j1|�|d-|7}d.|"d/<qt2j5|!j4�r|$|!j>kr|d0|7}|jj1|�q�qq|$|!j>krt}|j0j1|�|d1||$|!j>f7}d.|"d/<qnt2j5|!j4�r`||!j?kr`t}|d2|||!j?f7}d3|"d<nt2j5|!j4�r�t@| �}%|%|jA|�kr�t}|d4||jA|�|%f7}d5|"d<q�n|dkr!
|jd6r�	tB|jd6t%�r	|jd6}&q�	yt%|jd6d	�}&Wq�	tk
r�	}'ytCjD|!|jd6�}&Wq�	tk
r�	}'|jjEd7|d8d9tF|'�d:tGjH��q�	Xq�	Xn3|dkr�	|jI|d�}&n|jI||�}&|&t2jJ|!j4�kr!
t}d;|"d<<|d=||&t2jJ|!j4�f7}q!
nd}(})ytj|!jK�j}(Wn ttfk
rf
|!jK})nX|dkr�
||
ks�
||kr�
t*d>|||
f��n|(r�
|(|kr�
t}|d?||(|f7}d@|"d<n<|)r|)|krt}|dA||)|f7}d@|"d<nd}*}+ytj|!jL�j}*Wn#tttfk
rg|!jL}+nX|dkr�||ks�||kr�||
kr�t*dB|||
f��n|*r�|*|kr�t}|dC||*|f7}dD|"d<n<|+r,|+|kr,t}|dE||+|f7}dD|"d<n|r�||j0krT|j0j1|�n|dFdj,|"�|f7}q�q�W|j0r�t}ntMdG|dH|dI|dJ|dK|dL|�S(MNs-Ts-ss-xtitownertgroupiii
iisdl-?isrwxstah-iiterrorstsurrogate_or_strictsPath %s is excluded on request
i����t/tds8Path %s incorrectly tagged as "%s", but is a directory.
tltLt-Rt?t	rwxrwxrwxsrwx---s	rw-rw-rw-tbsdi	s"ZIP info perm format incorrect, %ssPath %s is missing
s>%s++++++.?? %s
s/File %s already exists, but not as a directory
sc%s++++++.?? %s
s7Directory %s already exists, but not as a regular file
s2Directory %s already exists, but not as a symlink
s.%s.......??s
%Y%m%d.%H%M%St
keep_newers!File %s is older, replacing file
R8is!File %s is newer, excluding file
s$File %s differs in mtime (%f vs %f)
s#File %s differs in size (%d vs %d)
R7s5File %s differs in CRC32 checksum (0x%08x vs 0x%08x)
tcR=Rtmsgs%st	exceptiontpis*Path %s differs in permissions (%o vs %o)
s/Cannot change ownership of %s to %s, as user %ss8Path %s is owned by user %s, not by user %s as expected
tos6Path %s is owned by uid %s, not by uid %s as expected
s5Cannot change group ownership of %s to %s, as user %ss:Path %s is owned by group %s, not by group %s as expected
tgs6Path %s is owned by gid %s, not by gid %s as expected
s%s %s
t
unarchivedRIRJRKtcmdtdiff(NR.R$R*textendR)RAR^R\tosR;tplatformtsystemt	getgroupstgetuidtgetgidtpwdtgetpwuidtpw_namet	TypeErrortKeyErrortgrptgetgrgidtgr_namet
ValueErrort
OverflowErrorRDR&tgetpwnamtpw_uidRUtgetgrnamtgr_gidRBRCtlent	frozensettissubsetRFRRPtZIP_FILE_MODE_REtmatchRRtjoinR%RtlstatR+REtstattS_ISDIRtst_modetS_ISREGtS_ISLNKtlisttdatetimettimetstrptimetmktimet	timetupleR'tst_mtimetst_sizeRRZt
isinstanceR
t_symbolic_mode_to_octalt	fail_jsonR
t	tracebackt
format_excR@tS_IMODEtst_uidtst_gidR0(,R2RwRIRJRKtold_outRxRvR;t
systemtypetgroupstrun_uidtrun_gidt	run_ownert	run_groupt	fut_ownertfut_uidttpwt	fut_grouptfut_gidttgrRLtchangetpcstztypetpermstrtversiontostypetsizeRtftypet
file_umaskR%tsttitemizedt	dt_objectt	timestamptcrcR=RXRctuidRdtgid((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt
is_unarchived(s�		





	



	

,2

									"$
&
!	!
 
:
)

$



0

$		c	C`s�|jdg}|jr+|j|j�n|j|j�|jr^|jdg|j�n|jd|jg�|jj|�\}}}t	d|d|d|d|�S(Ns-os-xs-dRwRIRJRK(
R-R(RyRER$R*R%R)RAR0(R2RwRIRJRK((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt	unarchiveTs		cC`sj|jstdfS|jd|jg}|jj|�\}}}|dkrYtdfStd|jfS(NsCommand "unzip" not found.s-lis&Command "%s" could not handle archive.(R-R\R$R)RAR^RD(R2RwRIRJRK((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pytcan_handle_archivecs	

(RRR3R@R\RNRZtpropertyRaR�R�R�(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�s	
	
	 	�-	t
TgzArchivecB`sGeZd�Zd�Zeed��Zd�Zd�Zd�Z	RS(cC`s||_||_||_|jd|_||_|jjrf|jjdtdd|jj	�ng|jjdD]}|j
d�^qw|_|jjdd�|_|js�|jjd�|_nd	|_g|_|jr�|j�|_n	d|_dS(
NR tskippedRqs>remote module (%s) does not support check mode when using gtarR!Rgtgtarttars-z(R$R%R&R'R(R)t
check_modet	exit_jsonR^t_nametrstripR*R,RDR-tzipflagR/t
_get_tar_typettar_type(R2R$R%R&R)R((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR3os 				&/				cC`sp|jdg}|jj|�\}}}d}|jd�rHd}n$|jd�rld|krld}n|S(Ns	--versiontbsdtarRnR�tGNUtgnu(R-R)RARDRQ(R2RwRIRJRKR�((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR��s		c

C`s�|jr|r|jS|jdd|jg}|jrK|j|j�n|jrn|jdg|j�n|jr�|jg|jD]}d|^q��n|jd|jg�|j	j
|d|jdtdd	d
d	dd	��\}}}|dkrtd
��nx�|j
�D]�}ttj|�d�}|jd�rY|d}nt}|jr�x0|jD]"}	tj||	�rrt}PqrqrWn|s|jjt|��qqW|jS(Ns--lists-Cs--show-transformed-namess
--exclude=s-ftcwdtenviron_updatetLANGtCtLC_ALLtLC_MESSAGESis#Unable to list files in the archiveRgi(R/R-R%R�RER(RyR*R$R)RAR0RRBR
tcodecst
escape_decodeRQR\R]R^(
R2RGRwRRIRJRKRTR`R!((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRa�s4			*?
	c
C`s|jdd|jg}|jr4|j|j�n|jrW|jdg|j�n|jdr�|jdt|jd��n|jdr�|jdt|jd��n|jj	dr�|jd	�n|j
r|jg|j
D]}d
|^q��n|jd|jg�|jj|d|jd
t
dddddd��\}}}t}|}d}tj�}xU|j�|j�D]=}	tj|	�r�q�n|dkr�|jdr�tj|	�r�||	d7}n|dkr|jdrtj|	�r||	d7}n|jdrMtj|	�rM||	d7}ntj|	�rm||	d7}ntj|	�r�||	d7}ntj|	�r�||	d7}ntj|	�r�||	d7}q�q�W|r�t}nt
d|d|d|d|d|�S(Ns--diffs-Cs--show-transformed-namesRcs--owner=Rds--group=Ros--keep-newer-filess
--exclude=s-fR�R�R�R�R�R�Rbis
R=RvRIRJRKRw(R-R%R�RER(RyR&RR)R'R*R$RAR0R^RzR~RBt
EMPTY_FILE_REtsearcht
OWNER_DIFF_REt
GROUP_DIFF_REtMODE_DIFF_REtMOD_TIME_DIFF_REtMISSING_FILE_REtINVALID_OWNER_REtINVALID_GROUP_RER\(
R2RwRRIRJRKRvR�R�RL((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR��sN		
!
!	*?))	cC`sz|jdd|jg}|jr4|j|j�n|jrW|jdg|j�n|jdr�|jdt|jd��n|jdr�|jdt|jd��n|jj	dr�|jd	�n|j
r|jg|j
D]}d
|^q��n|jd|jg�|jj|d|jd
t
dddddd��\}}}t
d|d|d|d|�S(Ns	--extracts-Cs--show-transformed-namesRcs--owner=Rds--group=Ros--keep-newer-filess
--exclude=s-fR�R�R�R�R�R�RwRIRJRK(R-R%R�RER(RyR&RR)R'R*R$RAR0(R2RwRRIRJRK((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR��s 		
!
!	*?cC`s�|jstdfS|jdkr<td|j|jffSy|jrRtdfSWntk
rttd|jfSXtd|jfS(Ns$Commands "gtar" and "tar" not found.R�s7Command "%s" detected as tar type %s. GNU tar required.s&Command "%s" could not handle archive.s'Command "%s" found no files in archive.(R-R\R�RaR^RDR(R2((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR��s	
	
(
RRR3R�R�R\RaR�R�R�(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�ms		
(	3	t
TarArchivecB`seZd�ZRS(cC`s,tt|�j||||�d|_dS(NRb(tsuperR�R3R�(R2R$R%R&R)((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR3s(RRR3(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�stTarBzipArchivecB`seZd�ZRS(cC`s,tt|�j||||�d|_dS(Ns-j(R�R�R3R�(R2R$R%R&R)((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR3s(RRR3(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�stTarXzArchivecB`seZd�ZRS(cC`s,tt|�j||||�d|_dS(Ns-J(R�R�R3R�(R2R$R%R&R)((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR3s(RRR3(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyR�scC`s�tttttg}t�}xL|D]D}|||||�}|j�\}}	|r\|S|j|	�q%Wdj|�}
|j	dd||
f�dS(Nt RqsdFailed to find handler for "%s". Make sure the required command to extract the file is installed. %s(
RR�R�R�R�tsetR�taddR�R�(R$tdestR&R)thandlerstreasonsthandlertobjt
can_handletreasont
reason_msg((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pytpick_handler%s	
cC`sFtdtdtdddt�dtdddt�dtddd	t�d
tdd�dtddd	t�dtddd	t�d
tddd	g�dtddd	g�dtddd	t��	dtdt�}|jd}|jd}t|dd�}|jd}|j|j�}tjj	|�s�|sO|j
dd|�q�d|krmt||�}q�|j
dd|�ntj|tj
�s�|j
dd|�ny3tjj|�dkr�|j
dd|�nWn3tk
r}|j
dd|t|�f�nXtjj|�sB|j
dd|�nt||||�}td|jjd|d|�}|j�}	|jr�|	d|d <n�|	dr�t|d <n�yH|j�|d!<|d!d"dkr�|j
dd#||f|�nWn.tk
r.|j
dd#||f|�nXt|d <|	jd$t�rci|	d$d%6|d$<n|jd$t�r|jrx�|jD]�}
tjj|t|
dd��|d<y$|j||d d&t�|d <Wq�ttfk
r}|j
dd't|�|�q�Xq�Wn|jdr5|j|d(<n|j|�dS()Nt
argument_specR$ttypeRtrequiredR�t
remote_srctbooltdefaulttcreatest
list_filesRoR!R�R tvalidate_certstadd_file_common_argstsupports_check_modeReRfRqsSource '%s' failed to transfers://sSource '%s' does not existsSource '%s' not readableis)Invalid archive '%s', the file is 0 bytessSource '%s' not readable, %ss#Destination '%s' is not a directoryR�Rvtchangedtextract_resultsRIsfailed to unpack %s to %sRxtpreparedtexpands1Unexpected error when accessing exploded file: %stfiles(R
R0R^R\R'Rtload_file_common_argumentsRzRtexistsR�RtaccesstR_OKtgetsizeRUR
tisdirR�t	__class__RR�R�R�tIOErrortgetRaR�tset_fs_attributes_if_differenttOSErrorR�(R)R$R�R%R�R&RXR�tres_argst
check_resultsRT((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pytmain2sv	


$!	

$
!
%$(
t__main__(;t
__future__RRRR�t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLESRR�R�R]R�RzR{R�RR�R�R�tzipfileRR	tansible.module_utils.basicR
tansible.module_utils.urlsRtansible.module_utils._textRR
RtshlexRtImportErrortpipestcompileR�R�R�R�R�R�R�R�R�RRRURtobjectRR�R�R�R�R�RR(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt<module>s`


d
		���	
	^

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