
    x[h              
           % S r SSKrSSKrSSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJr  \R$                  " \5      rS
\/\/ S.r\\S'   SS jrS rS\S\S\	S\SS4
S jrg)z%Seed Random: Provide random seed data    N)BytesIO)subputil)Cloud)Config)
MetaSchema)ALL_DISTROS)PER_INSTANCEcc_seed_random)iddistros	frequencyactivate_by_schema_keysmetac                 8   U (       d  gU(       a  UR                  5       S;   a  [        R                  " U 5      $ UR                  5       S;   a  [        R                  " U 5      $ UR                  5       S;   a  [        R
                  " U SS S9$ [        SU-  5      e)N    )raw)base64b64)gzipgzF)quietdecodez Unknown random_seed encoding: %s)lowerr   encode_textr   	b64decodedecomp_gzipIOError)dataencodings     A/usr/lib/python3/dist-packages/cloudinit/config/cc_seed_random.py_decoder"       s    x~~'72%%		.	.%%		^	+E$??8HEFFr   c                 F   U (       d  U(       a  [        S5      eU (       d  [        R                  S5        g U S   n[        R                  " U5      (       d6  U(       a  [        SR                  US95      e[        R                  SU5        g [        R                  " XSS9  g )	Nz"no command found but required=truezno command providedr   z+command '{cmd}' not found but required=true)cmdz'command '%s' not found for seed_commandF)
update_envcapture)
ValueErrorLOGdebugr   whichformat)commandrequiredr%   r$   s       r!   handle_random_seed_commandr.   -   s    x=>>		'(
!*C::c??=DDDM  II?EIIge<r   namecfgcloudargsreturnc                    UR                  S0 5      nUR                  SS5      nUR                  SS5      n[        5       nU(       a'  UR                  [        XdR                  S5      S95        UR                  R
                  nU(       a.  SU;   a(  UR                  [        R                  " US   5      5        UR                  5       n[        U5      (       a7  [        R                  SU [        U5      U5        [        R                  " XV5        UR                  S	S 5      n	UR                  S
S5      n
 [        U	U
SU0S9  g ! [         a  n[        R                  SX5        UeS nAff = f)Nrandom_seedfilez/dev/urandomr   r   r    )r    z0%s: adding %s bytes of random seed entropy to %sr,   command_requiredFRANDOM_SEED_FILE)r,   r-   r%   z'handling random command [%s] failed: %s)getr   writer"   
datasourcemetadatar   r   getvaluelenr(   r)   append_filer.   r'   warning)r/   r0   r1   r2   mycfg	seed_path	seed_dataseed_bufr<   r,   reqes               r!   handlerG   @   s4   GGM2&E		&.1I		&#&IyHwy99Z3HIJ ((HMX-t''(?@A!!#I
9~~		>	N		
 	.ii	4(G
))&
.C"*I6	

  =wJs   6E 
E+E&&E+)N)__doc__r   loggingior   	cloudinitr   r   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.distrosr	   cloudinit.settingsr
   	getLogger__name__r(   r   __annotations__r"   r.   strlistrG    r   r!   <module>rW      s    ,      ! # . ) +! }!	j 
G=&# #6 #% #t # #r   