3 \me @ s d dl Z d dlmZ d dlmZmZ d dlmZ d dlm Z d dl mZ e j eZddiZd Zd Zd ZG dd dejZG d d deZeejffeejejffgZdd ZdS ) N)net)sourcesutil)NoDHCPLeaseError)EphemeralDHCPv4)upcloudmetadata_urlz'http://169.254.169.254/metadata/v1.json c @ sH e Zd ZdZdZdd Zdd Zdd Zd d Zdd Z e d d ZdS )DataSourceUpCloudUpCloudFc C s t jj| ||| || _t | _tjtj|ddgi t g| _ | j d | _| j jdt | _| j jdt| _| j jdt| _d | _d S )NZ datasourcer r retriestimeout wait_retry)r DataSource__init__distrodictmetadatar Z mergemanydictZget_cfg_by_pathBUILTIN_DS_CONFIGZds_cfgmetadata_addressget MD_RETRIESr MD_TIMEOUTr MD_WAIT_RETRYr _network_config)selfsys_cfgr paths r '/usr/lib/python3.6/DataSourceUpCloud.pyr " s zDataSourceUpCloud.__init__c C s t j S )N) uc_helperZread_sysinfo)r r r r _get_sysinfo2 s zDataSourceUpCloud._get_sysinfoc C s t j| j| j| j| jdS )N)r Zsec_betweenr )r! Z read_metadatar r r r )r r r r _read_metadata5 s z DataSourceUpCloud._read_metadatac C s | j \}}|sdS tjd| | jryNtjd tj }tjd| t| j| t j tjd| jd}W d Q R X W n6 tt jfk r } zt jtt| dS d }~X nX ndy"tjd t j tjd| jd}W n@ t jk r } z t jtt| tjd| dS d }~X nX || _|jd || jd <