/usr/lib/python3.6/site-packages/cloudinit/sources/__pycache__
NameSizeModeActions
DataSourceAkamai.cpython-36.opt-1.pyc83770644editdlrm
DataSourceAkamai.cpython-36.pyc83770644editdlrm
DataSourceAliYun.cpython-36.opt-1.pyc32970644editdlrm
DataSourceAliYun.cpython-36.pyc32970644editdlrm
DataSourceAltCloud.cpython-36.opt-1.pyc69050644editdlrm
DataSourceAltCloud.cpython-36.pyc69050644editdlrm
DataSourceAzure.cpython-36.opt-1.pyc491140644editdlrm
DataSourceAzure.cpython-36.pyc491140644editdlrm
DataSourceBigstep.cpython-36.opt-1.pyc18850644editdlrm
DataSourceBigstep.cpython-36.pyc18850644editdlrm
DataSourceCloudSigma.cpython-36.opt-1.pyc37100644editdlrm
DataSourceCloudSigma.cpython-36.pyc37100644editdlrm
DataSourceCloudStack.cpython-36.opt-1.pyc61150644editdlrm
DataSourceCloudStack.cpython-36.pyc61150644editdlrm
DataSourceConfigDrive.cpython-36.opt-1.pyc83730644editdlrm
DataSourceConfigDrive.cpython-36.pyc83730644editdlrm
DataSourceDigitalOcean.cpython-36.opt-1.pyc37380644editdlrm
DataSourceDigitalOcean.cpython-36.pyc37380644editdlrm
DataSourceEc2.cpython-36.opt-1.pyc240580644editdlrm
DataSourceEc2.cpython-36.pyc240580644editdlrm
DataSourceExoscale.cpython-36.opt-1.pyc60670644editdlrm
DataSourceExoscale.cpython-36.pyc60670644editdlrm
DataSourceGCE.cpython-36.opt-1.pyc100690644editdlrm
DataSourceGCE.cpython-36.pyc101720644editdlrm
DataSourceHetzner.cpython-36.opt-1.pyc38710644editdlrm
DataSourceHetzner.cpython-36.pyc38710644editdlrm
DataSourceIBMCloud.cpython-36.opt-1.pyc127350644editdlrm
DataSourceIBMCloud.cpython-36.pyc127350644editdlrm
DataSourceLXD.cpython-36.opt-1.pyc136260644editdlrm
DataSourceLXD.cpython-36.pyc136260644editdlrm
DataSourceMAAS.cpython-36.opt-1.pyc121490644editdlrm
DataSourceMAAS.cpython-36.pyc121490644editdlrm
DataSourceNoCloud.cpython-36.opt-1.pyc81660644editdlrm
DataSourceNoCloud.cpython-36.pyc81660644editdlrm
DataSourceNone.cpython-36.opt-1.pyc15050644editdlrm
DataSourceNone.cpython-36.pyc15050644editdlrm
DataSourceNWCS.cpython-36.opt-1.pyc38630644editdlrm
DataSourceNWCS.cpython-36.pyc38630644editdlrm
DataSourceOpenNebula.cpython-36.opt-1.pyc120300644editdlrm
DataSourceOpenNebula.cpython-36.pyc120300644editdlrm
DataSourceOpenStack.cpython-36.opt-1.pyc81000644editdlrm
DataSourceOpenStack.cpython-36.pyc81000644editdlrm
DataSourceOracle.cpython-36.opt-1.pyc112510644editdlrm
DataSourceOracle.cpython-36.pyc112510644editdlrm
DataSourceOVF.cpython-36.opt-1.pyc93690644editdlrm
DataSourceOVF.cpython-36.pyc93690644editdlrm
DataSourceRbxCloud.cpython-36.opt-1.pyc73620644editdlrm
DataSourceRbxCloud.cpython-36.pyc73620644editdlrm
DataSourceScaleway.cpython-36.opt-1.pyc111020644editdlrm
DataSourceScaleway.cpython-36.pyc111020644editdlrm
DataSourceSmartOS.cpython-36.opt-1.pyc250990644editdlrm
DataSourceSmartOS.cpython-36.pyc250990644editdlrm
DataSourceUpCloud.cpython-36.opt-1.pyc44680644editdlrm
DataSourceUpCloud.cpython-36.pyc44680644editdlrm
DataSourceVMware.cpython-36.opt-1.pyc242300644editdlrm
DataSourceVMware.cpython-36.pyc242300644editdlrm
DataSourceVultr.cpython-36.opt-1.pyc35220644editdlrm
DataSourceVultr.cpython-36.pyc35220644editdlrm
__init__.cpython-36.opt-1.pyc312500644editdlrm
__init__.cpython-36.pyc312500644editdlrm
Edit: /usr/lib/python3.6/site-packages/cloudinit/sources/__pycache__/DataSourceAkamai.cpython-36.pyc (8377B)
3 \me2 @s.ddlZddlZddlZddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZmZmZddlmZmZddlmZdd lmZmZmZejeZd d d d dddddddddgdZGddde Z Gdddej!Z"Gddde"Z#e#ej$ffe"ej$ej%ffgZ&e ej!dddZ'dS)N) b64decode)suppress)Enum)AnyListTupleUnion)sources url_helperutil)find_fallback_nicget_interfaces_by_mac)EphemeralIPNetwork)get_dmi_configget_local_instance_id is_on_akamaizhttp://169.254.169.254zhttp://[fd00:a9fe:a9fe::1])ipv4ipv6z /v1/tokenz /v1/instancez /v1/user-data)tokenmetadatauserdataTzf2:3) base_urlspathsallow_local_stageallow_init_stage allow_dhcp allow_ipv4 allow_ipv6preferred_mac_prefixesc@seZdZdZdZdZdZdS)MetadataAvailabilityResultzj Used to indicate how this instance should behave based on the availability of metadata to it rN)__name__ __module__ __qualname____doc__ NOT_AVAILABLE AVAILABLEDEFERr)r)&/usr/lib/python3.6/DataSourceAkamai.pyr-src@seZdZdZdZddZdeeedddZe dd d Z e dd d Z e dd dZ e eeeefefdddZdeedddZedddZedddZdS)DataSourceAkamaiAkamaiFcCsJtjdtjj||||t|_tjt tj |ddgit g|_ dS)NzSetting up Akamai DataSourceZ datasourcer,) LOGdebugr DataSource__init__dictrr Z mergemanydictrZget_cfg_by_pathBUILTIN_DS_CONFIGds_cfg)selfsys_cfgdistrorr)r)r*r0<s zDataSourceAkamai.__init__) path_nameuse_v6returncCs\||jdkrtdj|d}|s0|jd r4d}|jd|}|jd|}dj||S)z Looks up the path for a given name and returns a full url for it. If use_v6 is passed in, the IPv6 base url is used; otherwise the IPv4 url is used unless IPv4 is not allowed in ds_cfg rzUnknown path name {}rrrrz{}{})r3 ValueErrorformat)r4r7r8Z version_keyZbase_urlpathr)r)r* _build_urlNszDataSourceAkamai._build_url)r9cCsZ|jd r|jd s0|jd r@|jd r@tjdtjS|jrN|jS|jSdS)z Returns whether metadata should be retrieved at this stage, at the next stage, or never, in the form of a MetadataAvailabilityResult. rrrrz*Configuration prohibits fetching metadata.N)r3r-inforr& local_stage_should_fetch_data_local_should_fetch_data_network)r4r)r)r*_should_fetch_data`s   z#DataSourceAkamai._should_fetch_datacCsH|jdstjdtjS|jd rB|jd rBtjdtjStjS)z Returns whether metadata should be retrieved during the local stage, or if it should wait for the init stage. rz)Configuration prohibits local stage setuprrz9Configuration does not allow for ephemeral network setup.)r3r-r>rr(r')r4r)r)r*r@ts  z)DataSourceAkamai._should_fetch_data_localcCs |jdstjdtjStjS)zS Returns whether metadata should be fetched during the init stage. rz1Configuration does not allow for init stage setup)r3r-r>rr(r')r4r)r)r*rAs  z+DataSourceAkamai._should_fetch_data_networkcsg}|jrt}d}|jd}x0|jD]$\}tfdd|Dr(|}Pq(W|dkrhtjdt}g}|jdr|jt |j |ddd df|jd r|jd r|jt |j |dd dfn4|jdr|jt df|jd r|jt df|S) z Returns a list of context managers which should be tried when setting up a network context. If we're running in init mode, this return a noop since networking should already be configured. Nrcsg|]}j|qSr)) startswith).0prefix)macr)r* szBDataSourceAkamai._get_network_context_managers..zGFailed to find default interface, attempting DHCP on fallback interfacerFT)rrrr)r) r?r r3itemsanyr-warningr appendrr6noop)r4network_context_managersZ interfacesZ interfaceZpreferred_prefixesinfr))rFr*_get_network_context_managerssN      z.DataSourceAkamai._get_network_context_managers)r8r9cCs4ytj|jd|dddddddid }|jd krBtjd |jd St|}tj|jd |ddddd|dd}tjt||_ tj|jd|ddddd|id}t||_ yt |j j |_ Wn0t jk r}ztjd|WYdd}~XnXWn<tjk r.}ztjd|rdnd|dSd}~XnXd S)z Runs through the sequence of requests necessary to retrieve our metadata and user data, creating a token for use in doing so, capturing the results. r)r8ZPUTr!zMetadata-Token-Expiry-SecondsZ300)Zrequest_methodtimeout sec_betweenretriesheadersz-Fetching token returned %s; not fetching dataTrzapplication/json)ZAcceptzMetadata-Token)rRrSrTrUrzMetadata-Tokenz*Failed to base64 decode userdata due to %sNz1Failed to retrieve metadata using IPv%s due to %s64F)r Zreadurlr=coder-r>strjsonloadsrZ userdata_rawrdecodebinasciiErrorrJZUrlError)r4r8Ztoken_responserrrer)r)r*_fetch_metadatasP        " z DataSourceAkamai._fetch_metadatac CstjdtstjddSt}d|i|_|j}|tjkrf|tj krXtjddStjddS|j }xP|D]>\}}|,|j |d}|r|jj d ||jd<PWd QRXqtWtj d dS) zW Overrides _get_data in the DataSource class to actually retrieve data z#Getting data from Akamai DataSourcez#Not running on Akamai, not running.Fz instance-idz5Metadata is not available, returning local data only.TzFConfigured not to fetch data at this stage; waiting for a later stage.)r8idNzHFailed to contact metadata service, falling back to local metadata only.)r-r.rr>rrrBrr'r&rOragetrJ)r4Zlocal_instance_idZ availabilityrMZmanagerr8doner)r)r* _get_data's6       zDataSourceAkamai._get_datacCstj|jdS)zj A local-only check to see if the instance id matches the id we see on the system zsystem-serial-number)r Zinstance_id_matches_system_uuidZget_instance_id)r4r5r)r)r*check_instance_id[sz"DataSourceAkamai.check_instance_idN)F)F)r"r#r$Zdsnamer?r0rZboolr=rrBr@rArrrrrrOrarerfr)r)r)r*r+8s "MD4r+c@seZdZdZdZdS)DataSourceAkamaiLocalz A subclass of DataSourceAkamai that runs the same functions, but during the init-local stage. This allows configuring networking via cloud-init, as networking hasn't been configured yet. TN)r"r#r$r%r?r)r)r)r*rhesrh)r9cCs tj|tS)N)r Zlist_from_depends datasources)Zdependsr)r)r*get_datasource_listsrj)(r^r[Zloggingbase64r contextlibrrLenumrZtypingrrrrZ cloudinitr r r Z cloudinit.netr r Zcloudinit.net.ephemeralrZ cloudinit.sources.helpers.akamairrrZ getLoggerr"r-r2rr/r+rhZDEP_FILESYSTEMZ DEP_NETWORKrirjr)r)r)r*s@       /