3
\me? @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm Z m
Z
mZmZ ej
eZdZdZdgZG dd de
jZG dd d eZG d
d deZG dd
d
Zdd Zdd ZdddZdddZdd ZeZee
jffgZ dd Z!dS ) N)
atomic_helpernetsourcessubputilziid-dsopennebulaZnobodyz
context.shc @ sF e Zd ZdZdd Zdd Zdd Zdd Zed
d Z dd
dZ
dS )DataSourceOpenNebulaZ
OpenNebulac C s. t jj| ||| d | _tjj|jd| _d S )NZ
opennebula)r
DataSource__init__seedospathjoinseed_dir)selfZsys_cfgdistropaths r */usr/lib/python3.6/DataSourceOpenNebula.pyr $ s zDataSourceOpenNebula.__init__c C s t jj| }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*| jjd}| jg}|jt x|D ]}yLtjj | jrjt
|| j|d}n(|jdrt
jt
|| jd}tj||}W nZ tk
r wDY nF tk
r } z
|W Y d d }~X n" tjk
r tjd| Y nX |rD|}tjd| P qDW |sdS |d } tj| |g} | j|jd
| jjdg| _| jtjkrZdS || _|jd| _| | _|jd
| _dS )Nzinstance-id parseuser)asuserz/dev)r r z%s was not mountablezfound datasource in %sFmetadataZDSMODEr znetwork-interfacesuserdataT) DEFAULT_IIDDEFAULT_PARSEUSERZds_cfggetr extendfind_candidate_devsr r isdirread_context_disk_dirr
startswith functoolspartialr Zmount_cbNonContextDiskDirBrokenContextDiskDirZMountFailedErrorLOGwarningdebugZ
mergemanydictZ_determine_dsmoder r ZDSMODE_DISABLEDr
networkr Zuserdata_raw)
r Zdefaultsresultsr
r Z
candidatesZcdevZpartially_applied_funcexcZmdr r r _get_data- sT
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}tjj| ||S )NTF)r r ZDSMODE_NETWORKr get_hostname)r ZfqdnZ
resolve_ipZ
metadata_onlyr r r r0 y s
z!DataSourceOpenNebula.get_hostnameN)FFF)__name__
__module____qualname__Zdsnamer r r- r. propertyr/ r0 r r r r r s =r c @ s e Zd ZdS )r% N)r1 r2 r3 r r r r r% s r% c @ s e Zd ZdS )r&