Current File : //lib/python2.7/site-packages/cloudinit/config/cc_mcollective.pyc
�
oB�]c@s�dZddlZddlZddlmZddlmZddlmZddlm	Z	dZ
dZd	Zej
e�Zee
ed
�Zd�ZdS(s"
Mcollective
-----------
**Summary:** install, configure and start mcollective

This module installs, configures and starts mcollective. If the ``mcollective``
key is present in config, then mcollective will be installed and started.

Configuration for ``mcollective`` can be specified in the ``conf`` key under
``mcollective``. Each config value consists of a key value pair and will be
written to ``/etc/mcollective/server.cfg``. The ``public-cert`` and
``private-cert`` keys, if present in conf may be used to specify the public and
private certificates for mcollective. Their values will be written to
``/etc/mcollective/ssl/server-public.pem`` and
``/etc/mcollective/ssl/server-private.pem``.

.. note::
    The ec2 metadata service is readable by non-root users.
    If security is a concern, use include-once and ssl urls.

**Internal name:** ``cc_mcollective``

**Module frequency:** per instance

**Supported distros:** all

**Config keys**::

    mcollective:
        conf:
            <key>: <value>
            public-cert: |
                -------BEGIN CERTIFICATE--------
                <cert data>
                -------END CERTIFICATE--------
            private-cert: |
                -------BEGIN CERTIFICATE--------
                <cert data>
                -------END CERTIFICATE--------
i����N(tBytesIO(t	ConfigObj(tlog(tutils&/etc/mcollective/ssl/server-public.pems'/etc/mcollective/ssl/server-private.pems/etc/mcollective/server.cfgcCsy1tj|dtdt�}tt|��}WnDtk
rw}|jtjkr[�qxtj	d|�t�}nXx|j
�D]\}}|dkr�tj||dd�||d<d|d	<q�|d
krtj||dd�||d<d|d	<q�t|t
j�r"|||<q�t|t�r{||jkrMi||<nx;|j
�D]\}	}
|
|||	<qZWq�t|�||<q�Wytj|d
|�Wn+tk
r�}|jtjkr�q��nXt�}|j|�tj||j�dd�dS(Ntquiettdecodes4Did not find file %s (starting with an empty config)spublic-certtmodei�splugin.ssl_server_publictssltsecurityprovidersprivate-certi�splugin.ssl_server_privates%s.old(Rt	load_filetFalseRRtIOErrorterrnotENOENTtLOGtdebugtitemst
write_filet
isinstancetsixtstring_typestdicttsectionststrtcopytwritetgetvalue(tconfigt
server_cfgtpubcert_filetpricert_filetold_contentstmcollective_configtetcfg_nametcfgtotvtcontents((sC/usr/lib/python2.7/site-packages/cloudinit/config/cc_mcollective.pyt	configureFsF	






	
cCszd|kr |jd|�dS|d}|jjd�d|krZtd|d�ntjdddgdt�dS(	Ntmcollectives?Skipping module named %s, no 'mcollective' key in configurationtconfRtservicetrestarttcapture(R((Rtdistrotinstall_packagesR'RtsubpR
(tnameR#tcloudRt_argstmcollective_cfg((sC/usr/lib/python2.7/site-packages/cloudinit/config/cc_mcollective.pythandles	
(t__doc__RRRt	configobjRt	cloudinitRtloggingRtPUBCERT_FILEtPRICERT_FILEt
SERVER_CFGt	getLoggert__name__RR'R4(((sC/usr/lib/python2.7/site-packages/cloudinit/config/cc_mcollective.pyt<module>1s8