%PDF- %PDF-
Direktori : /lib/python3/dist-packages/cloudinit/sources/__pycache__/ |
Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceLXD.cpython-312.pyc |
� ���fFE � �b � d Z ddlZddlZddlZddlZddlZddlmZmZ ddl m Z ddlmZm Z mZmZmZmZmZ ddlZddlmZ ddlmZ ddlmZ dd lmZmZmZmZmZ dd l m!Z! ejD e#� Z$dZ%dZ&d Z'ddddddd�Z(de)fd�Z* d2deee) de e)ef fd�Z+ G d� de� Z, G d� de� Z- G d� de� Z.de)de/fd�Z0 G d� dejb � Z2de3fd �Z4 d3d!ejj d"e)d#e3fd$�Z6 d3d!ejj d"e)d#e3dejn fd%�Z8 G d&� d'e� Z9 G d(� d)� Z:e&e9jv fd*e)d+e9de/fd,�Z<e2ejz ffgZ>d-� Z?e#d.k( rSddl@Z@d/ZA e@j� eA�0� ZCeCj� � eE ej� e<e9jv �1� � � yy)4a� Datasource for LXD, reads /dev/lxd/sock representation of instance data. Notes: * This datasource replaces previous NoCloud datasource for LXD. * Older LXD images may not have updates for cloud-init so NoCloud may still be detected on those images. * Detect LXD datasource when /dev/lxd/sock is an active socket file. * Info on dev-lxd API: https://documentation.ubuntu.com/lxd/en/latest/dev-lxd/ � N)�Flag�auto)�JSONDecodeError)�Any�Dict�List�Optional�Tuple�Union�cast)�HTTPAdapter)�HTTPConnection)�HTTPConnectionPool)� atomic_helper�sources�subp� url_helper�util)�find_fallback_nicz /dev/lxd/sockz1.0z http://lxd� user-data�network-config�vendor-data)�cloud-init.user-datazcloud-init.network-config�cloud-init.vendor-data�user.user-datazuser.network-config�user.vendor-data�returnc �J � d} t j d� rS t j dg� \ }}|j � dv r't j � d d }|dk( ry|d k( ry y| S # t j $ r"}t j d|� | cY d }~S d }~ww xY w)N�eth0zsystemd-detect-virtzHUnable to run systemd-detect-virt: %s. Rendering default network config.)�kvm�qemu�uname� �ppc64le�enp0s5�s390x�enc9�enp5s0)r �which�ProcessExecutionError�LOG�warning�stripr �system_info)�default_name� virt_type�_�err�archs �A/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceLXD.py�_get_fallback_interface_namer5 / s� � ��L��z�z�'�(� ��9�9�&;�%<�=�L�I�q� �?�?�� ! � � �#�#�%�g�.�q�1�D��y� ����������% �)�)� ��K�K�5�� � ��� �s �A- �-B"� B�B"�B"�nicsc � � t � }|rt j d|� n t � }t j d|� dd|ddd�gd�gd �S ) zCReturn network config V1 dict representing instance network config.zCLXD datasource generating network from discovered active device: %szVLXD datasource generating network from systemd-detect-virt platform default device: %s� �physical�dhcpr )�type�control)r; �name�subnets)�version�config)r r+ �debugr5 )r6 �primary_nics r4 �generate_network_configrC I sm � � $�%�K��� � � �� � 3�4��� � � +�� � � #�#�%+��?�@� � � � � c �$ � � e Zd Z� fd�Zd� Z� xZS )�SocketHTTPConnectionc �@ �� t �| � d� || _ d | _ y �N� localhost)�super�__init__�socket_path�sock��selfrL � __class__s �r4 rK zSocketHTTPConnection.__init__p s �� � ����%�&����� rD c � � t j t j t j � | _ | j j | j � y �N)�socket�AF_UNIX�SOCK_STREAMrM �connectrL �rO s r4 rV zSocketHTTPConnection.connectu s6 � ��M�M�&�.�.�&�2D�2D�E�� �� � ���$�*�*�+rD )�__name__� __module__�__qualname__rK rV � __classcell__�rP s @r4 rF rF o s �� �� ,rD rF c �$ � � e Zd Z� fd�Zd� Z� xZS )�SocketConnectionPoolc �2 �� || _ t �| � d� y rH )rL rJ rK rN s �r4 rK zSocketConnectionPool.__init__{ s �� �&��� ����%rD c �, � t | j � S rR )rF rL rW s r4 � _new_connzSocketConnectionPool._new_conn s � �#�D�$4�$4�5�5rD )rX rY rZ rK ra r[ r\ s @r4 r^ r^ z s �� �&�6rD r^ c � � e Zd Zdd�Z dd�Zy)�LXDSocketAdapterNc � � t t � S rR )r^ �LXD_SOCKET_PATH)rO �url�proxiess r4 �get_connectionzLXDSocketAdapter.get_connection� s � �#�O�4�4rD c �: � | j |j |� S rR )rh rf )rO �request�verifyrg �certs r4 �get_connection_with_tls_contextz0LXDSocketAdapter.get_connection_with_tls_context� s � � �"�"�7�;�;��8�8rD rR )NN)rX rY rZ rh rm � rD r4 rc rc � s � �5� 37�9rD rc � metadata_typec � � t |t � r|S |�i S t j |� }|�&t j dj | |�� � �|S # t $ r,}t j dj | |�� � |�d}~ww xY w)a6 Convert raw instance data from str, bytes, YAML to dict :param metadata_type: string, one of as: meta-data, vendor-data, user-data network-config :param metadata_value: str, bytes or dict representing or instance-data. :raises: InvalidMetaDataError on invalid instance-data content. NzAInvalid {md_type}. Expected str, bytes or dict but found: {value})�md_type�valuez:Invalid {md_type} format. Expected YAML but found: {value})� isinstance�dictr � load_yaml�AttributeErrorr �InvalidMetaDataException�format)ro �metadata_value�parsed_metadata�excs r4 �_raw_instance_data_to_dictr| � s� � � �.�$�'������ ���.�.��8�� ���.�.� ��v�m�>�v�J� � � ��� � ��.�.� ��v�m�>�v�J� � � ���s �A � B� 'B�Bc �& � � e Zd ZU dZej Zeee f e d<