a '¡DgÕã@s²UdZddlZddlZddlmZmZmZddlmZddl m Z ddl m Z ddl mZddlmZd eged gd œZe ed <e e¡ZGd d„dƒZee eeddœdd„ZdS)z&Salt Minion: Setup and run salt minionéN)ÚsafeyamlÚsubpÚutil)ÚCloud)ÚConfig)Ú MetaSchema)Ú ALL_DISTROS)Ú PER_INSTANCEZcc_salt_minionÚ salt_minion)ÚidZdistrosZ frequencyZactivate_by_schema_keysÚmetac@seZdZdZdd„ZdS)Ú SaltConstantsz> defines default distribution specific salt variables cCsht ¡rd|_d|_d|_nd|_d|_d|_t |d|j¡|_t |d|j¡|_t |d|j¡|_dS) Nzpy-saltr z/usr/local/etc/saltz salt-minionz /etc/saltÚpkg_nameZ config_dirZ service_name)rZ is_FreeBSDrÚsrv_nameÚconf_dirZget_cfg_option_str)ÚselfÚcfg©rúC/usr/lib/python3.9/site-packages/cloudinit/config/cc_salt_minion.pyÚ__init__#sÿÿzSaltConstants.__init__N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrr sr )ÚnamerÚcloudÚargsÚreturncCsÚd|vrt d|¡dS|d}t|d�}|j |jg¡t |j¡d}d|vr~t j   |jd¡}|  d¡}t  |t |¡¡d|vr²t j   |jd¡}t |  d¡¡} t  || ¡d|v�rpd|v�rpt j   |jd ¡} t j  | ¡sòt j   |jd ¡} |  d | ¡} t d ¡�Vt | ¡t j   | d ¡} t j   | d¡} t  | |d¡t  | |d¡Wdƒn1�sf0Yt|�o„|  d¡dkƒ }|j |�ršdnd|j¡|j |�r´dnd|j¡|�sÖtjgd¢dd�dS)Nr z?Skipping module named %s, no 'salt_minion' key in configuration)rZconfZminionZgrainsZ public_keyZ private_keyz pki/minionZpkiÚpki_diré?z minion.pubz minion.pemZ file_clientÚlocalÚenableÚdisableZrestartÚstop)z salt-callz--localz state.applyF)Zcapture)ÚLOGÚdebugr ZdistroZinstall_packagesrrZ ensure_dirrÚosÚpathÚjoinÚgetZ write_filerÚdumpsÚisdirÚumaskÚboolZmanage_servicerr)rrrrZs_cfgÚconstZ minion_dataZ minion_configZ grains_configZ grains_dataZpki_dir_defaultrZpub_nameZpem_nameZ minion_daemonrrrÚhandle9sRþ        0ÿÿÿr/)rZloggingr&Z cloudinitrrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarZcloudinit.distrosrZcloudinit.settingsr r Ú__annotations__Z getLoggerrr$r ÚstrÚlistr/rrrrÚs      ü