File: //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceConfigDrive.cpython-38.pyc
U
Ӈg�, � @ s� d dl Z d dlZd dlmZmZmZmZ d dlmZm Z d dl
mZ d dlm
Z
d dlmZ e �e�ZdZdeiZd Zd
ZdZedd
� eD ��ZG dd� dejej�Zdd� Zdd� Zddd�Zdd� Z ddd�Z!eZ"eej#ffgZ$dd� Z%dS )� N)� lifecycle�sources�subp�util)�
EventScope� EventType)�eni)�get_ibm_platform)� openstackziid-dsconfigdrive�instance-id)ZvfatZiso9660)zconfig-2zCONFIG-2)�srZcdc c s( | ] }t d �D ]}d||f V qqdS )� z /dev/%s%sN)�range)�.0�z�i� r �I/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceConfigDrive.py� <genexpr> s
r c sr e Zd ZdZejejejej ej
hiZ� fdd�Zdd� Z
dd� Zdd � Zed
d� �Zedd
� �Zdd� Z� ZS )�DataSourceConfigDriveZConfigDrivec s\ t t| ��|||� d | _tj�|jd�| _d | _d | _ d | _
tj| _
d | _d | _i | _d S )NZconfig_drive)�superr �__init__�source�os�path�join�seed_dir�version�ec2_metadata�_network_configr �UNSET�network_json�network_eni�
known_macs�files)�self�sys_cfg�distro�paths�� __class__r r r . s zDataSourceConfigDrive.__init__c C s0 t j�| �}d|| j| jf }|d| j 7 }|S )Nz%s [%s,ver=%s]z[source=%s])r �
DataSource�__str__�dsmoder r )r% �rootZmstrr r r r, : s zDataSourceConfigDrive.__str__c
C s� d }i }i }| j dfD ]N}tj�|�s(qzt|�}|}W qfW q tjk
rb t�t d|� Y qX q|�s| j
�d�}t|d�D ]�}d }t�
� r�|�d�r�d}ztj|t|d�}|}W nN tjk
r� Y n: tjk
r� Y n& tjk
�r t�t d|� Y nX |r� �qq�|�sd S |�d
i �}t�|tg�}| �|�d�| j�d�|d d
k�rbtjnd g�| _| jtjk�r~d S t| j�}|d } || k�r�t|| j| jtjkd� | jtjk�r�t �d| | j� d S || _|| _ |�d�| _!|�d�| _"|d | _#| j$�%|�di �� |�d�}
zt�&|
�| _'W n6 t(k
�rf } zt �)d|� d | _'W 5 d }~X Y nX |�d�}zt�&|�| _*W n6 t(k
�r� } zt �)d|� d | _*W 5 d }~X Y nX |�d�| _+|�d�| _,dS )Nz
/config-drivez#Failed reading config drive from %sZdatasource_list)�dslistz/dev/cdZcd9660)�mtypezBroken config drive: %sF�metadatar- r � r )r'