??????????????
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@`síddlmZmZmZeZdZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZddlmZddlmZddlmZmZdd lmZeƒZd efd „ƒYZdS( i(tabsolute_importtdivisiontprint_functionsœ author: Ansible Core Team connection: zone short_description: Run tasks in a zone instance description: - Run commands or put/fetch files to an existing zone version_added: "2.0" options: remote_addr: description: - Zone identifier default: inventory_hostname vars: - name: ansible_host - name: ansible_zone_host N(t constants(t AnsibleError(t shlex_quote(tto_bytes(tConnectionBasetBUFSIZE(tDisplayt ConnectioncB`s•eZdZdZeZeZd„Ze d„ƒZ d„Z d„Z d„Z ejd„Zd ed„Zd „Zd „Zd „Zd „ZRS(s Local zone based connections tzonecO`s®tt|ƒj||||Ž|jj|_tjƒdkrOtdƒ‚nt |j dƒƒ|_ t |j dƒƒ|_ |j|j ƒkrªtd|jƒ‚ndS(Nis(zone connection requires running as roottzoneadmtzloginsincorrect zone name %s(tsuperR t__init__t _play_contextt remote_addrR tostgeteuidRRt_search_executablet zoneadm_cmdt zlogin_cmdt list_zones(tselft play_contextt new_stdintargstkwargs((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyR4scC`s/tjj|ƒ}|s+td|ƒ‚n|S(Ns%s command not found in PATH(t distutilstspawntfind_executableR(t executabletcmd((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyRBscC`stj|jddgdtjdtjdtjƒ}g}xJ|jjƒD]9}|jdƒ}|ddkrL|j|dƒqLqLW|S( Ntlists-iptstdintstdouttstderrt:itglobal(t subprocesstPopenRtPIPER$t readlinestsplittappend(Rtprocesstzonestlts((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyRIs cC`smtj|jdt|jƒddgdtjdtjdtjƒ}|jjƒdjdƒd }|d S( Ns-zR"s-pR#R$R%iR&is/root( R(R)RRR R*R$R+R,(RR.tpath((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyt get_zone_pathWs '  cC`sBtt|ƒjƒ|js>tjdd|jƒt|_ndS(s) connect to the zone; nothing to do here sTHIS IS A LOCAL ZONE DIRthostN(RR t_connectt _connectedtdisplaytvvvR tTrue(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyR5bs c C`so|j|j|g}tt|ƒ}tjd|d|jƒtj|dtd|dtj dtj ƒ}|S(s- run a command on the zone. This is only needed for implementing put_file() get_file() so that we don't have to read the whole file into memory. compared to exec_command() it looses some niceties like being able to return the process's exit code immediately. sEXEC %sR4tshellR#R$R%( RR tmapRR7R8R(R)tFalseR*(RR!R#t local_cmdtp((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyt_buffered_exec_commandis cC`sVtt|ƒj|d|d|ƒ|j|ƒ}|j|ƒ\}}|j||fS(s run a command on the zone tin_datatsudoable(RR t exec_commandR?t communicatet returncode(RR!R@RAR>R$R%((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyRB}s"cC`sC|jtjjƒs3tjjtjj|ƒ}ntjj|ƒS(s˜ Make sure that we put files into a standard path If a path is relative, then we need to choose where to put it. ssh chooses $HOME but we aren't guaranteed that a home dir will exist in any given chroot. So for now we're choosing "/" instead. This also happens to be the former default. Can revisit using $HOME instead if it's a problem (t startswithRR2tseptjointnormpath(Rt remote_path((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyt_prefix_login_path†s c C`swtt|ƒj||ƒtjd||fd|jƒt|j|ƒƒ}yt|dƒì}t j |j ƒƒj s„d}nd}y&|j d|t|fd|ƒ}Wntk rÏtdƒ‚nXy|jƒ\}}Wn1tk rtjƒtd ||fƒ‚nX|jd krHtd ||||fƒ‚nWd QXWn!tk rrtd |ƒ‚nXd S(s$ transfer a file from local to zone s PUT %s TO %sR4trbs count=0tsdd of=%s bs=%s%sR#s/jail connection requires dd command in the jails failed to transfer file %s to %sis'failed to transfer file %s to %s: %s %sNs$file or module does not exist at: %s(RR tput_fileR7R8R RRJtopenRtfstattfilenotst_sizeR?RtOSErrorRRCt Exceptiont tracebackt print_excRDtIOError(Rtin_pathtout_pathtin_filetcountR>R$R%((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyRM”s*  &   ) c C`s]tt|ƒj||ƒtjd||fd|jƒt|j|ƒƒ}y|jd|t fƒ}Wnt k rŠt dƒ‚nXt |dƒ½}yB|j jt ƒ}x)|rÝ|j|ƒ|j jt ƒ}qµWWn1tk rtjƒt d||fƒ‚nX|jƒ\}}|jdkrSt d||||fƒ‚nWd QXd S( s! fetch a file from zone to local sFETCH %s TO %sR4sdd if=%s bs=%ss/zone connection requires dd command in the zoneswb+s failed to transfer file %s to %sis'failed to transfer file %s to %s: %s %sN(RR t fetch_fileR7R8R RRJR?RRRRRNR$treadtwriteRSRTRURCRD(RRWRXR>tout_filetchunkR$R%((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyR[®s&      cC`s tt|ƒjƒt|_dS(s. terminate the connection; nothing to do here N(RR tcloseR<R6(R((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyR`ÆsN(t__name__t __module__t__doc__t transportR9thas_pipeliningR<thas_ttyRt staticmethodRRR3R5R(R*R?tNoneRBRJRMR[R`(((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyR -s      (t __future__RRRttypet __metaclass__t DOCUMENTATIONtdistutils.spawnRRtos.pathR(RTtansibleRtCtansible.errorsRtansible.module_utils.six.movesRtansible.module_utils._textRtansible.plugins.connectionRRtansible.utils.displayR R7R (((sC/usr/lib/python2.7/site-packages/ansible/plugins/connection/zone.pyt s