ó oBú]c@s€dZddlZddlmZddlmZddlmZddlmZedgƒZ d„Z d „Z d „Z dS( sQ Debug ----- **Summary:** helper to debug cloud-init *internal* datastructures. This module will enable for outputting various internal information that cloud-init sources provide to either a file or to the output console/log location that this cloud-init has been configured with when running. .. note:: Log configurations are not output. **Internal name:** ``cc_debug`` **Module frequency:** per instance **Supported distros:** all **Config keys**:: debug: verbose: true/false (defaulting to true) output: (location to write output, defaulting to console + log) iÿÿÿÿN(tStringIO(t type_utils(tutil(tsafeyamltlog_cfgscCsutƒ}|jddƒ|jdƒ|j|jddƒƒ|jdƒ|jddƒ|jdƒ|jƒS(Nt-iPs t (Rtwritetcentertgetvalue(ttexttheader((s=/usr/lib/python2.7/site-packages/cloudinit/config/cc_debug.pyt _make_header)s    cCs%tj|dtdtƒ}|jƒS(Ntexplicit_startt explicit_end(RtdumpstFalsetrstrip(tobjR ((s=/usr/lib/python2.7/site-packages/cloudinit/config/cc_debug.pyt_dumps4scCsxtj|ddtƒ}|r1|d}t}ntj|dƒ}|s]|jd|ƒdStj|ƒ}xtD]}|j|dƒqsWt |ƒ} x0| D](}|j dƒr |j|dƒq q Wt ƒ} | j t d ƒƒ| j t|ƒƒ| j d ƒ| j t d ƒƒ| j t|jjƒƒ| j d ƒ| j t d ƒƒ| j d tj|jƒƒ| j dtj|jƒƒ| j d|jtƒƒ| j d|jƒƒ| j d|jƒƒ| j d|jƒ| jƒ} g} x+| jƒD]} d| } | j| ƒq W|rRtj|dj| ƒddƒn"tjdj| ƒdtdtƒdS(s'Handler method activated by cloud-init.tdebugtverbosetdefaultitoutputs3Skipping module named %s, verbose printing disabledNt_tConfigs tMetaDatatMiscsDatasource: %s s Distro: %s s Hostname: %s sInstance ID: %s s Locale: %s sLaunch IDX: %s s ci-info: %s ti¤twtconsoletstderr(sdebugsverbose(sdebugsoutput(Rtget_cfg_by_pathtTrueRtcopytdeepcopyt SKIP_KEYStpoptNonetlistt startswithRRR Rt datasourcetmetadataRtobj_nametdistrot get_hostnametget_instance_idt get_localet launch_indexR t splitlinestappendt write_filetjoint multi_logR(tnametcfgtcloudtlogtargsRtout_filetdump_cfgtktall_keystto_printtcontentstcontent_to_filetline((s=/usr/lib/python2.7/site-packages/cloudinit/config/cc_debug.pythandle9sN            "( t__doc__R"tsixRt cloudinitRRRt frozensetR$R RRC(((s=/usr/lib/python2.7/site-packages/cloudinit/config/cc_debug.pyts