| Current Path : /lib/python3/dist-packages/cloudinit/sources/__pycache__/ |
| Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceLXD.cpython-38.pyc |
U
�Ad�D � @ s: d Z ddlZddlZddlZddlZddlmZmZ ddlm Z ddl
mZmZm
Z
mZmZmZmZ ddlZddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZmZmZ ddl m!Z! e�"e#�Z$dZ%d
Z&dZ'ddddddd�Z(e)d�dd�Z*d:ee
e) ee)ef d�dd�Z+G dd� de�Z,G dd� de�Z-G dd� de�Z.e)e/d�d d!�Z0G d"d#� d#ej1�Z2e3d�d$d%�Z4d;ej5e)e3d'�d(d)�Z6d<ej5e)e3ej7d*�d+d,�Z8G d-d.� d.e�Z9G d/d0� d0�Z:e&e9j;fe)e9e/d1�d2d3�Z<e2ej=ffgZ>d4d5� Z?e#d6k�r6ddl@Z@d7ZAe@jBeAd8�ZCeC�D� eEe�Fe<e9j;d9��� dS )=a� 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://linuxcontainers.org/lxd/docs/master/dev-lxd
� N)�Flag�auto)�JSONDecodeError)�Any�Dict�List�Optional�Tuple�Union�cast)�HTTPAdapter)�HTTPConnection)�HTTPConnectionPool)�log)�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
C s� d} t �d�r�zt � dg�\}}W n8 t jk
rZ } zt�d|� | W Y �S d }~X Y nX |�� dkr�t�� d d }|dkr�dS |d kr�d
S dS | S )NZeth0zsystemd-detect-virtzHUnable to run systemd-detect-virt: %s. Rendering default network config.)ZkvmZqemu�uname� Zppc64leZenp0s5Zs390xZenc9Zenp5s0)r ZwhichZProcessExecutionError�LOG�warning�stripr Zsystem_info)Zdefault_nameZ virt_type�_�errZarch� r% �A/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceLXD.py�_get_fallback_interface_name/ s$
�r'