Ë
    x[h}&  ã                   óX  — d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
  ej                  e«      ZdZdZdZdZeegZdgZd	Zd
ZdddddddddddddœZ e eej3                  «       «      d„ ¬«      Z G d„ de j6                  ¬«      Zd„ Zd„ Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$e
fd$„Z%d&d%„Z&y)'é    N)ÚimporterÚ
type_utilsÚutil)ÚFREQUENCIESÚ
PER_ALWAYSÚPER_INSTANCEztext/x-not-multipartzapplication/octet-streamÚ__end__Ú	__begin__ztext/part-handlerzpart-handler-%03dz	part-%03dztext/x-include-urlztext/x-include-once-urlztext/x-shellscriptztext/cloud-configztext/cloud-boothookztext/cloud-config-archiveztext/cloud-config-jsonpztext/jinja2útext/x-shellscript-per-bootútext/x-shellscript-per-instanceútext/x-shellscript-per-once)z#includez#include-oncez#!z#cloud-configz#part-handlerz#cloud-boothookz#cloud-config-archivez#cloud-config-jsonpz## template: jinjar   r   r   c                 ó   — dt        | «      z
  S )Nr   )Úlen)Úes    ú=/usr/lib/python3/dist-packages/cloudinit/handlers/__init__.pyú<lambda>r   >   s   € °Q¼¸Q»±Z€ ó    )Úkeyc                   óD   — e Zd Zdd„Zd„ Zd„ Zej                  d„ «       Zy)ÚHandlerc                 ó    — || _         || _        y ©N)Úhandler_versionÚ	frequency)Úselfr   Úversions      r   Ú__init__zHandler.__init__C   s   € Ø&ˆÔØ"ˆ�r   c                 óT   — t        j                  | «      ›d| j                  «       ›d�S )Nz: [ú])r   Úobj_nameÚ
list_types)r   s    r   Ú__repr__zHandler.__repr__G   s   € Ü'×0Ñ0°Õ6¸¿¹Õ8IÐJÐJr   c                 ó|   — t        | d«      st        d«      ‚t        | d«      D �cg c]  }t        |   ‘Œ c}S c c}w )NÚprefixesz#Missing prefixes subclass attribute)ÚhasattrÚNotImplementedErrorÚgetattrÚINCLUSION_TYPES_MAP)r   Úprefixs     r   r!   zHandler.list_typesJ   sF   € ä�t˜ZÔ(Ü%Ð&KÓLÐLô & d¨JÓ7öàô $ FÓ+òð ùò s   ¦9c                 ó   — t        «       ‚r   )r&   )r   ÚargsÚkwargss      r   Úhandle_partzHandler.handle_partT   s   € ä!Ó#Ð#r   N)é   )	Ú__name__Ú
__module__Ú__qualname__r   r"   r!   ÚabcÚabstractmethodr-   © r   r   r   r   B   s,   „ ó#òKòð 	×Ññ$ó ñ$r   r   )Ú	metaclassc           
      ó  — | j                   }|t        k(  s|t        k(  r	|t        k(  sy 	 | j                  }t	        |«      }|d   }	 t        j                  d| ||||«       |dk(  r| j                  ||||||«       y |dk(  r| j                  |||||«       y |dk(  r| j                  ||||«       y t        d|z  «      ‚# t
        t        t        f$ r d}Y Œ—w xY w# t        $ r" t        j                  t        d| ||||«       Y y w xY w)Né   úContent-Typez1Calling handler %s (%s, %s, %s) with frequency %sé   r.   zUnknown module version %sz8Failed calling handler %s (%s, %s, %s) with frequency %s)r   r   r   r   ÚintÚ	TypeErrorÚ
ValueErrorÚAttributeErrorÚLOGÚdebugr-   Ú	Exceptionr   Úlogexc)	ÚmodÚdataÚfilenameÚpayloadr   ÚheadersÚmod_freqÚmod_verÚcontent_types	            r   Úrun_partrJ   Y   s$  € Ø�}‰}€Hà”JÒØœÒ%¨(´lÒ*BàðØ×%Ñ%ˆÜ�g“,ˆð ˜>Ñ*€Lð
Ü�	‰	Ø?ØØØØØô	
ð �aŠ<à�O‰OØ�l H¨g°yÀ'õð ˜Š\à�O‰O˜D ,°¸'À9ÕMØ˜Š\à�O‰O˜D ,°¸'ÕBäÐ8¸GÑDÓEÐEøô1 ”z¤>Ð2ò ØŠðûô2 ò 	
Ü�‰ÜØFØØØØØö	
ð	
ús5   ªC  Á5C Á=C ÂC Â2C Ã CÃCÃ(DÄDc                 ó4   — dt         i}t        | |d d ||«       y ©Nr8   )ÚCONTENT_STARTrJ   ©rB   rC   r   rF   s       r   Ú
call_beginrO   ‰   s$   € ð 	œð€Gô ˆS�$˜˜d I¨wÕ7r   c                 ó4   — dt         i}t        | |d d ||«       y rL   )ÚCONTENT_ENDrJ   rN   s       r   Úcall_endrR   ‘   s$   € ð 	œð€Gô ˆS�$˜˜d I¨wÕ7r   c                 óÄ  — | d   }t         |z  }| d   }t        j                  j                  | d   d|z  «      }|j	                  d«      sd|z  }t        j                  ||d«       | d   }	 t        t        j                  |«      «      }	t        |	| d	   |«       |j                  |	d
¬«       |dz   | d<   y # t        $ r t        j                  t        d||«       Y y w xY w)NÚhandlercountr   Ú
handlerdirz%sz.pyz%s.pyi€  ÚhandlersrC   T)Úinitializedr7   z7Failed at registering python file: %s (part handler %s))ÚPART_HANDLER_FN_TMPLÚosÚpathÚjoinÚendswithr   Ú
write_fileÚfixup_handlerr   Úimport_modulerO   Úregisterr@   rA   r>   )
ÚpdataÚ_ctypeÚ	_filenamerE   ÚcurcountÚmodnamer   ÚmodfnamerV   rB   s
             r   Úwalker_handle_handlerrg   ™   sä   € Ø�^Ñ$€HÜ" hÑ/€GØ�kÑ"€IÜ�w‰w�|‰|˜E ,Ñ/°¸Ñ1AÓB€HØ×Ñ˜UÔ#Ø˜hÑ'ˆä‡O�O�H˜g uÔ-Ø�ZÑ €Hð
ÜœH×2Ñ2°7Ó;Ó<ˆÜ�3˜˜f™ yÔ1ð 	×Ñ˜#¨4ÐÔ0Ø (¨1¡ˆˆnÒøÜò 
Ü�‰ÜØEØØö		
ð
ús   Á-A	B7 Â7%CÃCc                 óú   — 	 t        | t        «      r| j                  dd«      d   }n+| d d|z   j                  d¬«      j                  dd«      d   }t	        |«      |k\  r|d | }|S # t
        $ r	 | d| }Y |S w xY w)Nú
r7   r   é   Úignore)Úerrors)Ú
isinstanceÚstrÚsplitÚdecoder   ÚUnicodeDecodeError)ÚblobÚsizeÚstarts      r   Ú_extract_first_or_bytesru   ³   s—   € ðÜ�dœCÔ Ø—J‘J˜t QÓ'¨Ñ*‰Eð ˜˜1˜t™8Ð$×+Ñ+°8Ð+Ó<×BÑBÀ4ÈÓKÈAÑNˆEÜˆu‹:˜ÒØ˜%˜4�LˆEð €Løô ò à�Q�t�‰Ø€Lðús   ‚A$A( Á(A:Á9A:c                 ó¬   — 	 | j                  d«      S # t        t        f$ r& 	 | j                  d«      cY S # t        $ r Y Y | S w xY wt        $ r Y | S w xY w)NÚstring_escapeÚunicode_escape)ÚencodeÚLookupErrorr;   r=   )Útexts    r   Ú_escape_stringr|   Å   sl   € ðØ�{‰{˜?Ó+Ð+øÜœÐ#ò ð	à—;‘;Ð/Ó0Ò0øÜò 	áð €Kð	úô ò ð 	Ø€Kðús.   ‚ “A£6³A¶	A¿AÁAÁAÁAc                 ó¬  — |d   }|| j                  d«      v rt        j                  d|«       y |t        v rt	        | |||«       y | d   }||v rt        ||   | d   ||| d   |«       y |rSt        |d«      }dt        |«      z  }|t        k(  rt        j                  d	||«       y t        j                  d
||«       y t        j                  d|«       y )Nr8   Úexcludedzcontent_type "%s" is excludedrV   rC   r   é   z'%s...'z)Unhandled non-multipart (%s) userdata: %sz0Unhandled unknown content-type (%s) userdata: %szEmpty payload of type %s)
Úgetr>   r?   ÚPART_CONTENT_TYPESrg   rJ   ru   r|   ÚNOT_MULTIPART_TYPEÚwarning)rC   rD   rE   rF   rI   rV   rt   Údetailss           r   Úwalker_callbackr…   ×   sé   € Ø˜>Ñ*€LØ�t—x‘x 
Ó+Ñ+Ü�	‰	Ð1°<Ô@ØàÔ)Ñ)Ü˜d L°(¸GÔDØØ�JÑ€HØ�xÑÜØ�\Ñ"Ø�‰LØØØ�ÑØõ	
ñ 
ä'¨°Ó4ˆØœ~¨eÓ4Ñ5ˆØÔ-Ò-Ü�K‰KØ;ØØõô �K‰KØBØØõô 	�	‰	Ð,¨lÕ;r   c                 óT  — d}| j                  «       D ]“  }|j                  «       dk(  rŒ|j                  «       }|€t        }|j	                  «       }|s	t
        |z  }t        |«      }t        j                  |«       ||d<   t        j                  |«      } |||||«       |dz   }Œ• y )Nr   Ú	multipartr8   r7   )ÚwalkÚget_content_maintypeÚget_content_typeÚ
OCTET_TYPEÚget_filenameÚPART_FN_TPLÚdictr>   r?   r   Úfully_decoded_payload)	ÚmsgÚcallbackrC   ÚpartnumÚpartÚctyperD   rF   rE   s	            r   rˆ   rˆ      s©   € Ø€GØ—‘“
ò ˆà×$Ñ$Ó&¨+Ò5Øà×%Ñ%Ó'ˆØˆ=ÜˆEà×$Ñ$Ó&ˆÙÜ" gÑ.ˆHä�t“*ˆÜ�	‰	�'ÔØ"'ˆ�ÑÜ×,Ñ,¨TÓ2ˆÙ��x ¨'Ô2Ø˜A‘+‰ñ%r   c                 óÈ   — t        | d«      st        | dd«       t        | d«      st        | d|«       | S | j                  }|r|t        vrt        j                  d| |«       | S )Nr   r7   r   z&Handler %s has an unknown frequency %s)r%   Úsetattrr   r   r>   rƒ   )rB   Údef_freqÚfreqs      r   r^   r^     sb   € Ü�3Ð)Ô*Ü�Ð&¨Ô*Ü�3˜Ô$Ü��[ (Ô+ð
 €Jð �}‰}ˆÙ�D¤Ñ+Ü�K‰KÐ@À#ÀtÔLØ€Jr   c                 óÞ   — 	 t        j                  | «      j                  «       }|j	                  «       }t
        D ]  }|j                  |«      sŒt        |   c S  |S # t        $ r |cY S w xY wr   )r   Údecode_binaryÚlowerrq   ÚlstripÚINCLUSION_SRCHÚ
startswithr(   )rE   ÚdefaultÚ
payload_lcr{   s       r   Útype_from_starts_withr¡   #  su   € ðÜ×'Ñ'¨Ó0×6Ñ6Ó8ˆ
ð ×"Ñ"Ó$€JÜò -ˆØ× Ñ  Õ&Ü& tÑ,Ò,ð-ð €Nøô ò ØŠðús   ‚#A ÁA,Á+A,r   )'r2   ÚloggingrY   Ú	cloudinitr   r   r   Úcloudinit.settingsr   r   r   Ú	getLoggerr/   r>   r‚   r‹   rQ   rM   ÚCONTENT_SIGNALSr�   rX   r�   r(   ÚsortedÚlistÚkeysr�   ÚABCMetar   rJ   rO   rR   rg   ru   r|   r…   rˆ   r^   r¡   r4   r   r   ú<module>r«      s  ðó Û Û 	ç 0Ñ 0ß DÑ Dà€g×Ñ˜Ó!€ð ,Ð ð (€
ð €Ø€Ø  +Ð.€ð *Ð*Ð Ø*Ð ð €ð %Ø.Ø
Ø(Ø(Ø,Ø8Ø4Ø'ð
 $AØ'HØ#@ñ!Ð ñ( ÙÐ	×	!Ñ	!Ó	#Ó$Ñ+?ô€ô
$˜Ÿ™õ $ò.-
ò`8ò8ò
ò4ò$ò$$<òRð. !-ó 	ô	r   