Your IP : 216.73.216.31


Current Path : /usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceDigitalOcean.cpython-38.pyc

U

�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)NZ
datasourcer	r�retries�timeout�	use_ip4LL�
wait_retry)r�
DataSource�__init__�distro�dict�metadatarZ
mergemanydictZget_cfg_by_path�BUILTIN_DS_CONFIGZds_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_helperZread_sysinfo)rrrr�_get_sysinfo2sz#DataSourceDigitalOcean._get_sysinfocCs�|��\}}|sdSt�d|�d}|jr6t�|j�}tj|j|j	|j
|jd�}||_|�
d|�|jd<|�
d|�|jd<|�
d�|jd<|�
d	�|jd
<|�
dd�|jd
<|�
dd�|_|�
dd�|_|r�t�|�dS)NFz&Running on DigitalOcean. droplet_id=%s)rZsec_betweenr
�
droplet_idzinstance-idZhostnamezlocal-hostname�
interfacesZpublic_keyszpublic-keysZregion�defaultZavailability_zoneZvendor_dataZ	user_dataT)r"�LOG�inforr!Zassign_ipv4_link_localrZ
read_metadatarrr
r
�
metadata_fullrrZvendordata_rawZuserdata_rawZdel_ipv4_link_local)rZis_dor#Z
ipv4LL_nicZmdrrr�	_get_data5s0�
z DataSourceDigitalOcean._get_datacCst�|��d�S)Nzsystem-serial-number)rZinstance_id_matches_system_uuidZget_instance_id)rrrrr�check_instance_idWs�z(DataSourceDigitalOcean.check_instance_idcCsP|jr|jS|j�d�}t�|�|s.td��|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....Zdns�nameservers)	rrrr&�debug�	Exceptionr(r!Zconvert_network_configuration)rr$r+rrr�network_config\s
�z%DataSourceDigitalOcean.network_configN)
�__name__�
__module__�__qualname__Zdsnamerr"r)r*�propertyr.rrrrrs"rcCst�|t�Sr )rZlist_from_depends�datasources)Zdependsrrr�get_datasource_listysr4)Z&cloudinit.sources.helpers.digitaloceanrZhelpersZdigitaloceanr!Z	cloudinitrZloggingrZ	getLoggerr/r&rrrrrrrZDEP_FILESYSTEMr3r4rrrr�<module>	s
�Y
�