fddlZddlZddlmZmZmZmZddlmZeje Z dZ ejdZdZdZdZGd d ej$Zy) N)handlersmergerssafeyamlutil) PER_ALWAYSz Merge-Typezdict(replace)+list()+str()z #cloud-configz#cloud-config-jsonpz*# Cloud-config part ignored SCHEMA_ERROR: c>eZdZeegZdZdZdZdZ dZ dZ dZ y) CloudConfigPartHandlerc tjj|tdd|_|j d|_d|vr|j |d|_g|_g|_y)N)version cloud_configcloud_config_path) rHandler__init__r cloud_buf get_ipathcloud_fn file_nameserror_file_names)selfpaths_kwargss A/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.pyrzCloudConfigPartHandler.__init__3sa!!$ A!>7 ' )!OOG4G,HIDM "c\|jsyg}|jra|jdt|jz|jD]}|sd}|jd|z|jd|jD]}|jt ||j Htdg}|j||jtj|j ng}tj|jdj|dy)Nz# from %s files?z# %s i)rrappendlenrMERGED_PART_SCHEMA_ERROR_PREFIXr CLOUD_PREFIXextendrdumpsr write_filejoin)r file_linesfn error_fileliness r_write_cloud_configz*CloudConfigPartHandler._write_cloud_config<s}}  ??   /3t3GH Ioo 1B!!&B-0 1   b !// PJ   !@ A*N O P >> %E LL $ LL7 8E  tyy'7?rcVd}tdtzfD]}|j|d}|s|}ntj|}| t dt j |}t j|}g} | j|| j|| st} || fS)NrzX-%szempty cloud config) MERGE_HEADERgetr load_yaml ValueErrorrdict_extract_mergersstring_extract_mergersr# DEF_MERGERS) rpayloadheadersmerge_header_headershtmp_h payload_yaml mergers_yamlmergers_header all_mergerss r_extract_mergersz'CloudConfigPartHandler._extract_mergersVs!, 78 AKK2&E',$  ~~g.  12 233LA  778LM <(>*%Kk**rc|j}tj|t}tj j |}tjd||j|jd|_ y)N)prefixz!Merging by applying json patch %sF)in_place) lstriprstrip_prefix_suffix JSONP_PREFIX jsonpatch JsonPatch from_stringLOGdebugapplyr)rr4patchs r _merge_patchz#CloudConfigPartHandler._merge_patchms_ .."**7<H##//8 5u=T^^eDrc|j||\}}tjd|tj|}|j |j ||_y)NzMerging by applying %s)r=rGrHr constructmerger)rr4r5r9 my_mergersmergers r _merge_partz"CloudConfigPartHandler._merge_partxsN%)%:%:7G%L"z *J7"":.dnnlCrc g|_d|_y)N)rr)rs r_resetzCloudConfigPartHandler._reset~src|tjk(r|jy|tjk(r!|j |jy |j |j si|_|tjtk(r|j|n|j||dD]}|j|d}|j j|jy#t$rJ}|jj|jt j#d||Yd}~yd}~wt$$rt'j(t d|YywxYw)N)r   z2Failed at merging in cloud config part from %s: %sz.Failed at merging in cloud config part from %s)r CONTENT_STARTrS CONTENT_ENDr+rrINCLUSION_TYPES_MAPrCrKrQreplacerstripr0rrGwarning Exceptionrlogexc) rdatactypefilenamer4 frequencyr5ierrs r handle_partz"CloudConfigPartHandler.handle_parts, H** * KKM  H(( (  $ $ & KKM  ~~%T__!#44\BB!!'*  '2' 4#++As3 4 OO " "8>>#3 4   ! ! ( ()9 : KKD     KKEx  s BC:: E2AE'E21E2N) __name__ __module__ __qualname__r"rCprefixesrr+r=rKrQrSrfrrr r .s4l+H#@4+. ED rr )loggingrD cloudinitrrrrcloudinit.settingsr getLoggerrgrGr-r2r3r"rCr!rr rkrrrpsf77)g! &-g,,-IJ  $ "NrX--rr