a 'Dgo@sUdZddlZddlZddlZddlmZddlmZmZddl m Z ddl m Z ddl mZddlmZd Zd Zd Zd d gedgdZeed<eeZeeefddZee e eddddZdS)z5Mcollective: Install, configure and start mcollectiveN) ConfigObj)subputil)Cloud)Config) MetaSchema) PER_INSTANCEz&/etc/mcollective/ssl/server-public.pemz'/etc/mcollective/ssl/server-private.pemz/etc/mcollective/server.cfgZcc_mcollectiveall mcollective)idZdistrosZ frequencyZactivate_by_schema_keysmetac Csz tj|dd}tt|}WnFtyf}z.|jtjkr@nt d|t}WYd}~n d}~00| D]\}}|dkrtj ||dd||d<d|d <qp|d krtj ||d d||d <d|d <qpt |t r|||<qpt |tr ||jvri||<| D]\} } | ||| <qqpt |||<qpzt|d |Wn8tyz}z|jtjkrdnWYd}~n d}~00t} || tj || dddS)NF)quietz4Did not find file %s (starting with an empty config)z public-certi)modezplugin.ssl_server_publicZsslZsecurityproviderz private-certizplugin.ssl_server_privatez%s.old)rZload_binary_filerioBytesIOIOErrorerrnoENOENTLOGdebugitemsZ write_file isinstancestrdictZsectionscopywritegetvalue) configZ server_cfgZ pubcert_fileZ pricert_fileZ old_contentsZmcollective_configeZcfg_namecfgovcontentsr#C/usr/lib/python3.9/site-packages/cloudinit/config/cc_mcollective.py configure(sJ        r%)namercloudargsreturncCsZd|vrtd|dS|d}|jdgd|vrDt|ddtjgddddS)Nr z?Skipping module named %s, no 'mcollective' key in configurationZconf)r)Zservicer ZrestartF)Zcapture)rrZdistroZinstall_packagesr%r)r&rr'r(Zmcollective_cfgr#r#r$handleesr*)__doc__rrZloggingZ configobjrZ cloudinitrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarZcloudinit.settingsrZ PUBCERT_FILEZ PRICERT_FILEZ SERVER_CFGr __annotations__Z getLogger__name__rr%rlistr*r#r#r#r$ s.       =