HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceDigitalOcean.cpython-310.pyc
o

�Ad@�@s�ddlmmmZddlmZddlmZmZe�	e
�ZddiZdZ
dZdZdZGd	d
�d
ej�ZeejffgZdd�ZdS)
�N)�log)�sources�util�metadata_urlz'http://169.254.169.254/metadata/v1.json��Tc@s<eZdZdZdd�Zdd�Zdd�Zdd	�Zed
d��Z	dS)
�DataSourceDigitalOcean�DigitalOceancCs�tj�||||�||_t�|_t�t�|ddgi�t	g�|_
|j
d|_|j
�dt
�|_|j
�dt�|_|j
�dt�|_|j
�dt�|_d|_dS)N�
datasourcer	r�retries�timeout�	use_ip4LL�
wait_retry)r�
DataSource�__init__�distro�dict�metadatar�
mergemanydict�get_cfg_by_path�BUILTIN_DS_CONFIG�ds_cfg�metadata_address�get�
MD_RETRIESr�
MD_TIMEOUTr�
MD_USE_IPV4LLr
�
MD_WAIT_RETRYr�_network_config)�self�sys_cfgr�paths�r"�J/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceDigitalOcean.pyrs 
���
zDataSourceDigitalOcean.__init__cCst��S�N)�	do_helper�read_sysinfo)rr"r"r#�_get_sysinfo2sz#DataSourceDigitalOcean._get_sysinfocCs�|��\}}|s
dSt�d|�d}|jrt�|j�}tj|j|j	|j
|jd�}||_|�
d|�|jd<|�
d|�|jd<|�
d�|jd<|�
d	�|jd
<|�
dd�|jd
<|�
dd�|_|�
dd�|_|rkt�|�dS)NFz&Running on DigitalOcean. droplet_id=%s)r�sec_betweenr�
droplet_idzinstance-id�hostnamezlocal-hostname�
interfaces�public_keyszpublic-keys�region�default�availability_zone�vendor_data�	user_dataT)r'�LOG�infor
r%�assign_ipv4_link_localr�
read_metadatarrrr�
metadata_fullrr�vendordata_raw�userdata_raw�del_ipv4_link_local)r�is_dor)�
ipv4LL_nic�mdr"r"r#�	_get_data5s0�
z DataSourceDigitalOcean._get_datacCst�|��d�S)Nzsystem-serial-number)r�instance_id_matches_system_uuid�get_instance_id)rr r"r"r#�check_instance_idWs�z(DataSourceDigitalOcean.check_instance_idcCsP|jr|jS|j�d�}t�|�|std��|jdd}t�||�|_|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.
        r+z'Unable to get meta-data from server....�dns�nameservers)	rrrr2�debug�	Exceptionr6r%�convert_network_configuration)rr+rBr"r"r#�network_config\s
�z%DataSourceDigitalOcean.network_configN)
�__name__�
__module__�__qualname__�dsnamerr'r=r@�propertyrFr"r"r"r#rs"rcCst�|t�Sr$)r�list_from_depends�datasources)�dependsr"r"r#�get_datasource_listysrO)�&cloudinit.sources.helpers.digitaloceanr�helpers�digitaloceanr%�	cloudinitr�loggingr�	getLoggerrGr2rrrrrrr�DEP_FILESYSTEMrMrOr"r"r"r#�<module>s
�
Y�