/usr/lib/python2.6/site-packages/cloudinit
NameSizeModeActions
config/-0755rm
distros/-0755rm
filters/-0755rm
handlers/-0755rm
mergers/-0755rm
sources/-0755rm
cloud.py34970644editdlrm
cloud.pyc37230644editdlrm
cloud.pyo37230644editdlrm
cs_utils.py33210644editdlrm
cs_utils.pyc42660644editdlrm
cs_utils.pyo42660644editdlrm
ec2_utils.py65770644editdlrm
ec2_utils.pyc57550644editdlrm
ec2_utils.pyo57550644editdlrm
helpers.py150450644editdlrm
helpers.pyc166000644editdlrm
helpers.pyo166000644editdlrm
importer.py23170644editdlrm
importer.pyc15020644editdlrm
importer.pyo15020644editdlrm
log.py46200644editdlrm
log.pyc37000644editdlrm
log.pyo37000644editdlrm
netinfo.py68540644editdlrm
netinfo.pyc53470644editdlrm
netinfo.pyo53470644editdlrm
patcher.py18200644editdlrm
patcher.pyc15310644editdlrm
patcher.pyo15310644editdlrm
safeyaml.py10600644editdlrm
safeyaml.pyc8910644editdlrm
safeyaml.pyo8910644editdlrm
settings.py21110644editdlrm
settings.pyc10350644editdlrm
settings.pyo10350644editdlrm
signal_handler.py23780644editdlrm
signal_handler.pyc23260644editdlrm
signal_handler.pyo23260644editdlrm
ssh_util.py106360644editdlrm
ssh_util.pyc100720644editdlrm
ssh_util.pyo100720644editdlrm
stages.py279440644editdlrm
stages.pyc213990644editdlrm
stages.pyo213990644editdlrm
templater.py13620644editdlrm
templater.pyc10030644editdlrm
templater.pyo10030644editdlrm
type_utils.py12240644editdlrm
type_utils.pyc5240644editdlrm
type_utils.pyo5240644editdlrm
url_helper.py128520644editdlrm
url_helper.pyc112950644editdlrm
url_helper.pyo112950644editdlrm
user_data.py131430644editdlrm
user_data.pyc95690644editdlrm
user_data.pyo95690644editdlrm
util.py622590644editdlrm
util.pyc574450644editdlrm
util.pyo574450644editdlrm
version.py8540644editdlrm
version.pyc5610644editdlrm
version.pyo5610644editdlrm
__init__.py9250644editdlrm
__init__.pyc1410644editdlrm
__init__.pyo1410644editdlrm
Edit: /usr/lib/python2.6/site-packages/cloudinit/util.pyc (57445B)
3[c+@sddklZddkZddkZddkZddkZddkZddkZddkZddk Z ddk Z ddk Z ddk Z ddk Z ddkZddkZddkZddkZddkZddkZddkZddkZddkZddkZddkZddkZddkZddklZddklZddklZddkl Z ddkl!Z!ddkl"Z"dd kl#Z#dd k$l%Z%da'ei(e)Z*hd e i+6Z,d ei-ei.Z/d dgZ0dZ1hdd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6d&d'6d(d)6d*d+6d,d-6d.d/6d0d16Z2d2e3fd3YZ4d4e5fd5YZ6d6e7fd7YZ8d8e7fd9YZ9d:Z:d;Z;dd<Z<dd=Z=dd>Z>d?dd@Z?dAZ@dBZAdCZBdDZCeDdEZEdFZFdGZGeDeDdeiHdHZIeJfdIZKdJZLeMdKZNddLZOdMZPddNZQddOZRdPZSdddQZTddRdRdRdRdSZUeMdTZVeiWdUZXeiWdVZYeiWdWZZdXZ[dYZ\eDddZZ]dRdRd[d\Z^dd]Z_d[d^ddd_dddd`Z`deJfdaZadRdRd[d^dbdcZbddZcdeZdddfZedgZfdhZgdidjZhddmddnZidoZjdpZkdqZldrZmdsZndtZoddudeMddvZpdwZqdxZrdeMdyZsdzZtd{dd|Zuddd}Zvddd~ZwdZxdZyddZzdZ{dZ|dZ}ddZ~dZdZddZeiWdZdZdeMdeDdZdZeMdZdZdZdZdZdZddZdZdZdddZdZdddeDeMeMdZdddZdZeDdZdddZdZdZdZdZdZe*dZdZdZe*dZdZddeMdZdZdde ii+dZdeMdZdZdZdZdZdS(i(tStringION(timporter(tlog(tmergers(tsafeyaml(t type_utils(t url_helper(tversion(t CFG_BUILTINt_s_-.()srunning-in-containerslxc-is-containers/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-versiontProcessExecutionErrorcBs)eZdZdddddddZRS(sr%(description)s Command: %(cmd)s Exit code: %(exit_code)s Reason: %(reason)s Stdout: %(stdout)r Stderr: %(stderr)rcCs|p d|_n ||_|p d|_n ||_t|ttfp d|_n ||_|p d|_n ||_|p d|_n ||_|o ||_n d|_|i h|id6|id6|id6|id6|id6|id 6}t i ||dS( Nt-s'Unexpected error while running command.tt descriptiontcmdt exit_codetstdouttstderrtreason( RRt isinstancetlongtintR R"R!R#t MESSAGE_TMPLtIOErrort__init__(tselfR!R"R RRR#tmessage((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyR)ps4                  N(t__name__t __module__R'tNoneR)(((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRgst SeLinuxGuardcBs&eZedZdZdZRS(cCsKytid|_Wntj od|_nX||_||_dS(Ntselinux(Rt import_moduleR0t ImportErrorR.tpatht recursive(R*R3R4((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyR)s  cCs'|io|iiotStSdS(N(R0tis_selinux_enabledtTruetFalse(R*((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt __enter__scCs|io|iiotiitii|i}t|}t}yGti|}t i |jo$|ii ||t i t }nWnt j onX|o3tid||i|ii|d|iqndS(Ns,Restoring selinux mode for %s (recursive=%s)R4(R0R5tosR3trealpatht expandusertstrR7tlstattstattST_MODEt matchpathconR6tOSErrortLOGtdebugR4t restorecon(R*t excp_typet excp_valuetexcp_tracebackR3t do_restoretstats((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt__exit__s!   (R,R-R7R)R8RJ(((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyR/s tMountFailedErrorcBseZRS((R,R-(((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRKstDecompressionErrorcBseZRS((R,R-(((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRLsc sNti|tidit_fd}td|S(NsCreated temporary file %scsiidS(N(tunlinktname((tfh(s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt unlink_nowsRP(ttempfiletNamedTemporaryFileRBRCRNtdel_fileRMtsetattr(tkwargsRP((ROs2/usr/lib/python2.6/site-packages/cloudinit/util.pytExtendedTemporaryFiles  cGsti}|djoOy||tidWqttdti|tidqXntid|ti|dS(Nis&Failed forking and calling callback %sis(Forked child %s who will run callback %s(R9tforkt_exittlogexcRBRtobj_nameRC(tchild_cbtargstfid((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytfork_cbs     cCsjt|to |tjSddddg}|o||}nt|ii|jotStS(Nttruet1tontyes(R$tboolR6R<tlowertstripR7(tvaltaddonst check_set((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytis_trues cCsjt|to |tjSddddg}|o||}nt|ii|jotStS(Ntofft0tnotfalse(R$RcR7R<RdReR6(RfRgRh((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytis_falses cCs.|ptSt|to|St||S(N(R7R$RcRi(RfRg((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyttranslate_bools i cCsU|ptiti}ndig}td|D]}|ti|q5~S(NRi(tstringtletterstdigitstjointrangetrandomtchoice(tstrlent select_fromt_[1]t_x((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytrand_str scCsQytt|dhSWn0tj o$}|itijohSnXdS(Ntdefault(t load_yamlt load_fileR(terrnotENOENT(tfnamete((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt read_confs cGstt|S(N(tsortedt uniq_merge(tlists((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytuniq_merge_sorted scGsg}x||D]t}t|ttfoK|iid}g}|D]}t|o ||qIqI~}n|i|q Wt|S(Nt,(R$R<t basestringRetsplittlentextendt uniq_list(Rt combined_listta_listRyta((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyR,s6cCsx,tiD]\}}|i||}q Wg}x,|D]$}|tjo|i|q<q<Wx |D]}|i|d}qkW|i}|S(NR(tFN_REPLACEMENTSt iteritemstreplacet FN_ALLOWEDtappendRe(tfntktvtremovals((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytclean_filename7s   c Csy^tt|}titiddd|ii}z|~}|i SWdQXWn3t j o'}|o|St t|nXdS(Ntrbi( RR<t contextlibtclosingtgziptGzipFileR.RJR8treadt ExceptionRL(tdatatquiettbufRytghR((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt decomp_gzipDs8cCs|pdS|idd}|di}t|djo|di}nd}| p |djp|idjo d}n| p |djp|idjo d}n||fS(Nt:iiis-1tnone(NN(R.RReRRd(tug_pairt ug_partedtutg((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytextract_usergroupPs( ( cCst}xtitii|dD]p}tii|pq(ntii|dd!}|i}|o$|iddjo|||s>>tabRt|tshelltstdins"Invalid type for output format: %ss!Invalid type for error format: %s(RiR9tenvirontgetRBRCRR!R"RRt subprocesstPopenR6tPIPERRtdup2tfileno( RRto_outto_errRtargtowithtnew_fptproc((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRsN              Rc Csg}|i|pdd}|ot|}n|dj o|dd|7}n|i|pd|i|pd|i|pd|i|pd|i|pdti|S(NRRs%s(RR<R.turlparset urlunparse( tschemethosttportR3tparamstquerytfragmenttpiecestnetloc((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytmake_url!s cCs|ot|}nh}x`|D]X}|oKti|}|pti}nti|}|i||}q$q$W|S(N(treversedRtdict_extract_mergerstdefault_mergerst constructtmerge(tsrcstreverset merged_cfgRtmergers_to_applytmerger((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt mergemanydict7sccs7ti}zti||VWdti|XdS(N(R9tgetcwdtchdir(tndirtcurr((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRFs    ccs-ti|}z |VWdti|XdS(N(R9tumask(tn_msktold((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRPs cks*ti|}z |VWdt|XdS(N(RQtmkdtemptdel_dir(RUttdir((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyttempdirYs cCsdi|d|ddd|S(Ns{0:{fill}{align}{size}}tfilltalignt^tsize(tformat(RR!tmax_len((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytcenterescCs!tid|ti|dS(NsRecursively deleting %s(RBRCtshutiltrmtree(R3((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRjsc Cs|otii| odSg}g}|djo g}nJt|tot|g}n't|to |}n tdxtti |D]}tii ||}tii |o}ti |ti og|i|yt||gdtWqMtj o,}ttd||i|i|qMXqqW|o-|o&tdt|t|fndS(Ns%exe_prefix must be None, str, or listtcapturesFailed running %s [%s]s.Runparts: %s failures in %s attempted commands(R9R3tisdirR.R$R<RRRtlistdirRsRtaccesstX_OKRtsubpR7RRYRBR t RuntimeErrorR( tdirpt skip_no_existt exe_prefixtfailedt attemptedtprefixtexe_nametexe_pathR((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytrunpartsos0    ) icCsny4t|||\}}||d<||dR?R@RRt file_retriestud_urltmd_urltmd_respRAtmd_strtud_respRBtud_str((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyR:s(      c Cstti|dt}g}|D]!}|ido ||q&q&~}g}|D]3}tiitii||o ||q[q[~}g}x0|D](}|it tii||qWt |S(NRs.cfg( RR9R,R6tendswithR3RRsRRR(tconfdtconfsRytft_[2]tcfgsR((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt read_conf_ds56&cCst|}t}d|jod|d}|oOt|ttfp#td|ti|fqt|i}qn&t i i d|od|}n| pt i i | o|St |}t ||gS(Ntconf_ds8Config file %s contains 'conf_d' with non-string type %ss%s.d(RR7R$R<RRRRZReR9R3R+RtR(tcfgfileRRot confd_cfg((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytread_conf_with_confd#s    c Cs|djo t}nd}d}t|}t|}t|}g}|i|}x|djoq|i|||}|djo |}n|i||||!iidd|i|||}qbWdi|S(Nscc:tend_ccis\ns (R.t get_cmdlineRRRRVRRs( tcmdlinet tag_beginttag_endtbegin_ltend_ltclenttokenstbegintend((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytread_cc_from_cmdline;s$          cCsF|id}|djp||ddjo|S|iddS(Ns iis s (RR(RQtpos((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytdos2unixZs"cCsd|jo-|d}t|d|idd}nd|jo?|diddjo%|d}|d|id }n:|idt}d|jo|d}n |i}||fS(NtfqdnthostnameRi(RRRt get_hostnameR6(RtcloudRR((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytget_hostname_fqdnbs  #'   s /etc/hostscCsd}yxt|iD]}|id}|djo|d|!}n|i}|pqn|i}t|djoqn||djo|d}PqqWWntj onX|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(R.R~t splitlinesRReRRR((RtfilenameRtlinethashposR((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytget_fqdn_from_hostszs&     scloud-config-urlR[s #cloud-configcCs|djo t}nt|}d}d}x*|D]"}||jo||}Pq9q9W|pdSt|}|ii|o!|io||t|fS||dfS(N(NNN(R.Rztkeyval_str_to_dictR]RQRWRfR<(tnameststartsR{RR[Rtresp((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytget_cmdline_urls         c Csmtdjot}ddtf}h}x|D]}yti|dddtiti}g||ti|d}|ddd} | tjotStSWn ti ti fj otSXdS(sdetermine if a url is resolvable, return a boolean This also attempts to be resilent against dns redirection. Note, that normal nsswitch resolution is used here. So in order to avoid any utilization of 'search' entries in /etc/resolv.conf we have to append '.'. The top level 'invalid' domain is invalid per RFC. And example.com should also not exist. The random entry will be resolved inside the search list. sdoes-not-exist.example.com.sexample.invalid.is%s: %ssdetected dns redirection: %siN(t_DNS_REDIRECT_IPR.tsetR{tsockett getaddrinfot SOCK_STREAMt AI_CANONNAMERtaddtgaierrorterrorRBRCR7R6( RNtbadipstbadnamest badresultstinametresultt_famt_stypet_prototcnametsockaddrtaddr((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt is_resolvables8      cCsti}|S(N(Rt gethostname(R((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRs cCs3yti|dSWntij odSXdS(Ni(Rt gethostbyaddrtherrorR.(tip((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyRscCstti|iS(s5determine if this url is resolvable (existing or ip).(RRR(R[((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytis_resolvable_urlscCsAx:|D]2}yt|o|SWqtj oqXqWdS(sc Search through a list of mirror urls for one that works This needs to return quickly. N(RRR.(t candidatestcand((s2/usr/lib/python2.6/site-packages/cloudinit/util.pytsearch_for_mirrors   cCsmttiidodSttiii}z,|~}ti|i t i i WdQXdS(s reopen stdin as /dev/null so even subprocesses or other os level things get /dev/null as input. if _CLOUD_INIT_SAVE_STDIN is set in environment to a non empty and true value then input will not be closed (useful for debugging). t_CLOUD_INIT_SAVE_STDINN( RiR9RRRtdevnullRJR8RRRR(Rytfp((s2/usr/lib/python2.6/site-packages/cloudinit/util.pyt close_stdins&tdevicec Csdg}g}|o|id|n|o|id|n|o|iddgn|o|id|n|o|i|n||}t|ddd g\}} g} x8|iD]*} | i} | o| i| qqW| S( s find devices matching given criteria (via blkid) criteria can be *one* of: TYPE= LABEL=