HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceHetzner.cpython-312.pyc
�

�fB���dZddlZddlmcmcmZddlmZm	Z	mZm
Z
ddlmZddl
mZeje�ZdZedzedzd	�Zd
ZdZdZGd�d
ej.�Zd�Zeej4ffgZd�Zy)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�2�eZdZdZd�Zd�Zd�Zed��Zy)�DataSourceHetzner�Hetznerc�d�tjj||||�||_t	�|_t
jt
j|ddgi�tg�|_
|jd|_|jd|_|jjdt�|_|jjdt �|_|jjdt$�|_tj(|_tj,|_y)N�
datasourcerr	r
�retries�timeout�
wait_retry)r�
DataSource�__init__�distro�dict�metadatar�
mergemanydict�get_cfg_by_path�BUILTIN_DS_CONFIG�ds_cfg�metadata_address�userdata_address�get�
MD_RETRIESr�
MD_TIMEOUTr�
MD_WAIT_RETRYr�UNSET�_network_config�DSMODE_NETWORK�dsmode)�self�sys_cfgr�pathss    �E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceHetzner.pyrzDataSourceHetzner.__init__"s������#�#�D�'�6�5�A�������
��(�(��$�$�W�|�Y�.G��L�!�
�
���!%���N� ;��� $���N� ;����{�{���y�*�=����{�{���y�*�=����+�+�/�/�,�
�F���&�}�}����,�,���c�z�t�\}}|sy	t|jtj�dt
dzi��5t
j|j|j|j|j��}t
j|j|j|j|j��}ddd�t#j$�|_|_|d|j*d<|d|j*d	<|j-d
d�|j*d
<|j-dd�|j*d<|j-dd�|_|j1�|k7rt3d
��y#1swY��xYw#t$r}tj!d|��d}~wwxYw)NF�urlz/metadata/instance-id)�iface�connectivity_url_data)r�sec_betweenrzBailing, DHCP Exception: %szinstance-id�hostnamezlocal-hostname�network-configzpublic-keys�vendor_dataz6SMBIOS serial does not match instance ID from metadataT)�get_hcloud_datarrr�find_fallback_nic�BASE_URL_V1�	hc_helper�
read_metadatarrrr�
read_userdatarr�LOG�errorr�maybe_b64decode�userdata_raw�
metadata_fullrr �vendordata_raw�get_instance_id�RuntimeError)r(�
on_hetzner�serial�md�ud�es      r+�	_get_datazDataSourceHetzner._get_data4s���.�0���V���	� �����+�+�-��;�)@�@�'��
��,�,��)�)� �L�L� $��� �L�L�	���,�,��)�)� �L�L� $��� �L�L�	��
�<!�0�0��4������
(*�-�'8��
�
�m�$�*,�Z�.��
�
�&�'�*,�&�&�1A�4�*H��
�
�&�'�')�v�v�m�T�'B��
�
�m�$� �f�f�]�D�9������!�V�+��H��
��a
�
��&!�	��I�I�3�Q�7���	�s0�3F�BF	�F�	F�F�	F:�F5�5F:c�J�tj|j�d�S)N�system-serial-number)r�instance_id_matches_system_uuidrA)r(r)s  r+�check_instance_idz#DataSourceHetzner.check_instance_idms$���6�6�� � �"�$:�
�	
r,c�<�|j�9tjdtj�tj|_|jtjk7r|jS|j
d}|st
d��||_|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.
        z5Found None as cached _network_config. Resetting to %sr3z'Unable to get meta-data from server....)r%r;�warningrr$rrB)r(�_net_configs  r+�network_configz DataSourceHetzner.network_configrs������'��K�K�G��
�
�
�$+�=�=�D� ����7�=�=�0��'�'�'��m�m�$4�5����H�I�I�*����#�#�#r,N)	�__name__�
__module__�__qualname__�dsnamerrHrL�propertyrP�r,r+rrs+��
�F�-�$7�r
�
�$��$r,rc��tjd�}|dk7rytjd�}|rtjd|�d|fSt	d��)Nzsystem-manufacturerr)FNrJz#Running on Hetzner Cloud: serial=%sz+Hetzner Cloud detected, but no serial foundT)r�
read_dmi_datar;�debugrB)�vendor_namerDs  r+r5r5�s[���#�#�$9�:�K��i���
�
�
�5�
6�F�
��	�	�7��@�
�&�>���H�I�Ir,c�6�tj|t�S)N)r�list_from_depends�datasources)�dependss r+�get_datasource_listr_�s���$�$�W�k�:�:r,)�__doc__�logging�!cloudinit.sources.helpers.hetznerr�helpers�hetznerr8�	cloudinitrrr�cloudinit.net.dhcpr�cloudinit.net.ephemeralr�	getLoggerrQr;r7rr!r"r#rrr5�DEP_FILESYSTEMr]r_rVr,r+�<module>rjs���"��5�5�-�-�/�3��g����!��1�� �+�-��+�-���
�
�
�
��
�k$��*�*�k$�\� ��/�/�1�2���;r,