CasperSecurity

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

o

t��h�>�@s:ddlZddlZddlZddlmZddlmZmZmZm	Z	ddl
mZe�e
�ZGdd�dej�Zddd�Zdd	d
�Zddd�Zd
d�ZGdd�de�ZeejffeejejffgZdd�Ze
dkr�ddlmZejejd�edZe	�e�\Z Z!Z"Z#e$de ���e$de!���e$de"���e$de#���dSdS)�N)�partial)�dmi�	lifecycle�sources�util)�enicsveZdZdZdd�Z�fdd�Zdd�Zdd	�Zed
d��Z	de
fd
d�Zdd�Zdd�Z
dd�Zedd��Z�ZS)�DataSourceNoCloud�NoCloudcCsVtj�||||�d|_tj�|jd�tj�|jd�g|_d|_d|_	d|_
d|_dS)N�nocloud�nocloud-net)�/�file://)r�
DataSource�__init__�seed�os�path�join�seed_dir�	seed_dirs�supported_seed_starts�_network_config�_network_eni��self�sys_cfg�distro�paths�r�E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNoCloud.pyrs�
zDataSourceNoCloud.__init__csFt���d|jrd|j�d�nd|jtjkr d|j�d�SdS)z@append seed and dsmode info when they contain non-default values� z[seed=�]�z[dsmode=)�super�__str__r�dsmoder�DSMODE_NETWORK�r��	__class__rrr$&s�������zDataSourceNoCloud.__str__cCs|t�d�}|�t�d��t�d|���}|�t�d|����|�t�d|��tt|�t|�@�}|jdd�|S)Nz	TYPE=vfatzTYPE=iso9660zLABEL=%szLABEL_FATBOOT=%sT)�reverse)r�find_devs_with�extend�upper�lower�list�set�sort)r�label�fslist�
label_list�devlistrrr�_get_devices3s
zDataSourceNoCloud._get_devicescCs�d|jd�}g}idddd�}zi}t�d�}|r*t||�r*|�d�t|d|i�}Wnty;t�t	d�Yd	Swzi}t|�rO|�d
�t|d|i�}Wnty`t�t	d�Yd	Swddgd
dgd�}|j
D]'}ztj|fi|��}|�|�t	�d|�t||�}Wn	t
y�Yqmw|j�d�r�|�d�|jd|dd<d|jvr�d|jvr�t||j�}|�d�dd�}	|j�dd�}
|
du�r6|�|
�D]b}z4t	�d|�z	t�||	|�}Wnt
y�t	�d||
�YWq�wt||�}t	�d|�|�|�Wn,t�y$}z|jtjk�r�WYd}~q�d}~wtj�y5t�t	d|�Yq�w|�s;d	Sd|dv�r�|dd}
d	}|jD]
}|
�|��rY|}n�qM|�se|�|
�d	St�|
�}
tj|
dd�\}}}}t	�d|
�t�|d|g�|d<||d<||d
<|�|
�t�|d|g�|d<|�|d�d�g�|_|jtjk�r�t	�d||j�d	Sd � |�|_!|d|_"|d|_#|d
|_$|d|_%|d�d!�|_&d"S)#Nr
)�instance-idr%r")�	meta-data�	user-data�vendor-data�network-config�system-serial-numberrr8zUnable to parse dmi dataF�cmdlinez!Unable to parse command line datar9r:r;)�required�optionalzUsing seeded data from %s�seedfrom�ds_config_seedfrom�	ds_configcSstj|fi|��S�N)r�pathprefix2dict)�mp�datarrr�_pp2d_callback�sz3DataSourceNoCloud._get_data.<locals>._pp2d_callback�fs_label�cidatazAttempting to use data from %sz)device %s with label=%s not a valid seed.zUsing data from %sz(Failed to mount %s when looking for data)�timeoutzUsing seeded cache data from %sr%z&%s: not claiming datasource, dsmode=%s�,znetwork-interfacesT)'r%r�
read_dmi_data�load_cmdline_data�append�_merge_new_seed�	Exceptionr�logexc�LOGrrD�debug�
ValueError�ds_cfg�getr6�mount_cb�warning�OSError�errno�ENOENT�MountFailedErrorr�
startswith�_log_unusable_seedfrom�sub_dmi_vars�read_seeded�
mergemanydict�_determine_dsmoder�DSMODE_DISABLEDrr�metadata�userdata_raw�vendordata_rawrr)r�defaults�found�mydata�md�serial�pp2d_kwargsr�seededrGr2�dev�er@�	seedfound�proto�md_seed�ud�vd�_rrr�	_get_data?s���

��
���


�


���

����
�


�

���



zDataSourceNoCloud._get_datacCs|jst��r	dnd|_|jS)N�lxdr
)�_platform_typer�is_lxdr'rrr�
platform_type�szDataSourceNoCloud.platform_typer@cC�t�d||j|�dS)�!Stage-specific level and message.zN%s only uses seeds starting with %s - will try to use %s in the network stage.N)rR�infor�rr@rrrr^�s�z(DataSourceNoCloud._log_unusable_seedfromcCstjS)z=Return unknown when 'cloud-name' key is absent from metadata.)r�METADATA_UNKNOWNr'rrr�_get_cloud_name�sz!DataSourceNoCloud._get_cloud_namecCs$|j�d�r	d}nd}d||jfS)z/Return the subplatform metadata source details.z/devzconfig-diskzseed-dirz%s (%s))rr])r�subplatform_typerrr�_get_subplatform�sz"DataSourceNoCloud._get_subplatformcCs:|��}|sdSt|d|jg�}t|d�}|sdS||kS)Nr)�dirs)�get_instance_id�getattrr�_quick_read_instance_id)rr�currentr��quick_idrrr�check_instance_id�s
z#DataSourceNoCloud.check_instance_idcCs8|jdur|jdurtjdddd�t�|j�|_|jS)Nz$Eni network configuration in NoCloudz24.3z,You can use network v1 or network v2 instead��
deprecated�deprecated_version�
extra_message)rrr�	deprecater�convert_eni_datar'rrr�network_configs

�z DataSourceNoCloud.network_config)�__name__�
__module__�__qualname__�dsnamerr$r6rv�propertyrz�strr^r�r�r�r��
__classcell__rrr(rrs


rc	Cs�|durg}d}i}t|�r||vr||S|D].}|durqztj|dgd�}t�|d�}|r<||vr<||WSWqtyFYqwdS)Nr7r8)r>)rMrrD�	load_yamlrT)r��iid_key�fill�drFrjrrrr�s&��r�cCs�dtjfdtjfg}|D]9\}}t|||�sqd|vrdS|�d�}|r?|�d�r2tj|d<dS|�d�r<tj|d<dS||d<dSdS)	Nz
ds=nocloudzds=nocloud-netr%Tr@�zhttp://zhttps://zftp://zftps://)r
rF)r�DSMODE_LOCALr&�parse_cmdline_datarVr])r�r=�pairs�idstrr%r@rrrrM.s*�
�

�
�rMc	Cs�|durt��}d|}d||vsd||vsdSd}|��D]
}|�|�r-|�dd�}q |d�d�}t|�dkrB|dd�}nd}d	d
dd�}|D]+}|dkrSqLz
|�dd�\}	}
Wn
tyj|}	d}
Ynw|	|vrs||	}	|
||	<qLd
S)Nz %s z %s;Fr"�=��;rzlocal-hostnamer7r@)�h�i�sT)r�get_cmdline�splitr]�lenrP)�ds_idr�r=�argline�tok�tmp�kvpairs�s2l�item�k�vrrrr�Os8
��
r�cCs�|��}|�di�}t|dt�st�|d�}t�|d|g�|d<|�d�r2t�|�d��|d<d|vr<|d|d<d|vrF|d|d<|S)Nr8r;r9r:)�copyrV�
isinstance�dictrr�ra)�currm�ret�newmdrrrrOws
rOc@s*eZdZdd�Zdefdd�Zdd�ZdS)	�DataSourceNoCloudNetcCst�||||�d|_dS)Nr�)rrrrrrrr�s
zDataSourceNoCloudNet.__init__r@cCr{)r|z6%s only uses seeds starting with %s - %s is not valid.N)rRrXrr~rrrr^�s�z+DataSourceNoCloudNet._log_unusable_seedfromcCs�ttjdddd�}dt��kr|�dSt�t�d�pd���}||j	��dfvr8t
�d	|�|dkr6|�dS|j�
d
i��
di��
d�rNt
�d
|�dSdS)z�Check dmi and kernel command line for dsname

        NoCloud historically used "nocloud-net" as its dsname
        for network timeframe (DEP_NETWORK), which supports http(s) urls.
        For backwards compatiblity, check for that dsname.
        z!The 'nocloud-net' datasource namez24.1zgUse 'nocloud' instead, which uses the seedfrom protocolscheme (http// or file://) to decide how to run.r�rTr<r"zJMachine is configured by dmi serial number to run on single datasource %s.�
datasourcer	r@zMMachine is configured by system configuration to run on single datasource %s.F)rrr�r�
parse_cmdline�parse_cmdline_or_dmirrLr.r�rRrSrrV)r�log_deprecatedrkrrr�	ds_detect�s@�
�����zDataSourceNoCloudNet.ds_detectN)r�r�r�rr�r^r�rrrrr��s		r�cCst�|t�SrC)r�list_from_depends�datasources)�dependsrrr�get_datasource_list�sr��__main__)�argv)�levelr�zseeded: zud: zvd: z	network: rC)%rZ�loggingr�	functoolsr�	cloudinitrrrr�
cloudinit.netr�	getLoggerr�rRrrr�rMr�rOr��DEP_FILESYSTEM�DEP_NETWORKr�r��sysr��basicConfig�DEBUGr@r`rrrsrt�network�printrrrr�<module>s:




!(
E��
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