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_ubuntu_autoinstall.cpython-38.pyc

U

�Ad@�	@s�UdZddlZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
mZmZmZdd	lmZdd
lmZe�e�ZdgZdd
ded�eed�gedgd�Ze
ed<ee�ZdZeee	eedd�dd�Zdd�ZdS)z;Autoinstall: Support ubuntu live-server autoinstall syntax.�N)�Logger)�dedent)�log)�Cloud)�Config)�
MetaSchema�
SchemaProblem�SchemaValidationError�get_meta_doc)�PER_ONCE)�subpZubuntuZcc_ubuntu_autoinstallzUbuntu Autoinstallz)Support Ubuntu live-server install syntaxa&        Ubuntu's autoinstall YAML supports single-system automated installs
        in either the live-server install, via the ``subiquity`` snap, or the
        next generation desktop installer, via `ubuntu-desktop-install` snap.
        When "autoinstall" directives are provided in either
        ``#cloud-config`` user-data or ``/etc/cloud/cloud.cfg.d`` validate
        minimal autoinstall schema adherance and emit a warning if the
        live-installer is not present.

        The live-installer will use autoinstall directives to seed answers to
        configuration prompts during system install to allow for a
        "touchless" or non-interactive Ubuntu system install.

        For more details on Ubuntu's autoinstaller:
            https://ubuntu.com/server/docs/install/autoinstall
    a�            # Tell the live-server installer to provide dhcp6 network config
            # and LVM on a disk matching the serial number prefix CT
            autoinstall:
              version: 1
              network:
                version: 2
                ethernets:
                  enp0s31f6:
                    dhcp6: yes
              storage:
                layout:
                  name: lvm
                  match:
                    serial: CT*
        �autoinstall)�id�name�titleZdescription�distrosZexamplesZ	frequencyZactivate_by_schema_keys�meta)Z	subiquityzubuntu-desktop-installer)r�cfg�cloudr�args�returnc	Csxd|krt�d|�dStddg�\}}d}tD]}t�||�r0|}q0|s`t�dd�t��dSt|�t�d|�dS)Nr
z?Skipping module named %s, no 'autoinstall' key in configurationZsnap�listzaSkipping autoinstall module. Expected one of the Ubuntu installer snap packages to be present: %sz, z8Valid autoinstall schema. Config will be processed by %s)	�LOG�debugr�LIVE_INSTALLER_SNAPS�re�searchZwarning�join�validate_config_schema)	rrrrrZ	snap_list�_Zinstaller_presentZ	snap_name�r �H/usr/lib/python3/dist-packages/cloudinit/config/cc_ubuntu_autoinstall.py�handleNs,���r"cCs||d}t|t�s.ttddt|�j���g��d|krHttdd�g��n0t|�d�t�sxttddt|d�j���g��dS)a>Supplemental runtime schema validation for autoinstall yaml.

    Schema validation issues currently result in a warning log currently which
    can be easily ignored because warnings do not bubble up to cloud-init
    status output.

    In the case of the live-installer, we want cloud-init to raise an error
    to set overall cloud-init status to 'error' so it is more discoverable
    in installer environments.

    # TODO(Drop this validation When cloud-init schema is strict and errors)

    :raise: SchemaValidationError if any known schema values are present.
    r
zExpected dict type but found: �versionzMissing required 'version' keyzautoinstall.versionzExpected int type but found: N)�
isinstance�dictr	r�type�__name__�get�int)rZautoinstall_cfgr r r!rls*
���

����r) �__doc__rZloggingr�textwraprZ	cloudinitrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarrr	r
Zcloudinit.settingsrZcloudinit.subprZ	getLoggerr'rrr�__annotations__r�strrr"rr r r r!�<module>sF
����/�