ó 'KXc@sÀddlZddlmZddlmZddlmZejdƒZeje ƒZ dZ dZ dZ d efd „ƒYZd efd „ƒYZd „Zd„Zd„Zd„ZdS(iÿÿÿÿN(timporter(tlog(t type_utilss#(^[a-zA-Z_][A-Za-z0-9_]*)\((.*?)\)$slist()+dict()+str()tm_tMergert UnknownMergercBseZd„Zd„ZRS(cCs|S(N((tselft _meth_wantedtvaluet _merge_with((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt_handle_unknown%scCs©tj|ƒ}|jƒ}d|}d}||g}t||ƒrXt||ƒ}n|sz|j}|jd|ƒntj d|tj|ƒ|j |ƒ||ŒS(Ns_on_%sis0Merging '%s' into '%s' using method '%s' of '%s'( Rtobj_nametlowertNonethasattrtgetattrR tinserttLOGtdebugt__name__(Rtsourcet merge_witht type_namet method_nametmethtargs((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pytmerge/s      (Rt __module__R R(((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR!s t LookupMergercBs&eZdd„Zd„Zd„ZRS(cCs2tj|ƒ|dkr%g|_n ||_dS(N(Rt__init__R t_lookups(Rtlookups((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyRAs   cCsdt|jƒS(NsLookupMerger: (%s)(tlenR(R((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt__str__HscCsxd}xF|jD];}t||ƒrt||ƒ}tjd||ƒPqqW|sktj||||ƒS|||ƒS(Ns:Merging using located merger '%s' since it had method '%s'(R RRRRRRR (Rt meth_wantedRRRtmerger((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR Ps    N(RRR RR!R (((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR@s  cCsg}|jddƒ}|dkr9|jddƒ}n|dkrI|St|ttfƒrht|ƒSx—|D]}t|tƒr³|d}|jddƒjƒ}|d}n/|d}t |ƒdkrÜ|d }ng}|ro|j ||fƒqoqoW|S( Nt merge_howt merge_typetnamet-t_tsettingsiii( tpopR t isinstancetstrt basestringtstring_extract_mergerstdicttreplacetstripR tappend(tconfigtparsed_mergerst raw_mergerstmR&topts((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pytdict_extract_mergers`s(        cCsíg}xà|jdƒD]Ï}|jƒjƒ}|jddƒ}|sLqntj|ƒ}|szd|}t|ƒ‚n|jƒ\}}|jƒjdƒ}g|D]$}|jƒr¨|jƒjƒ^q¨}|j||fƒqW|S(Nt+R'R(s1Matcher identifer '%s' is not in the right formatt,( tsplitR R1R0t NAME_MTCHtmatcht ValueErrortgroupsR2(R$R4tm_nameR=tmsgtm_opsR6((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyR.ys 1cCstttƒƒS(N(ttupleR.tDEF_MERGE_TYPE(((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pytdefault_mergersŽsc Cs÷g}x«|D]£\}}|jtƒs;tt|ƒ}ntj|tgtgƒ}|s{d|tf}t|ƒ‚q tj|dƒ}t |tƒ}|j ||fƒq Wg}t |ƒ} x*|D]"\} } |j | | | ƒƒqÍW| S(Ns;Could not find merger module named '%s' with attribute '%s'i( t startswitht MERGER_PREFIXR,Rt find_moduleRt MERGER_ATTRt ImportErrort import_moduleRR2R( R4t mergers_to_beR@RBt merger_locsRAtmodtmod_attrtmergerstroottattrR7((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyt construct’s&    (tret cloudinitRRtloggingRtcompileR<t getLoggerRRRDRGRItobjectRRR8R.RERS(((sG/opt/freeware/lib/python2.7/site-packages/cloudinit/mergers/__init__.pyts