| Current Path : /usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/ |
| Current File : //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceOpenNebula.cpython-38.pyc |
U
�Ad�? � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z m
Z
mZmZ e�
e�ZdZdZdgZG dd� de
j�ZG d d
� d
e�ZG dd� de�ZG d
d� d�Zdd� Zdd� Zddd�Zddd�Zdd� ZeZee
jffgZ dd� Z!dS )� N)�log)�net�sources�subp�utilziid-dsopennebulaZnobody�
context.shc @ sF e Zd ZdZdd� Zdd� Zdd� Zdd � Zed
d� �Z dd
d�Z
dS )�DataSourceOpenNebulaZ
OpenNebulac C s. t j�| |||� d | _tj�|jd�| _d S )NZ
opennebula)r �
DataSource�__init__�seed�os�path�join�seed_dir)�selfZsys_cfg�distro�paths� r �H/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenNebula.pyr
$ s zDataSourceOpenNebula.__init__c C s t j�| �}d|| j| jf S )Nz%s [seed=%s][dsmode=%s])r r �__str__r �dsmode)r �rootr r r r ) s zDataSourceOpenNebula.__str__c
C s� dt i}d }d }t}d| jkr*| j�d�}| jg}|�t� � |D ]�}zLtj� | j�rht
|| j|d�}n(|�d�r�t
jt
|| jd�}t�||�}W n\ tk
r� Y qBY nF tk
r� } z|�W 5 d }~X Y n" tjk
r� t�d|� Y nX |rB|}t�d|� �qqB|�sdS |d } t�| |g�} | �|�d
�| j�d�g�| _| jtjk�r\dS || _|�d�| _| | _|�d
�| _dS )Nzinstance-id� parseuser��asuserz/dev)r r z%s was not mountablezfound datasource in %sF�metadataZDSMODEr �network-interfaces�userdataT) �DEFAULT_IID�DEFAULT_PARSEUSERZds_cfg�getr �extend�find_candidate_devsr r
�isdir�read_context_disk_dirr �
startswith� functools�partialr Zmount_cb�NonContextDiskDir�BrokenContextDiskDirZMountFailedError�LOG�warning�debugZ
mergemanydictZ_determine_dsmoder r ZDSMODE_DISABLEDr �networkr Zuserdata_raw)
r �defaults�resultsr r Z
candidatesZcdevZpartially_applied_func�excZmdr r r � _get_data- s^
�
��zDataSourceOpenNebula._get_datac C s$ | j | jkrd}nd}d|| jf S )z/Return the subplatform metadata source details.zseed-dirzconfig-diskz%s (%s))r r )r Zsubplatform_typer r r �_get_subplatformj s z%DataSourceOpenNebula._get_subplatformc C s | j d k r| j S d S d S �N)r- )r r r r �network_configr s
z#DataSourceOpenNebula.network_configFc C s. |d kr| j tjkrd}nd}tj�| ||�S )NTF)r r ZDSMODE_NETWORKr �get_hostname)r ZfqdnZ
resolve_ipZ
metadata_onlyr r r r5 y s
z!DataSourceOpenNebula.get_hostnameN)FFF)�__name__�
__module__�__qualname__Zdsnamer
r r1 r2 �propertyr4 r5 r r r r r s =
r c @ s e Zd ZdS )r( N�r6 r7 r8 r r r r r( � s r( c @ s e Zd ZdS )r) Nr: r r r r r) � s r) c @ s� e Zd Zddd�Zdd� Zdd� Zdd � Zd
d� Zdd
� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zddd�Zdd� ZdS ) �OpenNebulaNetworkNc C s| || _ |d krt|�}t�dd� t|�� dd� d�D ��| _i | _|�� D ],\}}t� d|�}|rJ|�
d�| j|�� <