܍~c6ddlmZddlmZddlmZmZddlmZddl m Z ddl m Z ejeZddiZd Zd Zd ZGd d ejZGd deZeejffeejejffgZdZdS))log)net)sourcesutil)NoDHCPLeaseError)EphemeralDHCPv4)upcloud metadata_urlz'http://169.254.169.254/metadata/v1.jsoncJeZdZdZdZdZdZdZdZdZ e dZ d S) DataSourceUpCloudUpCloudFctj||||||_t |_t jt j|ddgitg|_ |j d|_ |j dt|_|j dt|_|j dt"|_d|_dS)N datasourcerr retriestimeout wait_retry)r DataSource__init__distrodictmetadatar mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfgmetadata_addressget MD_RETRIESr MD_TIMEOUTr MD_WAIT_RETRYr_network_config)selfsys_cfgrpathss E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceUpCloud.pyrzDataSourceUpCloud.__init__!s##D'65AAA  ($W|Y.GLL!    !% N ;{y*== {y*== +//, FF#c(tjSN) uc_helper read_sysinfor$s r' _get_sysinfozDataSourceUpCloud._get_sysinfo1s%'''r(cZtj|j|j|j|jS)N)r sec_betweenr)r+ read_metadatarrrrr-s r'_read_metadataz DataSourceUpCloud._read_metadata4s1&  !LL     r(cX|\}}|sdStd||jr tdt j}td|t||j 5tj tjd|j }dddn #1swxYwYn#ttjf$r2}tjtt#|Yd}~dSd}~wwxYw tdtj tjd|j }n_#tj$rM}tjtt#|td |Yd}~dSd}~wwxYw||_|d ||jd <|d |jd <|d|jd<|d|jd<|dd|jd<|dd|_|dd|_dS)NFz"Running on UpCloud. server_uuid=%szFinding a fallback NICz*Discovering metadata via DHCP interface %s)tmp_dirzReading from metadata service)logfuncmsgfuncz7Discovering metadata without DHCP-configured networkingzENo DHCP-enabled interfaces available, unable to fetch metadata for %s instance_idz instance-idhostnamezlocal-hostnamenetwork public_keysz public-keysregiondefaultavailability_zone vendor_data user_dataT)r.LOGinfoperform_dhcp_setupdebugcloudnetfind_fallback_nicrrget_tmp_exec_pathrlog_timer2rrInvalidMetaDataExceptionlogexcstr metadata_fullrrvendordata_raw userdata_raw)r$ is_upcloud server_uuidnicmdes r' _get_datazDataSourceUpCloud._get_data<s$($5$5$7$7![ 5 5{CCC  "!   2333022 FLLL$!>!>!@!@ # ;!0B%g&FG    CQ(((uuuuu   M]I7, 3    CQ(((6 uuuuu  ')vvm['I'I m$*,&&*<*< &'#%66)#4#4 i ')vvm'<'< m$-/VVHi-H-H )* ff]D99FF;55tsVA0C./'C" C."C&&C.)C&*C..D6'D11D6:AE;;G AGGcNtj|Sr*)rinstance_id_matches_system_uuidget_instance_id)r$r%s r'check_instance_idz#DataSourceUpCloud.check_instance_idss6t7K7K7M7MNNNr(c|jr|jS|jd}|stdt j||_|jS)z Configure the networking. This needs to be done each boot, since the IP and interface information might have changed due to reconfiguration. r:z/Unable to get network meta-data from server....)r#rr Exceptionr+convert_network_config)r$raw_network_configs r'network_configz DataSourceUpCloud.network_configvsi   (' '!]..y99! OMNN N(?   ##r(N) __name__ __module__ __qualname__dsnamerCrr.r2rTrXpropertyr]r(r'rrs F$$$ (((   555nOOO$$X$$$r(rceZdZdZdZdS)DataSourceUpCloudLocalaz Run in init-local using a DHCP discovery prior to metadata crawl. In init-local, no network is available. This subclass sets up minimal networking with dhclient on a viable nic so that it can talk to the metadata service. If the metadata service provides network configuration then render the network configuration for that instance based on metadata. TN)r^r_r`__doc__rCrcr(r'reres"r(rec6tj|tSr*)rlist_from_depends datasources)dependss r'get_datasource_listrks  $Wk : ::r(N) cloudinitrloggingrrErrcloudinit.net.dhcprcloudinit.net.ephemeralrcloudinit.sources.helpersr r+ getLoggerr^rArr r!r"rrreDEP_FILESYSTEM DEP_NETWORKrirkrcr(r'rtsL%$$$$$%%%%%%########//////333333::::::g!!#%NO   o$o$o$o$o$*o$o$o$d     .   g467/1DEF ;;;;;r(