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|vrpd|vrpt j   |jd ¡} t j  | ¡sòt j   |jd ¡} |  d | ¡} t d ¡Vt | ¡t j   | d ¡} t j   | d¡} t  | |d¡t  | |d¡Wdƒn1sf0Yt|o„|  d¡dkƒ }|j |ršdnd|j¡|j |r´dnd|j¡|sÖtjgd¢dddS)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      ü