x[hddlZddlmZddlmZmZmZmZmZm Z ddl m Z ddl m Z ejeZdZdedziZd Zd Zd ZGd d ej,Zd ZdZddZeej6ffgZy)N) exceptions)dminetsourcessubp url_helperutil)NoDHCPLeaseError)EphemeralDHCPv4zhttp://169.254.169.254/api/v1 metadata_urlz /metadatac^eZdZdZdZdeddffd ZdZdZe d Z e d Z xZ S) DataSourceNWCSNWCScJtjj||||||_t |_t jt j|ddgitg|_ |jd|_ |jjdt|_|jjdt|_|jjdt"|_tj&|_tj*|_d|_y)N datasourcerr retriestimeout wait_retry)r DataSource__init__distrodictmetadatar mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfgmetadata_addressget MD_RETRIESr MD_TIMEOUTr MD_WAIT_RETRYrUNSET_network_configDSMODE_NETWORKdsmode metadata_full)selfsys_cfgrpathss B/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNWCS.pyrzDataSourceNWCS.__init__s##D'65A  (($$W|V.DbI!   !% N ;{{y*= {{y*= ++//, F&}},, !ci_pkl_versionreturnNcht|||jstj|_yyN)super _unpickler&rr%)r*r/ __class__s r-r4zDataSourceNWCS._unpickle0s* .)###*==D $r.c8|j}| td||_|d|jd<|d|jd<|d|jd<|d|jd<|j dd|_|j dd|_y ) Nzfailed to get metadataz instance-idz public-keysnetworkhostnamezlocal-hostnameuserdata vendordataT) get_metadata RuntimeErrorr)rr! userdata_rawvendordata_raw)r*mds r- _get_datazDataSourceNWCS._get_data5s     :78 8')-'8 m$')-'8 m$#%i= i *,Z. &'FF:t4 ff\48r.c tjdt|jt j dt dzig5t|j|j|j|jcdddS#1swYyxYw#ttjtt j"f$r}tj%d|d}~wwxYw)Nz#Attempting to get metadata via DHCPurlz/metadata/instance-id)ifaceconnectivity_urls_datar sec_betweenrzDHCP failure: %s)LOGinfor rrfind_fallback_nic BASE_URL_V1 read_metadatar rrrr rProcessExecutionErrorr<rRequestExceptionerror)r*es r-r;zDataSourceNWCS.get_metadataHs  HH: ;  ++-{-DD( %)) LL $ LL    "   & &   ' '    II(! ,  s6A B 7B  B BBB-C!CC!ctjd|jtjk7r |jS|j dds t d|j ddD]2}t|d}|stjd|d|||d<4|j d|_|jS)Nz Attempting network configurationr7configz"Unable to get metadata from server mac_addresszOverriding %s with %sname) rGdebugr&rr%rr<get_interface_namerH)r*i iface_names r-network_configzDataSourceNWCS.network_configes 45   7== 0'' '}}Y'1CD Dy)(3 'A+Am,<=J0!F)ZH&&  ' $}}Y7###r.c2dtjdk(S)Nrzsystem-manufacturer)r read_dmi_datar.r- ds_detectzDataSourceNWCS.ds_detect{s**+@AAAr.)__name__ __module__ __qualname__dsnamerintr4r@r;propertyrX staticmethodr\ __classcell__)r5s@r-rrsT F"$111 &:$$*BBr.rcVtj}||vry|j|Sr2)rget_interfaces_by_macr!)mac macs_to_nics r-rUrUs*++-K + ??3 r.c6tj|tSr2)rlist_from_depends datasources)dependss r-get_datasource_listrms  $ $Wk ::r.ctj||||}|jstd|zt j |j jS)NrEzunable to read metadata at %s)rreadurlokr<r load_jsoncontentsdecode)rBrrFrresponses r-rKrKsU!! W+wH ;;=:S@AA >>(++224 55r.)rur )loggingrequestsr cloudinitrrrrrr cloudinit.net.dhcpr cloudinit.net.ephemeralr getLoggerr]rGrJrr"r#r$rrrUrmrKDEP_FILESYSTEMrkr[r.r-r}s ??/3g!- K+-   cBW''cBL ;6g,,./ r.