??????????????
Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 176

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 178
 Udac@`sddlmZmZmZeZidd6dgd6dd6ZdZd Zdd l Z dd l Z dd l Z dd l Z dd l Z dd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lmZmZdd lmZdd lmZddlmZmZmZyddl m!Z!Wn!e"k reddl#m!Z!nXej$dZ%ej$dZ&ej$dZ'ej$dZ(ej$dZ)ej$dZ*ej$dZ+ej$dZ,ej$dZ-dZ.dZ/de0fdYZ1de2fdYZ3de2fd YZ4d!e4fd"YZ5d#e4fd$YZ6d%e4fd&YZ7d'Z8d(Z9e:d)kre9nd 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.pyRscC`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_escapestUnarchiveErrorcB`seZRS((t__name__t __module__(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRst ZipArchivecB`s\eZdZdZedZdZeedZdZ dZ dZ RS(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}xbtddD]Q}xHtddD]7}||d|d kr?|d |d|7}q?q?Wq)W||@S( sA Convert a Unix permission string (rw-r--r--) into a mode (0644) Niiitrtwtxtstti(R4R5R6R7R8(trange(R2tmodestrtumasktrevstrtmodetjti((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt_permstr_to_octals!cC`s|jjd}|s.td|jn|jj|d|jg\}}}|rqtd|jnx\|jdd!D]G}|jdd}|jj |dt |d|j |dt"|dd kr>qnt"|d d krZqn|ddd kst#|ddj$d rqn|dd}|dd}|d}|d}t%|d}t&|ddd}||jkr |d|7}qn|ddkrG|dkr>|d||f7}nd}n?|dkr\d}n*|dkrqd}n|dkrd}nt"|d kr|ddkrd}n|dkrd}nd }|}n!d!| j'kr|}nd}t"|d"kst(j)| r+t*d#|ntj+j,|j-t.|dd} ytj/| }!WnLtk rt}|j0j1||d$|7}|d%||f7}qnX|dkrt2j3|!j4 rt}|j0j1||d&|7}|d'||f7}qn|dkrqt2j5|!j4 rqt}t}|j0j1||d(|7}|d'||f7}qn|dkrt2j6|!j4 rt}|j0j1||d)|7}|d'||f7}qnt7d*|}"t8j8t9j:|d d+dd !}#t9j;|#j<}$t2j5|!j4r|jj=d,r|$|!j>kr{t}|j0j1||d-|7}d.|"d/kr|d0|7}|jj1|qqq|$|!j>krt}|j0j1||d1||$|!j>f7}d.|"d/||| fn|(r |(|kr t}|d?||(|f7}d@|"d %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|jn|j|j|jr^|jdg|jn|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\RNRZtpropertyRaRRR(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRs   - t TgzArchivecB`sGeZdZdZeedZdZdZdZ 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}|jdrHd}n$|jdrld|krld}n|S(Ns --versiontbsdtarRnRtGNUtgnu(R-R)RARDRQ(R2RwRIRJRKR((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRs  c C`s|jr| r|jS|jdd|jg}|jrK|j|jn|jrn|jdg|jn|jr|jg|jD]}d|^qn|jd|jg|j j |d|jdt dd d d d d \}}}|d krt d nx|j D]}ttj|d }|jdrY|d}nt}|jrx0|jD]"} tj|| rrt}PqrqrWn|s|jjt|qqW|jS(Ns--lists-Cs--show-transformed-namess --exclude=s-ftcwdtenviron_updatetLANGtCtLC_ALLt LC_MESSAGESis#Unable to list files in the archiveRgi(R/R-R%RRER(RyR*R$R)RAR0RRBR tcodecst escape_decodeRQR\R]R^( R2RGRwRRIRJRKRTR`R!((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRas4   *?    c C`s|jdd|jg}|jr4|j|jn|jrW|jdg|jn|jdr|jdt|jdn|jdr|jdt|jdn|jj dr|jd n|j r|jg|j D]}d |^qn|jd |j g|jj |d |jd t dddddd\}}}t}|}d}tj}xU|j|jD]=} tj| rqn|dkr|jd rtj| 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}qqW|rt}nt d|d|d|d|d|S(Ns--diffs-Cs--show-transformed-namesRcs--owner=Rds--group=Ros--keep-newer-filess --exclude=s-fRRRRRRRbis R=RvRIRJRKRw(R-R%RRER(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\( R2RwRRIRJRKRvRRRL((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRsN   ! ! *? )) c C`sz|jdd|jg}|jr4|j|jn|jrW|jdg|jn|jdr|jdt|jdn|jdr|jdt|jdn|jj dr|jd n|j r|jg|j D]}d |^qn|jd |j g|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-fRRRRRRRwRIRJRK(R-R%RRER(RyR&RR)R'R*R$RAR0(R2RwRRIRJRK((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRs    ! ! *?cC`s|jstdfS|jdkr<td|j|jffSy|jrRtdfSWntk rttd|jfSXtd|jfS(Ns$Commands "gtar" and "tar" not found.Rs7Command "%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\RRaR^RDR(R2((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRs    ( RRR3RRR\RaRRR(((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyRms  ( 3 t TarArchivecB`seZdZRS(cC`s,tt|j||||d|_dS(NRb(tsuperRR3R(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.pyRstTarBzipArchivecB`seZdZRS(cC`s,tt|j||||d|_dS(Ns-j(RRR3R(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.pyRst TarXzArchivecB`seZdZRS(cC`s,tt|j||||d|_dS(Ns-J(RRR3R(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.pyRsc C`stttttg}t}xL|D]D}|||||}|j\}} |r\|S|j| q%Wdj|} |j dd|| fdS(Nt RqsdFailed to find handler for "%s". Make sure the required command to extract the file is installed. %s( RRRRRtsetRtaddRR( R$tdestR&R)thandlerstreasonsthandlertobjt can_handletreasont reason_msg((sC/usr/lib/python2.7/site-packages/ansible/modules/files/unarchive.pyt pick_handler%s  c C`sFtdtdtdddtdtdddtdtddd td tddd tddd td tddd td tddd gdtddd gdtddd t dtdt}|jd}|jd}t|dd}|jd}|j|j}tjj |s|sO|j dd|qd|krmt ||}q|j dd|ntj |tj s|j dd|ny3tjj|dkr|j dd|nWn3tk r}|j dd|t|fnXtjj|sB|j dd|nt||||}td|jjd|d|}|j} |jr| d |d s`   d                ^