%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/cloudinit/config/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/cloudinit/config/__pycache__/cc_wireguard.cpython-312.pyc

�

���f��
�(�UdZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZddlm
Z
dd	ge
d
gd�Zeed<ej e�Zegd
��ZdZdZdZdefd�Zdefd�Zdedefd�Zdefd�Zdefd�Zdefd�Zd�Z de!de	dededdf
d�Z"y) �	Wireguard�N)�subp�util)�Cloud)�Config)�
MetaSchema)�PER_INSTANCE�cc_wireguard�ubuntu�	wireguard)�id�distros�	frequency�activate_by_schema_keys�meta)�name�config_path�contenti��
)���wg_intc���g}tjt|j���}|r.dj	t|��}|j
d|���t|j��D]=\}}|dk(s|dk(s|dk(s�t|t�r�'|j
d|�d|����?|r'tdt�tj	|�����y	)
aRValidate user-provided wg:interfaces option values.

    This function supplements flexible jsonschema validation with specific
    value checks to aid in triage of invalid user-provided configuration.

    @param wg_int: Dict of configuration value under 'wg:interfaces'.

    @raises: ValueError describing invalid values provided.
    z, z%Missing required wg:interfaces keys: rrrz$Expected a string for wg:interfaces:�. Found z*Invalid wireguard interface configuration:N)�REQUIRED_WG_INT_KEYS�
difference�set�keys�join�sorted�append�items�
isinstance�str�
ValueError�NL)r�errors�missingr�key�values      �?/usr/lib/python3/dist-packages/cloudinit/config/cc_wireguard.py�supplemental_schema_validationr,s����F�"�-�-�c�&�+�+�-�.@�A�G���y�y����)���
�
�=�d�V�D�E��V�\�\�^�,��
��U��&�=�C�=�0�C�9�4D��e�S�)��
�
�:�3�%�x��w�O�����8���R�W�W�V�_�<M�N�
�	
��c
��tjd|d�	tjd|d�tj|d|dt��y	#t
$r)}t
d|d�dt�t|����|�d	}~wwxYw)
z�Writing user-provided configuration into Wireguard
    interface configuration file.

    @param wg_int: Dict of configuration value under 'wg:interfaces'.

    @raises: RuntimeError for issues writing of configuration file.
    z"Configuring Wireguard interface %srz#Writing wireguard config to file %srr)�modez-Failure writing Wireguard configuration file �:N)	�LOG�debugr�
write_file�WG_CONFIG_FILE_MODE�	Exception�RuntimeErrorr&r$)r�es  r+�write_configr8;s����I�I�2�F�6�N�C�	��	�	�7��
�9N�O�����=�!�6�)�#4�;N�	
�����
��}�%�&�a��t�C��F�8�
5�
��	���s�;A�	B	� $B�B	�cloudc�d�	tjd|d�|jjdd|d���tjd|d�|jjdd|d���y#tj
$r#}t
dt�t|����|�d}~wwxYw)	z�Enable and start Wireguard interface

    @param wg_int: Dict of configuration value under 'wg:interfaces'.

    @raises: RuntimeError for issues enabling WG interface.
    zEnabling wg-quick@%s at bootr�enablez	wg-quick@z!Bringing up interface wg-quick@%s�restartz0Failed enabling/starting Wireguard interface(s):N)	r1r2�distro�manage_servicer�ProcessExecutionErrorr6r&r$)rr9r7s   r+�	enable_wgr@Ps�����	�	�0�&��.�A�
���#�#�H�	�&��.�9I�.J�K��	�	�5�v�f�~�F�
���#�#�I��6�&�>�:J�/K�L���%�%���>�r�d�3�q�6�(�K�
��	���s�A6A9�9B/�B*�*B/�wg_readinessprobesc���g}d}|D]/}t|t�r�|jd|�d|���|dz
}�1|r'tdt�tj|�����y)z�Basic validation of user-provided probes

    @param wg_readinessprobes: List of readinessprobe probe(s).

    @raises: ValueError of wrong datatype provided for probes.
    rz(Expected a string for readinessprobe at r�z Invalid readinessProbe commands:N)r#r$r!r%r&r)rAr'�pos�cs    r+�!readinessprobe_command_validationrFbs|���F�
�C�
����!�S�!��M�M�:�3�%�x��s�K�
�
�1�H�C����.�r�d�2�7�7�6�?�2C�D�
�	
�r-c�D�g}|D]:}	tjdt|��tj|dd���<|r't
dt�tj|�����y#tj$r }|j|�d|���Yd}~��d}~wwxYw)z�Execute provided readiness probe(s)

    @param wg_readinessprobes: List of readinessprobe probe(s).

    @raises: ProcessExecutionError for issues during execution of probes.
    zRunning readinessprobe: '%s'T��capture�shellz: Nz&Failed running readinessprobe command:)	r1r2r$rr?r!r6r&r)rAr'rEr7s    r+�readinessproberKxs����F�
�'��	'��I�I�4�c�!�f�=��I�I�a��T�2�'���4�R�D������8I�J�
�	
����)�)�	'��M�M�Q�C�r�!��+�&�&��	'�s�7A,�,B�?B�Bc��dg}tjd�rytj�tkr|jd�	|jj�	|jj|�y#t$rtjtd��wxYw#t$rtjtd��wxYw)z�Install wireguard packages and tools

    @param cloud: Cloud object

    @raises: Exception for issues during package
    installation.
    zwireguard-tools�wgNrzPackage update failedz!Failed to install wireguard-tools)r�whichr�kernel_version�MIN_KERNEL_VERSIONr!r=�update_package_sourcesr5�logexcr1�install_packages)r9�packagess  r+� maybe_install_wireguard_packagesrU�s���"�"�H��z�z�$�������1�1�����$��
���+�+�-��
���%�%�h�/��	�����C�0�1�
���
�����C�<�=�
��s�A>�"B&�>%B#�&%Cc	�~�	tjddd��}tjd|jj	��s.t
j
d�tjddd��yy#tj$r2}tjt
dt�t|�����d}~wwxYw)	zYLoad wireguard kernel module

    @raises: ProcessExecutionError for issues modprobe
    �lsmodTrHrzLoading wireguard kernel modulezmodprobe wireguardz Could not load wireguard module:N)r�re�search�stdout�stripr1r2r?rrRr&r$)�outr7s  r+�load_wireguard_kernel_moduler]�s���
��i�i���T�:���y�y��c�j�j�&6�&6�&8�9��I�I�7�8��I�I�*�D��E�:���%�%�����C�;�B�4��A��x�H�I�
���s�A3A7�7B<�
-B7�7B<r�cfg�args�returnc�j�d}d|vrtjd�|d}ntjd|�yt|�t�|dD]$}t	|�t|�t
||��&d|vr!|d�|d}t|�t|�ytjd�y)Nrz!Found Wireguard section in configz<Skipping module named %s, no 'wireguard' configuration found�
interfacesrKz+Skipping readinessprobe - no checks defined)	r1r2rUr]r,r8r@rFrK)rr^r9r_�
wg_sectionrrAs       r+�handlerd�s����J��c���	�	�5�6���%�
��	�	�J��	
�	�%�U�+� �"��\�*�!��&�v�.�	�V��	�&�%� �!�	�J�&��'�(�4�'�(8�9��)�*<�=��)�*��	�	�?�@r-)#�__doc__�loggingrX�	cloudinitrr�cloudinit.cloudr�cloudinit.configr�cloudinit.config.schemar�cloudinit.settingsr	r�__annotations__�	getLogger�__name__r1�	frozensetrr4r&rP�dictr,r8r@�listrFrKrUr]r$rd�r-r+�<module>rss�����	� �!�#�.�+���z�� +�}�	��j���g����!�� �!C�D����	����
�4�
�:���*�d��5��$
�$�
�,
�t�
�*�E��<�$A��$A�6�$A�%�$A�t�$A��$Ar-

Zerion Mini Shell 1.0