x[hddlZddlZddlmZmZmZmZddlmZeje Z dZ dZ dZdZGdd ej Zy) N)handlersmergerssafeyamlutil) PER_ALWAYSz Merge-Typez #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__2sa!!$ 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?rctd}tdtzfD]}|j|d}|s|}ntj|}| t dt j |}t j|}g} | j|| j|| st jd} || fS)NrzX-%szempty cloud configzdict(replace)+list()+str()) MERGE_HEADERgetr load_yaml ValueErrorrdict_extract_mergersstring_extract_mergersr#) rpayloadheadersmerge_header_headershtmp_h payload_yaml mergers_yamlmergers_header all_mergerss r_extract_mergersz'CloudConfigPartHandler._extract_mergersUs!, 78 AKK2&E',$  ~~g.  12 233LA  778LM <(>*!88,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)rr3patchs r _merge_patchz#CloudConfigPartHandler._merge_patchns_ .."**7<H##//8 5u=T^^eDrc|j||\}}tjd|tj|}|j |j ||_y)NzMerging by applying %s)r<rFrGr constructmerger)rr3r4r8 my_mergersmergers r _merge_partz"CloudConfigPartHandler._merge_partysN%)%:%:7G%L"z *J7"":.dnnlCrc g|_d|_y)N)rr)rs r_resetzCloudConfigPartHandler._resetsrc|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_STARTrR CONTENT_ENDr+rrINCLUSION_TYPES_MAPrBrJrPreplacerstripr0rrFwarning Exceptionrlogexc) rdatactypefilenamer3 frequencyr4ierrs 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"rBprefixesrr+r<rJrPrRrerrr r -s4l+H#@4+2 ED rr )loggingrC cloudinitrrrrcloudinit.settingsr getLoggerrfrFr-r"rBr!rr rjrrrosS77)g! & $ "NtX--tr