0 #ˆl–ß=¿J µ2ÛR‚œP-\lò˜´o ƒ`ÁÀ¿ Ía '¡Dgü ã@s¼UdZddlZddlZddlmZddlmZmZddlm Z ddl m Z ddl m Z ddlmZdd lmZe e¡Zd egegd œZe ed <dd d„Zdd„Zee e eddœdd„ZdS)z%Seed Random: Provide random seed dataéN)ÚBytesIO)ÚsubpÚutil)ÚCloud)ÚConfig)Ú MetaSchema)Ú ALL_DISTROS)Ú PER_INSTANCEZcc_seed_random)ÚidZdistrosZ frequencyZactivate_by_schema_keysÚmetacCsd|sdS|r| ¡dvr"t |¡S| ¡dvr8t |¡S| ¡dvrTtj|ddd�Std|ƒ‚dS)Nó)Úraw)Úbase64Zb64)ÚgzipÚgzF)ÚquietÚdecodez Unknown random_seed encoding: %s)ÚlowerrÚ encode_textrZ b64decodeZ decomp_gzipÚIOError)ÚdataÚencoding©rúC/usr/lib/python3.9/site-packages/cloudinit/config/cc_seed_random.pyÚ_decode s    rcCsp|s|rtdƒ‚n|s$t d¡dS|d}t |¡s\|rLtdj|d�ƒ‚nt d|¡dStj||dd�dS) Nz"no command found but required=truezno command providedrz+command '{cmd}' not found but required=true)Úcmdz'command '%s' not found for seed_commandF)Ú update_envZcapture)Ú ValueErrorÚLOGÚdebugrÚwhichÚformat)ÚcommandÚrequiredrrrrrÚhandle_random_seed_command-s    ÿ r$)ÚnameÚcfgÚcloudÚargsÚreturnc Cs | di¡}| dd¡}| dd¡}tƒ}|rF| t|| d¡d�¡|jj}|rnd|vrn| t |d¡¡| ¡}t |ƒržt   d|t |ƒ|¡t  ||¡| d d¡} | d d ¡} zt | | d |id �Wn8t�y} zt  d| | ¡| ‚WYd} ~ n d} ~ 00dS)NZ random_seedÚfilez /dev/urandomrr r)rz0%s: adding %s bytes of random seed entropy to %sr"Zcommand_requiredFZRANDOM_SEED_FILE)r"r#rz'handling random command [%s] failed: %s)ÚgetrÚwriterZ datasourceÚmetadatarrÚgetvalueÚlenrrZ append_filer$rZwarning) r%r&r'r(ZmycfgZ seed_pathZ seed_dataZseed_bufr-r"ZreqÚerrrÚhandle@s:    ü   ý r1)N)Ú__doc__rZloggingÚiorZ cloudinitrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarZcloudinit.distrosrZcloudinit.settingsr Z getLoggerÚ__name__rr Ú__annotations__rr$ÚstrÚlistr1rrrrÚ s$       ü #ˆl–äY>””†Ù”â�nãa¸&Tţà ƒi·ÂÁÀ×a ´ibã@sªgd¢ZdZdZdZdZzddlmZmZWneyFdZdZYn0dd „Z d d „Z dd d„Z ddd„Z ddd„Z ddd„Zdd„Zdd„Zdd„Zedkr¦eƒdS) )ÚencodeÚdecodeÚ encodestringÚ decodestringó=éLs0123456789ABCDEFóé)Úa2b_qpÚb2a_qpNcCs:|dvr |S|dkr|S|tkp8d|ko2dkn S)Nó ó_ó ó~)ÚESCAPE)ÚcÚ quotetabsÚheader©rú/usr/lib64/python3.9/quopri.pyÚ needsquotings rcCs(t|ƒ}ttt|dt|dfƒS)Né)ÚordrÚbytesÚHEX©rrrrÚquote$srFc Cs2tdur,| ¡}t|||d�}| |¡dS|dfdd„}d}| ¡}|sN�qg} d} |dd…dkrv|dd…}d} |D]D} t| fƒ} t| ||ƒrœt| ƒ} |r´| dkr´|  d¡qz|  | ¡qz|durÐ||ƒt  | ¡} t | ƒt k�r|| dt d …d d �| t d d…} qÚ| }q>|du�r.||| d �dS) N©rró cSsj|r<|dd…dvr<| |dd…t|dd…ƒ|¡n*|dkrX| t|ƒ|¡n| ||¡dS)Néÿÿÿÿr ó.)Úwriter)ÚsÚoutputÚlineEndrrrr ;s (zencode..writerrr r és= )r#) r Úreadr ÚreadlinerrrÚappendÚ EMPTYSTRINGÚjoinÚlenÚ MAXLINESIZE) Úinputr"rrÚdataÚodatar