name : DataSourceAliYun.cpython-39.opt-1.pyc
a

'�Dg
�@s�ddlZddlZddlmZddlmZmZddlmZm	Z	ddl
mZddl
m
Z
mZe�e�ZdZGdd	�d	ej�Zd
d�Zdd
�ZGdd�de�ZeejffeejejffgZdd�ZdS)�N)�List)�dmi�sources)�
EventScope�	EventType)�
DataSourceEc2)�DataSourceHostname�NicOrderzAlibaba Cloud ECScsveZdZUdZdgZdZgZeee	d<e
dd��Z�fdd�Ze
d	d
��fdd�Zddd�Zdd�Zdd�Z�ZS)�DataSourceAliYunZAliYunzhttp://100.100.100.200z
2016-01-01�extended_metadata_versionscCsdS)NzX-aliyun-ecs-metadata-token���selfrr�F/usr/lib/python3.9/site-packages/cloudinit/sources/DataSourceAliYun.py�imdsv2_token_put_headersz(DataSourceAliYun.imdsv2_token_put_headercsBtt|��|||�t�|j�|_|jtj�t	j
�tj|_
dS�N)�superr
�__init__�copy�deepcopyZdefault_update_eventsrZNETWORK�addrZBOOTr	�NIC_NAME�_fallback_nic_order)rZsys_cfgZdistro�paths��	__class__rrrszDataSourceAliYun.__init__N)�ci_pkl_version�returncst��|�tj|_dSr)r�	_unpickler	rr)rrrrrr%szDataSourceAliYun._unpickleFcCs*|j�d�}d}|dur d}d}t||�S)N�hostnameFzlocalhost.localdomainT)�metadata�getr)rZfqdnZ
resolve_ipZ
metadata_onlyrZ
is_defaultrrr�get_hostname)szDataSourceAliYun.get_hostnamecCst|j�di��S)Nzpublic-keys)�parse_public_keysr r!r
rrr�get_public_ssh_keys1sz$DataSourceAliYun.get_public_ssh_keyscCst�rtjjStjjSdSr)�
_is_aliyun�EC2Z
CloudNamesZALIYUNZNO_EC2_METADATAr
rrr�_get_cloud_name4sz DataSourceAliYun._get_cloud_name)FFF)�__name__�
__module__�__qualname__ZdsnameZ
metadata_urlsZmin_metadata_versionrr�str�__annotations__�propertyrr�intrr"r$r'�
__classcell__rrrrr
s


r
cCst�d�tkS)Nzsystem-product-name)rZ
read_dmi_data�ALIYUN_PRODUCTrrrrr%;sr%cCs�g}|��D]|\}}t|t�r.|�|���qt|t�rD|�|�qt|t�r|�dg�}t|t�rt|�|���qt|t�r|�|�q|S)Nzopenssh-key)	�items�
isinstancer+�append�strip�list�extend�dictr!)Zpublic_keys�keysZ_key_idZkey_body�keyrrrr#?s




r#c@seZdZdZdZdS)�DataSourceAliYunLocalayDatasource run at init-local which sets up network to query metadata.

    In init-local, no network is available. This subclass sets up minimal
    networking with dhclient on a viable nic so that it can talk to the
    metadata service. If the metadata service provides network configuration
    then render the network configuration for that instance based on metadata.
    TN)r(r)r*�__doc__Zperform_dhcp_setuprrrrr:Osr:cCst�|t�Sr)rZlist_from_depends�datasources)Zdependsrrr�get_datasource_listcsr=)rZlogging�typingrZ	cloudinitrrZcloudinit.eventrrZcloudinit.sourcesrr&rr	Z	getLoggerr(ZLOGr0r
r%r#r:ZDEP_FILESYSTEMZDEP_NETWORKr<r=rrrr�<module>s 
*
�

© 2025 Cubjrnet7