File: //lib/python3.6/site-packages/cloudinit/sources/__pycache__/DataSourceLXD.cpython-36.opt-1.pyc
3
�q�h9D � @ s: d Z ddlZddlZddlZddlZddlmZmZ ddlm Z ddl
mZmZm
Z
mZmZmZmZ ddlZddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZmZmZ ddl m!Z! ej"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�ZCeCjD� eEejFe<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://lxdz user-dataznetwork-configzvendor-data)zcloud-init.user-datazcloud-init.network-configzcloud-init.vendor-datazuser.user-datazuser.network-configzuser.vendor-data)�returnc C s� d} t jd�r�yt j dg�\}}W n. t jk
rP } ztjd|� | S d }~X nX |j� d
kr�tj� d d }|dkrzd S |d
kr�dS dS | S )NZeth0zsystemd-detect-virtzHUnable to run systemd-detect-virt: %s. Rendering default network config.�kvm�qemu�uname� Zppc64leZenp0s5Zs390xZenc9Zenp5s0)r r )r ZwhichZProcessExecutionError�LOG�warning�stripr Zsystem_info)Zdefault_nameZ virt_type�_�errZarch� r �#/usr/lib/python3.6/DataSourceLXD.py�_get_fallback_interface_name/ s&