Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó ƒjbc @s ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZddlmZmZddlmZ ddl!Z!ddl"m#Z#ddl"m$Z%ddl"m&Z&ddl"m'Z'dd l"m(Z(dd l"m)Z)dd l"m*Z*dd l"m+Z+dd l,m-Z-yddl.m/Z/Wne0k rd„Z/nXda2e%j3e4ƒZ5ide j66Z7dej8ej9Z:dæZ;dçZ<dddgdgdgfZ=e/ƒdd„ƒZ>e/ƒdd „ƒZ?dd!„Z@dd"„ZAd#d$„ZBd#d%„ZCd&„ZDd'„ZEd(„ZFd)ZGid*d+6d,d-6d.d/6d0d16d2d36d4d56d6d76d8d96d:d;6d<d=6d>d?6d@dA6dBdC6dDdE6dFdG6dHdI6dJdK6ZHdLeIfdM„ƒYZJdNeKfdO„ƒYZLdPeMfdQ„ƒYZNdReMfdS„ƒYZOdT„ZPddU„ZQddV„ZRddW„ZSdXddY„ZTddZ„ZUd[„ZVd\„ZWd]„ZXd^„ZYeZeZd_„Z[d`„Z\da„Z]eZeZde%j^db„Z_dc„Z`e/ƒdd„ƒZaebde„Zcddf„Zddgdh„Zeddi„Zfe/ƒdj„ƒZge/ƒdk„ƒZhddl„Ziddm„Zjdn„Zkdddo„Zlddpdpdpdpdq„Zmebdr„Znejods„ƒZpejodt„ƒZqdu„Zrdv„ZseZddw„Ztdpdpdxdy„Zuddz„Zvdewfd{„Zxdpdpdxd|dgd}„Zyd~„Zzd„Z{dd€„Z|dd�„Z}d‚„Z~ebdƒ„Zd„d…„Z€d†„Z�d‡„Z‚dˆ„Zƒd‰„Z„dŠ„Z…d‹„Z†ddŒdebdd�„Z‡debdŽ„Zˆd�„Z‰d�„ZŠdebeZd‘„Z‹e/ƒd’„ƒZŒd“„Z�d”dd•„ZŽddd–„Z�ddd—„Z�d˜„Z‘d™„Z’dš„Z“dd›„Z”dœ„Z•d�„Z–dž„Z—dŸd „Z˜ewfd¡„Z™d¢„Zšd£„Z›d¤„Zœdd¥„Z�ejod¦„ƒZžd§„ZŸdddd¨„Z d©„Z¡dª„Z¢ebd«„Z£d¬„Z¤d­„Zd®„Z¥d¯„Z¦d°„Z§d±d²„Z¨d³„Z©d´„Zªd±dµebd¶„Z«d·„Z¬d¸„Z­dddeZebebebd¹ddddº„ Z®d»d¼d½„Z¯d¾„Z°eZd¿„Z±dddÀ„Z²dÁ„Z³d„Z´d#d¹dÄZµdÄ„Z¶dÅ„Z·dÆ„Z¸e5ebdÇ„Z¹dÈ„ZºdÉ„Z»dÊ„Z¼dË„Z½dÌ„Z¾dÍ„Z¿e5ebd΄ZÀdÏ„ZÁdddЄZÂddebdÑ„ZÃdÒ„ZÄdde jÅj6dÓ„ZÆdÔebdÕ„ZÇdÖ„ZÈdׄZÉdØ„ZÊddÙ„ZËdÚ„ZÌdÛ„ZÍddÜ„ZÎdÝ„ZÏdÞ„ZÐdß„ZÑebddà„ZÒdádpdâ„ZÓdã„ZÔdddä„ZÕdå„ZÖdS(èiÿÿÿÿN(tENOENTtENOEXEC(t b64decodet b64encode(tparse(timporter(tlog(tmergers(tsafeyaml(t temp_utils(t type_utils(t url_helper(tversion(t CFG_BUILTIN(t lru_cachecCs d„}|S(s+pass-thru replace for Python3's lru_cache()cSs|S(N((tf((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytwrapper:s((R((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR8s t_s_-.()ttruet1tontyestofft0tnotfalsessystemd-detect-virts--quiets --containersrunning-in-containerslxc-is-containercCs.tddgdtd|ƒ\}}|jƒS(Ntdpkgs--print-architecturetcapturettarget(tsubptTruetstrip(RtoutR((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytget_architectureRsc Cs;idd6dd6dd6dd6}i}yÍtd d gd td |ƒ\}}xO|jƒD]A}|jd ƒ\}}}||kr\|jƒ|||ls( RRt splitlinest partitionRtvaluestlentLOGtwarningtjointProcessExecutionErrortdict( RtfmaptdataR Rtlinetfnametvaltktmissingterr((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt _lsb_releaseYs"$ +   cCs#t|ƒdkrt|ƒStƒS(Nt/(t target_pathR@(R((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR)qs cCs²|dkrd}nSt|tjƒs:td|ƒ‚n.tjj|ƒ}|jdƒrh|d}n|sr|Sx*t |ƒrž|ddkrž|d}quWtjj ||ƒS(NtRAsUnexpected input for target: %ss//ii(NRC( tNonet isinstancetsixt string_typest ValueErrortostpathtabspatht startswithR2R5(RRJ((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyRBys   sutf-8cCs#t|tjƒr|S|j|ƒS(N(RERFRGtdecode(tblobtencoding((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt decode_binary�scCs#t|tjƒr|S|j|ƒS(N(RERFt binary_typetencode(ttextRO((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt encode_text–scCs6t|ƒ}y|jdƒSWntk r1|SXdS(Nsutf-8(RRMtUnicodeDecodeError(tsourcetdecoded((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytb64d�s   cCs4t|tƒs!|jdƒ}nt|ƒjdƒS(Nsutf-8(REtbytesRRRRM(RV((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytb64e§scCs}|jdtƒ}tjry|jƒdkryt|tƒry|jƒ}|rc|jrc|j}nd}|j |dƒS|S(NRMRSsutf-8tsurrogateescape( t get_payloadRRFtPY3tget_content_maintypeRERYt get_charsett input_codecRM(tpartt cte_payloadtcharsetRO((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytfully_decoded_payload¯s   s/sys/class/dmi/idtboard_asset_tagsbaseboard-asset-tagt board_vendorsbaseboard-manufacturert board_namesbaseboard-product-namet board_serialsbaseboard-serial-numbert board_versionsbaseboard-versiont bios_datesbios-release-datet bios_vendors bios-vendort bios_versions bios-versiontchassis_asset_tagschassis-asset-tagtchassis_vendorschassis-manufacturertchassis_serialschassis-serial-numbertchassis_versionschassis-versiont sys_vendorssystem-manufacturert product_namessystem-product-nametproduct_serialssystem-serial-numbert product_uuids system-uuidtproduct_versionssystem-versionR6cBsGeZdZdZdddddddd„Zd„Zdd„ZRS(sr%(description)s Command: %(cmd)s Exit code: %(exit_code)s Reason: %(reason)s Stdout: %(stdout)s Stderr: %(stderr)st-c Csº|s|j|_n ||_|sO| rC|tkrCd|_qXd|_n ||_t|tjƒsy|j|_n ||_|s¯|dkr£|j|_ qÁ||_ n|j |ƒ|_ |sî|dkrâ|j|_ q||_ n|j |ƒ|_ |r||_ n |j|_ ||_ |ji|j|jƒd6|j|jƒd6|j|jƒd6|j|j ƒd6|j|j ƒd6|j|j ƒd6}tj||ƒdS( Ns(Exec format error. Missing #! in script?s'Unexpected error while running command.R$tcmdt exit_codetstdouttstderrtreason(t empty_attrRwRR$RERFt integer_typesRxRDRzt _indent_textRyR{terrnot MESSAGE_TMPLt_ensure_stringtIOErrort__init__( tselfRyRzRxRwR$R{Rtmessage((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyRƒæsB             cCs t|tjƒr|jƒS|S(s1 if data is bytes object, decode (RERFRQRM(R„RS((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR�sicCsZd}d|}t|tjƒr=|jƒ}|jƒ}n|j|ƒj|||ƒS(sY indent text on all but the first line, allowing for easy to read output s t (RERFRQRRtrstriptreplace(R„RSt indent_leveltcrtindent((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR~"s   N(t__name__t __module__R€R|RDRƒR�R~(((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR6Üs 3 t SeLinuxGuardcBs&eZed„Zd„Zd„ZRS(cCsIytjdƒ|_Wntk r2d|_nX||_||_dS(Ntselinux(Rt import_moduleR�t ImportErrorRDRJt recursive(R„RJR’((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyRƒ2s    cCs$|jr|jjƒrtStSdS(N(R�tis_selinux_enabledRtFalse(R„((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt __enter__<scCs |j s|jjƒ rdStjj|jƒs7dStjj|jƒ}tjrdt|ƒ}ny-tj |ƒ}|jj ||t j ƒWnt k r¥dSXtjd||jƒy|jj|d|jƒWn,t k r}tjd||j|ƒnXdS(Ns,Restoring selinux mode for %s (recursive=%s)R’s,restorecon failed on %s,%s maybe badness? %s(R�R“RIRJtlexiststrealpathRFtPY2tstrtlstatt matchpathcontstattST_MODEtOSErrorR3tdebugR’t restoreconR4(R„t excp_typet excp_valuetexcp_tracebackRJtstatste((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt__exit__Bs&     (RŒR�R”RƒR•R¦(((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyRŽ1s tMountFailedErrorcBseZRS((RŒR�(((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR§[stDecompressionErrorcBseZRS((RŒR�(((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR¨_scOs“tjƒ}|dkrsy|||ŽtjdƒWq�tk rottdtj|ƒƒtjdƒq�Xntjd|tj|ƒƒdS(Nis&Failed forking and calling callback %sis(Forked child %s who will run callback %s( RItforkt_exitt ExceptiontlogexcR3R tobj_nameRŸ(tchild_cbtargstkwargstfid((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytfork_cbcs      cCsat|tƒr|tkSt}|r8t|ƒ|}ntj|ƒjƒjƒ|kr]tSt S(N( REtboolRt TRUE_STRINGStlistRFt text_typetlowerRR”(R<taddonst check_set((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytis_truers !cCsat|tƒr|tkSt}|r8t|ƒ|}ntj|ƒjƒjƒ|kr]t StS(N( RER³R”t FALSE_STRINGSRµRFR¶R·RR(R<R¸R¹((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytis_false}s !cCs*|s tSt|tƒr|St||ƒS(N(R”RER³Rº(R<R¸((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyttranslate_boolˆs i cCsWtjƒ}|s%tjtj}ndjgtd|ƒD]}|j|ƒ^q;ƒS(NRCi(trandomt SystemRandomtstringt ascii_letterstdigitsR5trangetchoice(tstrlent select_fromtrt_x((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytrand_str“s cCsG|sd}nx1trBtddƒd|}||krPqqW|S(NRCRÅiR(RRÉ(t dictionarytpostfixtnewkey((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt rand_dict_keyšs   cCsJytt|ƒdiƒSWn)tk rE}|jtkr?iS‚nXdS(Ntdefault(t load_yamlt load_fileR‚RR(R;R¥((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt read_conf¤s cGstt|ŒƒS(N(tsortedt uniq_merge(tlists((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytuniq_merge_sorted±scGs}g}xj|D]b}t|tjƒrb|jƒjdƒ}g|D]}t|ƒrA|^qA}n|j|ƒq Wt|ƒS(NR+(RERFRGRtsplitR2textendt uniq_list(RÔt combined_listta_listta((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyRÓ½s (cCs•x,tjƒD]\}}|j||ƒ}q Wg}x*|D]"}|tkr<|j|ƒq<q<Wx |D]}|j|dƒ}qiW|jƒ}|S(NRC(tFN_REPLACEMENTStitemsRˆt FN_ALLOWEDtappendR(tfnR=R.tremovals((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytclean_filenameÈs    cCsœyctjt|ƒƒ}tjtjddd|ƒƒ�'}|rRt|j ƒƒS|j ƒSWdQXWn2t k r—}|r|St tj |ƒƒ‚nXdS(Ntrbi( RFtBytesIORTt contextlibtclosingtgziptGzipFileRDRPtreadR«R¨R¶(R9tquietRMtbuftghR¥((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt decomp_gzipÕs$cCs½|s dS|jddƒ}|djƒ}t|ƒdkrQ|djƒ}nd}| s||dks||jƒdkr…d}n| sª|dksª|jƒdkr³d}n||fS(NR*iiis-1tnone(NN(RDRÖRR2R·(tug_pairt ug_partedtutg((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytextract_usergroupås% % cCs›tƒ}x‹tjtjj|dƒƒD]k}tjj|ƒsFq(ntjj|ƒdd!}|jƒ}|r(|jdƒdkr(|||scCsÂ|sd}ntjj|ƒs%iSt|ƒ}d}tj||ƒ}|r¾|jƒ}|djƒjdƒd|d<|ddkr™d|d.+) release (?P[\d\.]+) \((?P[^)]+)\)tnames linuxisred hat enterprisetredhattIDR t VERSION_IDR"tVERSION_CODENAME( RIRJRRÐtretmatcht groupdictR·R0(t release_filetredhat_releaset redhat_regexRtgroup((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt_parse_redhat_releaseBs   !  c CsÊd}d}d}i}tjjdƒr?ttdƒƒ}n|sQtƒ}n|r |jddƒ}|jddƒ}d|ks“d|kr¢tjƒ}nR|jddƒ}|sôt j d|jd dƒƒ}|rô|j ƒd }qôn|d kr½d }q½n±tjjd ƒrKd}t ddgƒ\}}|j ƒ}nrd}z(ytjƒ}Wntk rwnXWdd}x|D]}|r‰d}q‰q‰W|s¸tjdƒnX|S|||fS(NRCs/etc/os-releaseRRtslestsuseRs[^ ]+ \((?P[^)]+)\)tVERSIONR"trhelRs/bin/freebsd-versionRtunames-risPUnable to determine distribution, template expansion may have unexpected results(RCRCRC(RIRJRtload_shell_contentRÐR"tgettplatformtmachineRRRRRtdistR«RDR3R4( t distro_nametdistro_versiontflavort os_releaseRRR,tfoundtentry((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytget_linux_distro\sN       cCsitjƒd6tjƒd6tjƒd6tjƒd6tjƒd6tƒd6}|djƒ}d}|dkrä|dd jƒ}|dkrœ|}qù|dkr±d}qù|dkrÆd}qù|dkrÛd}qùd}n|dkrù|}n||d<|S( NR*tsystemR'tpythonR'R,tunknowntlinuxitarchtcentostdebiantfedoraR&R$tubuntut linuxminttmintRtopensusesopensuse-tumbleweeds opensuse-leapR#twindowstdarwinRR (R8R9R:R;srhelssuse(R<R=R>(R?sopensuse-tumbleweeds opensuse-leapssles(R@sdarwinsfreebsd(R*R4R'tpython_versionR'R3R·(tinfoR4tvart linux_dist((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR�s4                   cCs‚||kr|S||dkr$gS||}t|tƒrZg|D] }|^qD}|St|tjƒs{t|ƒ}n|gS(sª Gets the C{key} config option from C{yobj} as a list of strings. If the key is present as a single string it will be returned as a list with one string arg. @param yobj: The configuration object. @param key: The configuration key to get. @param default: The default to return if key is not found. @return: The configuration option as a list of strings or default if key is not found. N(RDRERµRFRGR™(RRRÎR<R.tcval((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytget_cfg_option_list²s  cCsYt|tjƒr$|jdƒ}n|}x(|D] }||krG|S||}q1W|S(s×Return the value of the item at path C{keyp} in C{yobj}. example: get_cfg_by_path({'a': {'b': {'num': 4}}}, 'a/b/num') == 4 get_cfg_by_path({'a': {'b': {'num': 4}}}, 'c/d') == None @param yobj: A dictionary. @param keyp: A path inside yobj. it can be a '/' delimited string, or an iterable. @param default: The default to return if the path does not exist. @return: The value of the item at keyp." is not found.RA(RERFRGRÖ(RtkeypRÎtcurttok((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytget_cfg_by_pathÍs  cCs,t||ƒ\}}t||ƒ||fS(N(tget_output_cfgtredirect_output(tcfgtmodetoutfmtterrfmt((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt fixup_outputås c CsXttjjdƒƒr)tjdƒdS|s;tj}n|sMtj}n|rptjd||ƒ|j ddƒ\}}|dks–|dkrÃd}|dkr±d }nt ||ƒ}nF|d krùt j |d t d t jƒ}|j}ntd |ƒ‚|r.tj|jƒ|jƒƒn||krptjd||ƒtj|jƒ|jƒƒdSn|rTtjd||ƒ|j ddƒ\}}|dks¹|dkræd}|dkrÔd }nt ||ƒ}nF|d krt j |d t d t jƒ}|j}ntd|ƒ‚|rTtj|jƒ|jƒƒqTndS(Nt_CLOUD_INIT_SAVE_STDOUTs5Not redirecting output due to _CLOUD_INIT_SAVE_STDOUTsRedirecting %s to %sR†it>s>>tabtwbt|tshelltstdins"Invalid type for output format: %ss!Invalid type for error format: %s(RºRItenvironR)R3RŸRþRyRzRÖRt subprocesstPopenRtPIPERYt TypeErrortdup2tfileno( RPRQto_outto_errROtargtowithtnew_fptproc((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyRMøsN            RCc Cs·|p dg}d}|r*t|ƒ}n|dk rK|dd|7}n|j|pZdƒ|j|pmdƒ|j|p€dƒ|j|p“dƒ|j|p¦dƒtj|ƒS(NRCR*s%s(R™RDRßturlparset urlunparse( tschemethosttportRJtparamstquerytfragmenttpiecestnetloc((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytmake_url+s cCs~|rt|ƒ}ni}x\|D]T}|r"tj|ƒ}|sRtjƒ}ntj|ƒ}|j||ƒ}q"q"W|S(N(treversedRtdict_extract_mergerstdefault_mergerst constructtmerge(tsrcstreverset merged_cfgRNtmergers_to_applytmerger((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyt mergemanydict@s ccs7tjƒ}ztj|ƒ|VWdtj|ƒXdS(N(RItgetcwdtchdir(tndirtcurr((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR~Os    ccs-tj|ƒ}z |VWdtj|ƒXdS(N(RItumask(tn_msktold((s2/usr/lib/python2.7/site-packages/cloudinit/util.pyR�Ys cCsdj|d|ddd|ƒS(Ns{0:{fill}{align}{size}}tfilltalignt^tsize(tformat(RSR„tmax_len((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytcenterbscCs!tjd|ƒtj|ƒdS(NsRecursively deleting %s(R3RŸtshutiltrmtree(RJ((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytdel_dirgsc Csx|rtjj|ƒ rdSg}g}|dkr>g}nEt|tƒr_t|ƒg}n$t|tƒrw|}n tdƒ‚x½ttj |ƒƒD]¦}tjj ||ƒ}tjj |ƒr™tj |tj ƒr™|j|ƒyt||gdtƒWq?tk r;}ttd||jƒ|j|ƒq?Xq™q™W|rt|rttdt|ƒt|ƒfƒ‚ndS(Ns%exe_prefix must be None, str, or listRsFailed running %s [%s]s.Runparts: %s failures in %s attempted commands(RIRJtisdirRDRER™RµR^RÒtlistdirR5RötaccesstX_OKRßRR”R6R¬R3Rxt RuntimeErrorR2( tdirpt skip_no_existt exe_prefixtfailedt attemptedtprefixtexe_nametexe_pathR¥((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytrunpartsls.    '  icCsjy4t|||ƒ\}}||d<||d, . Values can be none when metadata_only is True and no cfg or metadata provides hostname info. tfqdnthostnameRôit metadata_only(RRÖRøt get_hostnameR(RNtcloudRáRßRà((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytget_hostname_fqdnKs  "%   s /etc/hostscCsÄd}y¦xŸt|ƒjƒD]‹}|jdƒ}|dkrM|d|!}n|jƒ}|seqn|jƒ}t|ƒdkr‰qn||dkr|d}PqqWWntk r¿nX|S(s¤ For each host a single line should be present with the following information: IP_address canonical_hostname [aliases...] Fields of the entry are separated by any number of blanks and/or tab characters. Text from a "#" character until the end of the line is a comment, and is ignored. Host names may contain only alphanumeric characters, minus signs ("-"), and periods ("."). They must begin with an alphabetic character and end with an alphanumeric character. Optional aliases provide for name changes, alternate spellings, shorter hostnames, or generic hostnames (for example, localhost). t#iiiiN(RDRÐR/RøRRÖR2R‚(RàtfilenameRßR:thashposR ((s2/usr/lib/python2.7/site-packages/cloudinit/util.pytget_fqdn_from_hostsjs$      c CsWtdkrötƒ}d }i}x°|D]¨}y‚tj|dddtjtjƒ}g|| LABEL=