܍~c&7 UdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z m Z m Z ddlmZddlmZddlmZmZdd lmZdd lmZd Zegd Zed gZdZdZdZdZ dZ!dZ"dddedde"dddddd Z#e$dgZ%e$gdZ&e$ej'e#(e%e&gdZ)d Z*d!Z+egd"Z,eZ-d#gZ.d$d%d&ed'e.ed(ge-d)gd*Z/ee0d+<ee/Zd,Z1d-Z2d.e3d/ed0ed1ed2e4d3df d4Z5d5Z6d6ed2e4fd7Z7 d>, *+++++,,,,c t}|D]g\}}|tvr|d|%|d||<-|t vrt j||||<Ot j||||<h| t j t j|d|t j|dd|d|dd|S) Nz'Skipping unknown chef template key '%s'r#r8r$rr"r%) generated_byr#r$r"r%) CHEF_RB_TPL_DEFAULTScopyitemsCHEF_RB_TPL_KEYSdebugCHEF_RB_TPL_BOOL_KEYSr r:get_cfg_option_strupdate make_header)iidr@rAparamskvs rCget_template_paramsrUs& ! & & ( (F.."" A AA $ $ $ II? C C C  9F1II))) 4XqAAq  3Ha@@q  MM ,..0+s 2-#<0'(9:     MrEr.cfgcloudrAargsreturncbd|vr|d|dS|d}tj|d}|stt}t j|tD]}tj|| dt}| d} | rQ| dkrtj || n5tj |s|d||d } | rt#|j} t)| ||} t+} | D]B\}}|t.vr4|r2| tj |Ctj| t7j| t:| n|d t:tj|d t> }|s| d nsi}d|vr |d|d<d|vr7|d}t|!D] }||||<tj |tEj#|tj$|dd }tKj&tN}|r|rtQ|||}n|rtj$|dd }nd}|r"tS||tU||dSdS)z'Handler method activated by cloud-init.r,z8Skipping module named %s, no 'chef' key in configurationN directoriesrrsystemzWchef validation_cert provided as 'system', but validation_key path '%s' does not exist.zchef_client.rbz&No template found, not rendering to %sfirstboot_pathr8z7First boot path empty, not writing first boot json filerun_listinitial_attributes force_installFexec)+rLr get_cfg_option_listlist CHEF_DIRS itertoolschainREQUIRED_CHEF_DIRS ensure_dirgetr> write_filer;r<r=warningget_template_filenamestr datasourceget_instance_idrUsetrJCHEF_RB_TPL_PATH_KEYSadddirname ensure_dirsrrender_to_file CHEF_RB_PATHrN CHEF_FB_PATHinfokeysjsondumpsr:ris_exeCHEF_EXEC_PATH install_chefrun_chefrD)r.rVrWrArXr@ chef_dirsd vkey_pathvcert template_fnrQrR param_pathsrSrT fb_filename initial_jsonr_r` installedruns rChandlerso S F    6{H(=AAI $OO _Y(: ; ;  -/GHHI LL* + +E  H   OIu - - - - **  KK;   --.>??K L%"224455$S(C88ee llnn 4 4FQ)))a) 2 2333 %%% lFCCCC !? ,113344 8 8"4Q"7 Q  TZ %=%=>>>,/5M N++I  5(C00 &xGGG %3h$$$$$%%rEc|dtg}d|vr|d}t|ttfr||nt|t r||nX|dt||tn|ttj |ddS)NzRunning chef-clientexec_argumentszRUnknown type %s provided for chef 'exec_arguments' expected list, tuple, or stringFcapture) rLr} isinstancerctupleextendrmappendrktypeCHEF_EXEC_DEF_ARGSr)r@rAcmdcmd_argss rCrrsII#$$$  C8##,- hu . . + JJx # & & + JJx KKX     JJ) * * * * %&&&Ic5!!!!!!rEdistroc |}|dd}tj|d5}t j||}|d|tj ||dtj d d|i|cd d d S#1swxYwYd S) aWrite blob to a tempfile, and call subp with args, kwargs. Then cleanup. 'basename' as a kwarg allows providing the basename for the file. The 'args' argument to subp will be updated with the full path to the filename as the first argument. basename subp_blobT)dir needs_exeri)moderXN) rIpoprtempdirget_tmp_exec_pathr;r<joininsertr rjr)blobrrXkwargsrtmpdtmpfs rCsubp_blob_in_tempfiler*s 99;;Dzz*k22H    $ $ & &$   . w||D(++ At d////y--d-f-- ..................sA CCCc|t}|t}|g}nd|g}tj||j}t |||ddS)agInstall an omnibus unified package from url. @param url: URL where blob of chef content may be downloaded. Defaults to OMNIBUS_URL. @param retries: Number of retries to perform when attempting to read url. Defaults to OMNIBUS_URL_RETRIES @param omnibus_version: Optional version string to require for omnibus install. Nz-v)urlretrieszchef-omnibus-installF)rrrXrr) OMNIBUS_URLOMNIBUS_URL_RETRIESrreadurlcontentsr)rrromnibus_versionrXcontents rCinstall_chef_from_omnibusr=sm {%o& S':::CG   '    rEcPtj|dd}tj|dd}|dkr_tj|dd}tj|dt}t |||jtj|dd }n|dkr|jd nr|d krTtj|d }t|jtj|d tj|d|n| d|d}|S)N install_typepackagesraFr8gemsversion ruby_versionT)r,omnibusr omnibus_urlomnibus_url_retries)rrrrzUnknown chef install type '%s') r rNr:RUBY_VERSION_DEFAULTinstall_chef_from_gemsrinstall_packagesrget_cfg_option_intrk)rWr@rArr chef_versionrrs rCr~r~\sF*.*L  "8VU C C CCv.xDII . n&:   |\5<HHH&xFFF  # # %%i0000  " "1(>. ) )G &5~FFF 7>>/ * *I ',6HHH  ,&       rE)NNN)<__doc__rerzr;loggingrtextwrapr cloudinitrrrrr cloudinit.cloudr cloudinit.configr cloudinit.config.schemar r cloudinit.distrosrcloudinit.settingsrrrrdrgrrr>CHEF_ENCRYPTED_DATA_BAG_PATHCHEF_ENVIRONMENTrwrH frozensetrMrqrfryrKrvr}rr3r1r5__annotations__rDrUrmrcrrrrr~rrrrErCrs>== CCCCCCCCCCCCCC!!!!!!######<<<<<<<<$$$$$$)))))) E   U4 5D) &..( (+*!% " ;-00!   9IO!!##      % 'U;;;<<  '   ?6 A   0  4 &xW,,j,,,\ ,t  ,,,   FQ% Q%Q%#(Q%/5Q%=AQ% Q%Q%Q%Q%h""",..d....(=A >B" " " " " rE