CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/sources/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceOpenStack.cpython-310.pyc

o

쑛h�(�@s
ddlZddlZddlmZmZmZmZddlmZm	Z	ddl
mZddlm
Z
ddlmZddlmZe�e�ZdZd	eiZd
ZdZeegZdZd
ZdZdZeZeeeeeg7ZGdd�dej ej!�Z"Gdd�de"�Z#ddd�Z$e#ej%ffe"ej%ej&ffgZ'dd�Z(dS)�N)�dmi�sources�
url_helper�util)�
EventScope�	EventType)�NoDHCPLeaseError)�EphemeralDHCPv4)�DataSourceOracle)�	openstackziid-dsopenstackzinstance-idzOpenStack NovazOpenStack Compute�OpenTelekomCloudz
SAP CCloud VM�HUAWEICLOUDzSamsung Cloud Platformcs�eZdZdZejZdZej	e
je
je
j
e
jhiZ�fdd�Zdd�Zdd�Zd	d
�Zedd��Zd
d�Zdd�Zdd�Z�ZS)�DataSourceOpenStack�	OpenStackFcsHtt|��|||�d|_t�|j�|_d|_i|_	t
j|_t
j|_
dS�N)�superr�__init__�metadata_addressr�fetch_ssl_details�paths�ssl_details�version�filesr�UNSET�ec2_metadata�network_json)�self�sys_cfg�distror��	__class__��G/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenStack.pyr>szDataSourceOpenStack.__init__cCs"tj�|�}d||j|jf}|S)Nz%s [%s,ver=%s])r�
DataSource�__str__�dsmoder)r�root�mstrr!r!r"r$GszDataSourceOpenStack.__str__cCsdj|jjd�dg}|j�d|�}dd�|D�}t|�t|�kr.t�dtt|�t|���t	|�r5|}nt�
d�|}g}i}|D]}t�|d	�}|�
|�|||<qB|��}t��}	tj||j|jd
d�\}
}|
rtt�d||
�n
t�d
|tt��|	��|�|
�|_t|
�S)Nz"http://[fe80::a9fe:a9fe%25{iface}])�ifacezhttp://169.254.169.254�
metadata_urlscSsg|]	}t�|�r|�qSr!)r�is_resolvable_url)�.0�xr!r!r"�
<listcomp>TszADataSourceOpenStack.wait_for_metadata_service.<locals>.<listcomp>z,Removed the following from metadata urls: %sz+Empty metadata url list! using default listrF)�urls�max_wait�timeout�connect_synchronouslyzUsing metadata source: '%s'z2Giving up on OpenStack md from %s after %s seconds)�formatr�fallback_interface�ds_cfg�get�set�LOG�debug�list�len�warningr�combine_url�append�get_url_params�time�	monotonic�wait_for_url�max_wait_seconds�timeout_seconds�intr�bool)r�DEF_MD_URLSr.�filtered�md_urls�url2base�url�md_url�
url_params�
start_time�	avail_url�	_responser!r!r"�wait_for_metadata_serviceLsN���



��z-DataSourceOpenStack.wait_for_metadata_servicecCst�|���Sr)r�instance_id_matches_system_uuid�get_instance_id)rrr!r!r"�check_instance_id{sz%DataSourceOpenStack.check_instance_idcCsn|jtjkr	|jSt�|j�dd��rd|_|jS|jtjkr&t�	d�dSt�
d�tj|jdd�|_|jS)z@Return a network config dict for rendering ENI or netplan files.�apply_network_configTNz<Unexpected call to network_config when network_json is None.z(network config provided via network_json)�
known_macs)
�_network_configrrr�is_falser4r5rr7r;r8r�convert_net_json)rr!r!r"�network_configs�
�z"DataSourceOpenStack.network_configc
Cs�|jr@zt|j|jj��|��}Wd�n1swYWnAttjfy?}zt�	t
t|��WYd}~dSd}~wwz|��}Wntjyb}zt�	t
t|��WYd}~dSd}~ww|�|�
d�g�|_|jtjkrudS|�
di�}t�|tg�}||_|�
d�|_|�
d�|_|�
d�|_|d|_|j�|�
d	i��|�
d
�}zt�|�|_Wnty�}zt
�d|�d|_WYd}~nd}~ww|�
d�}z	t�|�|_WdSty�}zt
�d
|�d|_WYd}~dSd}~ww)a
Crawl metadata, parse and persist that data for this instance.

        @return: True when metadata discovered indicates OpenStack datasource.
            False when unable to contact metadata service or when metadata
            format is invalid or disabled.
        NFr%�metadatazec2-metadata�networkdata�userdatarr�
vendordataz"Invalid content in vendor-data: %s�vendordata2z#Invalid content in vendor-data2: %sT)�perform_dhcp_setupr	rr3�_crawl_metadatarr�InvalidMetaDataExceptionr�logexcr7�str�_determine_dsmoder5r%�DSMODE_DISABLED�
mergemanydict�DEFAULT_METADATArZrr�userdata_rawrr�update�convert_vendordata�vendordata_raw�
ValueErrorr;�vendordata2_raw)r�results�e�md�vd�vd2r!r!r"�	_get_data�sb
�
������

��
���zDataSourceOpenStack._get_datac
Cs�z|��s
t�d��Wnty"}zt�djt|�d���d}~ww|��}zt|j|j	|j
|jd�}W|Stj
yJ}zt�t|���d}~wtjtfye}z
dj|jd�}t�|�|�d}~ww)z�Crawl metadata service when available.

        @returns: Dictionary with all metadata discovered for this datasource.
        @raise: InvalidMetaDataException on unreadable or broken
            metadata.
        z No active metadata service foundz,IOError contacting metadata service: {error})�errorN)r�retriesr0zBroken metadata address {addr})�addr)rPrra�IOErrorr2rcr>�read_metadata_servicerr�num_retriesrCr�NonReadable�BrokenMetadata)rrorL�result�msgr!r!r"r`�sB�������
�����z#DataSourceOpenStack._crawl_metadatacCspd|j�d�v}t��sdSt�d�}|tvrdSt�d�tvr"dS|r*t�	�r*dSt�
d��d�tkr6dSdS)	z<Return True when a potential OpenStack platform is detected.�Oracle�datasource_listTzsystem-product-namezchassis-asset-tag��product_nameF)rr5r�is_x86r�
read_dmi_data�VALID_DMI_PRODUCT_NAMES�VALID_DMI_ASSET_TAGS�oracle�_is_platform_viable�get_proc_env�DMI_PRODUCT_NOVA)r�
accept_oracler�r!r!r"�	ds_detect�s
zDataSourceOpenStack.ds_detect)�__name__�
__module__�__qualname__�dsnamerrrVr_r�NETWORKr�BOOT_NEW_INSTANCE�BOOT�BOOT_LEGACY�HOTPLUG�supported_update_eventsrr$rPrS�propertyrYrsr`r��
__classcell__r!r!rr"r,s(��		/
5%rc@seZdZdZdZdS)�DataSourceOpenStackLocalauRun in init-local using a dhcp discovery prior to metadata crawl.

    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__r_r!r!r!r"r�sr��cCstj||||d�}|��S)N)rr0ru)r�MetadataReader�read_v2)�base_urlrr0ru�readerr!r!r"rxs�rxcCst�|t�Sr)r�list_from_depends�datasources)�dependsr!r!r"�get_datasource_list sr�)Nr�r�))�loggingr?�	cloudinitrrrr�cloudinit.eventrr�cloudinit.net.dhcpr�cloudinit.net.ephemeralr	�cloudinit.sourcesr
r��cloudinit.sources.helpersr�	getLoggerr�r7�DEFAULT_IIDrgr��DMI_PRODUCT_COMPUTEr��DMI_ASSET_TAG_OPENTELEKOM�DMI_ASSET_TAG_SAPCCLOUD�DMI_ASSET_TAG_HUAWEICLOUD�"DMI_ASSET_TAG_SAMSUNGCLOUDPLATFORMr��SourceMixinr#rr�rx�DEP_FILESYSTEM�DEP_NETWORKr�r�r!r!r!r"�<module>sD
��Z

	�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY