File: //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceOVF.cpython-38.pyc
U
Ӈg�2 � @ s d Z ddlZddlZddlZddlZddlmZ ddlZddlm Z m
Z
mZ e�e
�ZG dd� de j�ZG dd� de�Zd#d
d�Zdd
� Zdd� Zd$dd�Zdd� Zdd� Zdd� Zdd� Zdd� ZG dd� de�Zee jffee je jfffZdd � Z d!d"� Z!dS )%zZCloud-Init DataSource for OVF
This module provides a cloud-init datasource for OVF data.
� N)�minidom)�sources�subp�utilc @ sL e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z e
dd� �ZdS )�
DataSourceOVFZOVFc C sF t j�| |||� d | _tj�|jd�| _d | _i | _ d| _
d | _d S )NZovf)�/zfile://)r �
DataSource�__init__�seed�os�path�join�seed_dir�environment�cfg�supported_seed_starts�_network_config��selfZsys_cfgZdistro�paths� r �A/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOVF.pyr s zDataSourceOVF.__init__c C s t j�| �}d|| jf S )Nz%s [seed=%s])r r �__str__r
)r �rootr r r r ) s zDataSourceOVF.__str__c C s� g }i }d}d}ddi}t | jj�\}}|r^tj�| jj|�}t|�\}}} || _|�|� nndt fdt
fg}
d }|
D ]\}}|� }|rv q�qv|r�t|d�\}}} || _d|kr�|d r�|d | _|�|� t|�dkr�d S d
|k�rr|d
�rr|d
}
d }| j
D ]}|
�|��r|} �q �q|�s8t�d|
| � d S tj|
d d�\}}}}t�d
|
� t�||g�}|�|
� t�||g�}d�|�| _|| _|| _|| _| | _dS )N� �instance-idz iid-dsovfzcom.vmware.guestInfoZisoT�network-configr F�seedfromz Seed from %s not supported by %s)ZtimeoutzUsing seeded cache data from %s�,)�get_ovf_envr r r r r
�read_ovf_environmentr �append�transport_vmware_guestinfo�transport_iso9660r �lenr �
startswith�LOG�debugr Zread_seededZ
mergemanydictr
�metadataZuserdata_rawZvendordata_rawr )r �found�md�udZvd�defaultsZseedfile�contentsr
r Znp�nameZ transfuncr Z seedfound�protoZmd_seed�_r r r � _get_data- sd ��
zDataSourceOVF._get_datac C s
d| j S )Nzovf (%s))r
�r r r r �_get_subplatformo s zDataSourceOVF._get_subplatformc C s0 d| j krg S | j d }t|t�r&|S |gS d S )N�public-keys)r( �
isinstance�list)r Zpksr r r �get_public_ssh_keysr s
z!DataSourceOVF.get_public_ssh_keysc C s | j S �N)r r2 r r r �get_config_obj~ s zDataSourceOVF.get_config_objc C s | j S r8 )r r2 r r r �network_config� s zDataSourceOVF.network_configN)�__name__�
__module__�__qualname__Zdsnamer r r1 r3 r7 r9 �propertyr: r r r r r s Br c @ s e Zd Zdd� ZdS )�DataSourceOVFNetc C s, t �| |||� tj�|jd�| _d| _d S )Nzovf-net)zhttp://zhttps://)r r r r r
r r r r r r r � s zDataSourceOVFNet.__init__N)r; r<