o
    f                  
   @   s   U d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ d	Zd
ZdZddgedgdZeed< eeZeeefddZdedede
deddf
ddZdS )z5Mcollective: Install, configure and start mcollective    N)	ConfigObj)subputil)Cloud)Config)
MetaSchema)PER_INSTANCEz&/etc/mcollective/ssl/server-public.pemz'/etc/mcollective/ssl/server-private.pemz/etc/mcollective/server.cfgcc_mcollectiveallmcollective)iddistros	frequencyactivate_by_schema_keysmetac              
   C   s  zt j|dd}tt|}W n" ty2 } z|jtjkr t	d| t }W Y d }~nd }~ww | 
 D ]\\}}|dkrPt j||dd ||d< d|d	< q7|d
kret j||dd ||d< d|d	< q7t|tro|||< q7t|tr||jvr}i ||< |
 D ]
\}	}
|
|| |	< qq7t|||< q7z
t |d|  W n ty } z|jtjkrn W Y d }~nd }~ww t }|| t j|| dd d S )NF)quietz4Did not find file %s (starting with an empty config)zpublic-certi  )modezplugin.ssl_server_publicsslsecurityproviderzprivate-certi  zplugin.ssl_server_privatez%s.old)r   load_binary_filer   ioBytesIOIOErrorerrnoENOENTLOGdebugitems
write_file
isinstancestrdictsectionscopywritegetvalue)config
server_cfgpubcert_filepricert_fileold_contentsmcollective_configecfg_namecfgovcontents r2   A/usr/lib/python3/dist-packages/cloudinit/config/cc_mcollective.py	configure(   sV   	






r4   namer.   cloudargsreturnc                 C   sZ   d|vrt d|  d S |d }|jdg d|v r"t|d d tjg ddd d S )Nr   z?Skipping module named %s, no 'mcollective' key in configurationconf)r&   )servicer   restartF)capture)r   r   distroinstall_packagesr4   r   )r5   r.   r6   r7   mcollective_cfgr2   r2   r3   handlee   s   r@   )__doc__r   r   logging	configobjr   	cloudinitr   r   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.settingsr   PUBCERT_FILEPRICERT_FILE
SERVER_CFGr   __annotations__	getLogger__name__r   r4   r    listr@   r2   r2   r2   r3   <module>   s0   	

"=