Your IP : 216.73.217.13


Current Path : /lib/python3/dist-packages/cloudinit/config/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/config/__pycache__/cc_landscape.cpython-38.pyc

U

�Adp�	@sUdZddlZddlmZddlmZddlmZddlm	Z	ddl
mZmZm
Z
ddlmZdd	lmZdd
lmZmZddlmZdZd
Zdddddd�iZdZdgZdddeeed�ed�gedgd�Zeed<ee�Zeeeeedd�dd �Z d!d"�Z!dS)#z&install and configure landscape client�N)�BytesIO)�Logger)�dedent)�	ConfigObj)�subp�
type_utils�util)�Cloud)�Config)�
MetaSchema�get_meta_doc)�PER_INSTANCEz/etc/landscape/client.confz/etc/default/landscape-clientZclient�infoz.https://landscape.canonical.com/message-systemz#http://landscape.canonical.com/pingz/var/lib/landscape/client)Z	log_levelZurlZping_urlZ	data_patha�This module installs and configures ``landscape-client``. The landscape client
will only be installed if the key ``landscape`` is present in config. Landscape
client configuration is given under the ``client`` key under the main
``landscape`` config key. The config parameters are not interpreted by
cloud-init, but rather are converted into a ConfigObj formatted file and
written out to the `[client]` section in ``/etc/landscape/client.conf``.

The following default client config is provided, but can be overridden::

    landscape:
        client:
            log_level: "info"
            url: "https://landscape.canonical.com/message-system"
            ping_url: "http://landscape.canoncial.com/ping"
            data_path: "/var/lib/landscape/client"

.. note::
    see landscape documentation for client config keys

.. note::
    if ``tags`` is defined, its contents should be a string delimited with
    ``,`` rather than a list
ZubuntuZcc_landscapeZ	Landscapez&Install and configure landscape clienta�            # To discover additional supported client keys, run
            # man landscape-config.
            landscape:
                client:
                    url: "https://landscape.canonical.com/message-system"
                    ping_url: "http://landscape.canonical.com/ping"
                    data_path: "/var/lib/landscape/client"
                    http_proxy: "http://my.proxy.com/foobar"
                    https_proxy: "https://my.proxy.com/foobar"
                    tags: "server,cloud"
                    computer_title: "footitle"
                    registration_key: "fookey"
                    account_name: "fooaccount"
            z�            # Any keys below `client` are optional and the default values will
            # be used.
            landscape:
                client: {}
            �	landscape)�id�name�titleZdescription�distrosZexamplesZ	frequencyZactivate_by_schema_keys�meta)r�cfg�cloud�log�args�returnc	Cs�|�di�}t|t�s,tdjt�|�d���|s4dS|j�d�t	t
|g}t|�}t�}|�
|�t�tj�t
��t�t
|���|�dt
�t�td�t�dd	d
g�dS)z�
    Basically turn a top level 'landscape' entry with a 'client' dict
    and render it to ConfigObj format under '[client]' section in
    /etc/landscape/client.conf
    rzR'landscape' key existed in config, but not a dictionary type, is a {_type} instead)Z_typeN)�landscape-clientz!Wrote landscape config file to %szRUN=1
�servicerZrestart)�get�
isinstance�dict�RuntimeError�formatrZobj_nameZdistroZinstall_packages�LSC_BUILTIN_CFG�LSC_CLIENT_CFG_FILE�merge_togetherr�writerZ
ensure_dir�os�path�dirnameZ
write_file�getvalue�debug�LS_DEFAULT_FILEr)	rrrrrZls_cloudcfgZ
merge_dataZmerged�contents�r,�?/usr/lib/python3/dist-packages/cloudinit/config/cc_landscape.py�handlegs,	
���
r.cCs@ti�}|D].}|sqt|t�r,|�|�q|�t|��q|S)zu
    merge together ConfigObj objects or things that ConfigObj() will take in
    later entries override earlier
    )rr�merge)Zobjsr�objr,r,r-r#�s
r#)"�__doc__r%�iorZloggingr�textwraprZ	configobjrZ	cloudinitrrrZcloudinit.cloudr	Zcloudinit.configr
Zcloudinit.config.schemarrZcloudinit.settingsr
r"r*r!ZMODULE_DESCRIPTIONrr�__annotations__�str�listr.r#r,r,r,r-�<module>	sZ��	����%�)