Server IP : 23.254.227.96 / Your IP : 216.73.216.7 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3.6/site-packages/cloudinit/config/__pycache__/ |
Upload File : |
3 ��b�# � @ sd U d Z ddlZddlmZ ddlmZ ddlmZmZ ddl m Z mZmZ ddl mZ ddlmZ d gZeZeje�Zd dded �eed�ed�ed�ed�ed�ged�Ze dddddgddiddddddid�ddgddddid�ddigiddddddidddid�gid�dd id!�ddd"�id#�Zeee�Z dZd$Zd%d&� Zd'd(� Zd)d*� Zd+d,� ZdS )-z<Snap: Install, configure and manage snapd and snap packages.� N)�dedent)�log)�subp�util)� MetaSchema�get_meta_doc�validate_cloudconfig_schema)�PER_INSTANCE)�prepend_base_commandZubuntuZcc_snapZSnapz5Install, configure and manage snapd and snap packagesa, This module provides a simple configuration namespace in cloud-init to both setup snapd and install snaps. .. note:: Both ``assertions`` and ``commands`` values can be either a dictionary or a list. If these configs are provided as a dictionary, the keys are only used to order the execution of the assertions or commands and the dictionary is merged with any vendor-data snap configuration provided. If a list is provided by the user instead of a dict, any vendor-data snap configuration is ignored. The ``assertions`` configuration option is a dictionary or list of properly-signed snap assertions which will run before any snap ``commands``. They will be added to snapd's assertion database by invoking ``snap ack <aggregate_assertion_file>``. Snap ``commands`` is a dictionary or list of individual snap commands to run on the target system. These commands can be used to create snap users, install snaps and provide snap configuration. .. note:: If 'side-loading' private/unpublished snaps on an instance, it is best to create a snap seed directory and seed.yaml manifest in **/var/lib/snapd/seed/** which snapd automatically installs on startup. **Development only**: The ``squashfuse_in_container`` boolean can be set true to install squashfuse package when in a container to enable snap installs. Default is false. ax snap: assertions: 00: | signed_assertion_blob_here 02: | signed_assertion_blob_here commands: 00: snap create-user --sudoer --known <snap-user>@mydomain.com 01: snap install canonical-livepatch 02: canonical-livepatch enable <AUTH_TOKEN> z� # LXC-based containers require squashfuse before snaps can be installed snap: commands: 00: apt-get install squashfuse -y 11: snap install emoj a� # Convenience: the snap command can be omitted when specifying commands # as a list and 'snap' will automatically be prepended. # The following commands are equivalent: snap: commands: 00: ['install', 'vlc'] 01: ['snap', 'install', 'vlc'] 02: snap install vlc 03: 'snap install vlc' z� # You can use a list of commands snap: commands: - ['install', 'vlc'] - ['snap', 'install', 'vlc'] - snap install vlc - 'snap install vlc' z� # You can use a list of assertions snap: assertions: - signed_assertion_blob_here - | signed_assertion_blob_here )�id�name�title�description�distrosZexamples� frequency�object�snapZarray�type�stringF� T)r �items�additionalItems�minItems� minPropertiesZuniqueItems�additionalPropertiesZoneOf)r r )r r r r r r Zboolean)� assertions�commands�squashfuse_in_container)r � propertiesr r )r r z(/var/lib/cloud/instance/snapd.assertionsc C s� | sdS t jd� t| t�r&| j� } nt| t�s@tdj| d���tdg}dj | �}x&| D ]}t jd|j d�dd � � qXW tjt |jd �� tj|t g dd� dS ) a Import list of assertions. Import assertions by concatenating each assertion into a string separated by a ' '. Write this string to a instance file and then invoke `snap ack /path/to/file` and check for errors. If snap exits 0, then all assertions are imported. Nz'Importing user-provided snap assertionsz8assertion parameter was not a list or dict: {assertions})r Zack� zSnap acking: %sr � zutf-8T)Zcapture)�LOG�debug� isinstance�dict�values�list� TypeError�format�SNAP_CMD�join�splitr Z write_file�ASSERTIONS_FILE�encoder )r Zsnap_cmdZcombinedZasrt� r. �/usr/lib/python3.6/cc_snap.py�add_assertions� s r0 c C s� | sdS t jd� t| t�r4dd� t| j� �D �} nt| t�sNtdj| d���t d| �}g }xb|D ]Z}t|t �}ytj||tj jd� W qb tjk r� } z|jt |�� W Y dd}~X qbX qbW |r�d j|d �}tjt |� t|��dS )aH Run the provided commands provided in snap:commands configuration. Commands are run individually. Any errors are collected and reported after attempting all commands. @param commands: A list or dict containing commands to run. Keys of a dict will be used to order the commands provided as dict values. Nz#Running user-provided snap commandsc S s g | ]\}}|�qS r. r. )�.0�_�vr. r. r/ � <listcomp>� s z run_commands.<locals>.<listcomp>z5commands parameter was not a list or dict: {commands})r r )�shellZ status_cbz.Failures running snap commands: {cmd_failures})�cmd_failures)r! r"