HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceHetzner.cpython-38.pyc
U

Ӈg��@s�dZddlZddlmmmZddlmZm	Z	mZm
Z
ddlmZddl
mZe�e�ZdZededd	�Zd
ZdZdZGdd
�d
ej�Zdd�ZeejffgZdd�ZdS)z;Hetzner Cloud API Documentation
https://docs.hetzner.cloud/�N)�dmi�net�sources�util)�NoDHCPLeaseError)�EphemeralDHCPv4z!http://169.254.169.254/hetzner/v1z	/metadataz	/userdata)�metadata_url�userdata_url�<�c@s4eZdZdZdd�Zdd�Zdd�Zedd	��Zd
S)�DataSourceHetzner�HetznercCs�tj�||||�||_t�|_t�t�|ddgi�t	g�|_
|j
d|_|j
d|_|j
�
dt�|_|j
�
dt�|_|j
�
dt�|_tj|_tj|_d|_dS)NZ
datasourcer
rr	�retries�timeout�
wait_retry)r�
DataSource�__init__�distro�dict�metadatarZ
mergemanydictZget_cfg_by_path�BUILTIN_DS_CONFIGZds_cfg�metadata_address�userdata_address�get�
MD_RETRIESr�
MD_TIMEOUTr�
MD_WAIT_RETRYr�UNSET�_network_configZDSMODE_NETWORKZdsmode�
metadata_full)�self�sys_cfgr�paths�r#�E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceHetzner.pyr"s ��zDataSourceHetzner.__init__c
Cs t�\}}|sdSzbt|jt��dtdigd��:tj|j|j	|j
|jd�}tj|j
|j	|j
|jd�}W5QRXWn0tk
r�}zt�d|��W5d}~XYnXt�|�|_||_|d|jd<|d|jd	<|�d
d�|jd
<|�dd�|jd<|�dd�|_|��|k�rtd
��dS)NFZurlz/metadata/instance-id)ZifaceZconnectivity_urls_data)rZsec_betweenrzBailing, DHCP Exception: %szinstance-idZhostnamezlocal-hostname�network-configzpublic-keysZvendor_dataz6SMBIOS serial does not match instance ID from metadataT)�get_hcloud_datarrrZfind_fallback_nic�BASE_URL_V1�	hc_helperZ
read_metadatarrrrZ
read_userdatarr�LOG�errorrZmaybe_b64decodeZuserdata_rawrrrZvendordata_raw�get_instance_id�RuntimeError)r Z
on_hetzner�serialZmdZud�er#r#r$�	_get_data5sN
���	��	�zDataSourceHetzner._get_datacCst�|��d�S)N�system-serial-number)rZinstance_id_matches_system_uuidr+)r r!r#r#r$�check_instance_idps�z#DataSourceHetzner.check_instance_idcCsT|jdkr t�dtj�tj|_|jtjkr2|jS|jd}|sHtd��||_|jS)z�Configure the networking. This needs to be done each boot, since
        the IP information may have changed due to snapshot and/or
        migration.
        Nz5Found None as cached _network_config. Resetting to %sr%z'Unable to get meta-data from server....)rr)Zwarningrrrr,)r Z_net_configr#r#r$�network_configus
�
z DataSourceHetzner.network_configN)	�__name__�
__module__�__qualname__Zdsnamerr/r1�propertyr2r#r#r#r$rs;rcCsBt�d�}|dkrdSt�d�}|r2t�d|�ntd��d|fS)Nzsystem-manufacturerr
)FNr0z#Running on Hetzner Cloud: serial=%sz+Hetzner Cloud detected, but no serial foundT)rZ
read_dmi_datar)�debugr,)Zvendor_namer-r#r#r$r&�s

r&cCst�|t�S)N)rZlist_from_depends�datasources)Zdependsr#r#r$�get_datasource_list�sr9)�__doc__ZloggingZ!cloudinit.sources.helpers.hetznerrZhelpersZhetznerr(Z	cloudinitrrrZcloudinit.net.dhcprZcloudinit.net.ephemeralrZ	getLoggerr3r)r'rrrrrrr&ZDEP_FILESYSTEMr8r9r#r#r#r$�<module>s$
�q
�