403Webshell
Server IP : 3.96.16.70  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3.9/site-packages/cloudinit/sources/helpers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3.9/site-packages/cloudinit/sources/helpers/__pycache__/openstack.cpython-39.pyc
a

�½b�e�@s<ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZddl
mZddlmZe�e�Zddd�d	fd
ejifddd�d	fd
�ZdZdZdZdZdZdZdZdZdZdZeeeeeeeefZ dZ!Gdd�de"�Z#Gdd�de$�Z%Gdd�dej&d�Z'Gd d!�d!e'�Z(Gd"d#�d#e'�Z)d&d$d%�Z*dS)'�N)�log)�net�sources�subp�
url_helper�util)�BrokenMetadata)�ec2�network_configcCs|S�N���xrr�G/usr/lib/python3.9/site-packages/cloudinit/sources/helpers/openstack.py�<lambda>�r��meta_js�authorized_keyscCs|Srrr
rrrrr)zetc/network/interfaceszmeta.jszroot/.ssh/authorized_keys))zlocal-hostname�hostnameF)�instance-idZuuidT�latestz
2012-08-10z
2013-04-04z
2013-10-17z
2015-10-15z
2016-06-30z
2016-10-06z
2017-02-22z
2018-08-27)
NZbgpovsZbridgeZ	cascadingZdvsZethernetZhw_vebZhypervZovsZphyZtapZ	vhostuserZvifc@seZdZdS)�NonReadableN)�__name__�
__module__�__qualname__rrrrrQsrc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�SourceMixincCs>|js
dS|j�di�}|��D]\}}||kr |Sq dS)Nzblock-device-mapping)Zec2_metadata�get�items)�self�nameZbdmZent_name�devicerrr�_ec2_name_to_deviceVs
zSourceMixin._ec2_name_to_devicecCs$d}|jdkrd}t�|j�|��S)NZpublic_keys��public-keys)�versionrZnormalize_pubkey_data�metadatar)rr rrr�get_public_ssh_keys_s
zSourceMixin.get_public_ssh_keyscCsPd}z2d|}|dkrd|}t�|�}|r4|d}WntjyJYn0|S)NzLABEL=%sZswapzTYPE=%sr)rZfind_devs_withrZProcessExecutionError)rr r!ZcriteriaZdev_entriesrrr�_os_name_to_devicees
zSourceMixin._os_name_to_devicecCsV|sdS|�d�sd|}tj�|�r*|S|�tj�|��}|rRt�d||�|SdS)N�/z/dev/%szRemapped device name %s => %s)�
startswith�os�path�existsZ
_remap_device�basename�LOG�debug)rr!Zremappedrrr�_validate_device_namers
z!SourceMixin._validate_device_namecCs�|sdS|g}|dkr"|�dd�|dkr4|�d�d}t�d|�|D] }|�|�}|�|�}|rHqjqH|s�t�d|�|D] }|�|�}|�|�}|r~q�q~|s�dSt�d||�|SdS)N�rootrZamiz(Using ec2 style lookup to find device %sz.Using openstack style lookup to find device %szMapped %s to device %s)�insert�appendr/r0r"r1r()rr �namesr!�nrrr�device_name_to_device�s2




z!SourceMixin.device_name_to_deviceN)rrrr"r'r(r1r7rrrrrUs
	
rc@sheZdZdd�Zejdd��Zejddd��Zejdd	��Zejd
d��Z	dd
�Z
ddd�Zdd�ZdS)�
BaseReadercCs
||_dSr)�	base_path�rr9rrr�__init__�szBaseReader.__init__cGsdSrr�r�base�add_onsrrr�
_path_join�szBaseReader._path_joinFcCsdSrr�rr,�decoderrr�
_path_read�szBaseReader._path_readcCsdSrr�rrrr�_fetch_available_versions�sz$BaseReader._fetch_available_versionscCsdSrrrCrrr�_read_ec2_metadata�szBaseReader._read_ec2_metadatac
Cs�z|��}Wn8tyD}z t�d|j|�g}WYd}~n
d}~00dd�ttt��D�}t}|D]}||vrrqd|}q|qdt�d||�|S)Nz4Unable to read openstack versions from %s due to: %scSsg|]}|�qSrr)�.0�vrrr�
<listcomp>�rz4BaseReader._find_working_version.<locals>.<listcomp>zSelected version '%s' from %s)	rD�	Exceptionr/r0r9�reversed�list�OS_VERSIONS�	OS_LATEST)rZversions_available�eZ	supportedZselected_versionZpotential_versionrrr�_find_working_version�s,��z BaseReader._find_working_versioncCs^|�dd��d�}|�d�}dd�|D�}|s:td|��|j|jdg|�R�}|j||d�S)	NZcontent_pathrr)cSsg|]}t|�r|�qSr)�len)rF�prrrrH�rz1BaseReader._read_content_path.<locals>.<listcomp>z!Item %s has no valid content path�	openstack�rA)r�lstrip�splitrr?r9rB)r�itemrAr,Zpath_piecesZvalid_piecesrrr�_read_content_path�s
zBaseReader._read_content_pathcstjtjtttfd����fdd�}ddd�}|����}|��D]�\}\}}}��	�j
|�}d}d}z��|�}WnFty�}	z.|s�t
�d	||	�nt
�d
||	�WYd}	~	nd}	~	00d}|r�|s�td|��|�r&|�r&z||�}Wn8t�y$}	ztd
||	f�|	�WYd}	~	n
d}	~	00|rB|||<qB|d}
d|
v�r�|
d}zt�|�|
d<Wn8ttf�y�}	ztd|	�|	�WYd}	~	n
d}	~	00i}|
�dg�}
|
D]h}d|v�r��q�|d}z��|�||<Wn8t�y}	ztd||	f�|	�WYd}	~	n
d}	~	00�q�||d<|
�dd�}|�r�z�j|dd�}||d<Wn4t�y�}	ztd|	�|	�WYd}	~	n
d}	~	00z|
dd|d<Wnt�y�Yn0���|d<tD]@\}}}|�r�||
v�r�td|��||
v�r�|
�|�|
|<�q�|S)z�Reads a version 2 formatted location.

        Return a dict with metadata, userdata, ec2-metadata, dsmode,
        network_config, files and version (2).

        If not a valid location, raise a NonReadable exception.
        )Z
root_typescs�i}��d|d�dtjf|d<��d|d�ddd�f|d	<��d|d
�d�f|d<��d|d�d�f|d
<��d|d�d�f|d<|S)NrRzmeta_data.jsonTr&Z	user_dataFcSs|Srrr
rrrr�rz7BaseReader.read_v2.<locals>.datafiles.<locals>.<lambda>�userdatazvendor_data.jsonZ
vendordatazvendor_data2.jsonZvendordata2znetwork_data.jsonZnetworkdata)r?r�	load_json)r%�files�Zload_json_anytyperrr�	datafiles�s,�	����z%BaseReader.read_v2.<locals>.datafilesr�)rXr%NFz*Failed reading optional path %s due to: %sz+Failed reading mandatory path %s due to: %sTzMissing mandatory path: %s�Failed to process path %s: %sr&�random_seedz.Badly formatted metadata random_seed entry: %srZr,z#Failed to read provided file %s: %sr
rSz(Failed to read network configuration: %s�meta�dsmodezec2-metadatazNo '%s' entry in metadata)�	functools�partialrrY�dictrK�strrOrr?r9rB�IOErrorr/r0rrIr�base64Z	b64decode�
ValueError�	TypeErrorrrW�KeyErrorrE�
KEY_COPIES)rr\�results�datar r,Zrequired�
translator�foundrNr&r_rZZmetadata_filesrVZnet_item�contentZ
target_keyZ
source_keyZis_requiredrr[r�read_v2�s�	�!���
��

��

����
zBaseReader.read_v2N)F)F)
rrrr;�abc�abstractmethodr?rBrDrErOrWrqrrrrr8�s



	r8)�	metaclasscsFeZdZ�fdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�Z�Z	S)�ConfigDriveReadercstt|��|�d|_dSr)�superrur;�	_versionsr:��	__class__rrr;fszConfigDriveReader.__init__cGs|gt|�}tjj|�Sr)rKr+r,�join)rr=r>�
componentsrrrr?jszConfigDriveReader._path_joinFcCstj||d�S)NrS)rZ	load_filer@rrrrBnszConfigDriveReader._path_readcs@|jdur:|�|jd���fdd�t���D�}t|�|_|jS)NrRcs$g|]}tj�tj����r|�qSr)r+r,�isdirrz�rF�d�r,rrrHts�z?ConfigDriveReader._fetch_available_versions.<locals>.<listcomp>)rwr?r9r+�listdir�sorted)rrorrrrDqs

�
z+ConfigDriveReader._fetch_available_versionsc
Csp|�|jddd�}tj�|�s"iSzt�|�|��WStyj}zt	d||f�|�WYd}~n
d}~00dS)Nr	rzmeta-data.jsonr^)
r?r9r+r,r-rrYrBrIr)rr,rNrrrrE|s
�
��z$ConfigDriveReader._read_ec2_metadatacCs�i}t��D]&}|�|j|�}tj�|�r|||<qt|�dkrNtd|j��i}t�	�D]�\}\}}}||v�r||}z|�
|�}Wn2ty�}	ztd|�|	�WYd}	~	n
d}	~	00z||�||<Wn8t
�y}	ztd||	f�|	�WYd}	~	n
d}	~	00qZt�|�||<qZ|d}
|d}|�d|
�}
|
�rT|
��}d	d
�|D�|d<d|v�rj|d|d<d|d
�}
d|v�r�|d|
d<|�dd�|
d<i|
d<|
S)z�Reads a version 1 formatted location.

        Return a dict with metadata, userdata, dsmode, files and version (1).

        If not a valid path, raise a NonReadable exception.
        rz%s: no files foundzFailed to read: %sNr^rrr$cSs"g|]}t|�r|�d�s|�qS)�#)rPr*)rF�linerrrrH�s�z-ConfigDriveReader.read_v1.<locals>.<listcomp>rr#)r%r&raz	user-datarrXrZ)�FILES_V1�keysr?r9r+r,r-rPrrrBrfrrI�copy�deepcopyr�
splitlines)rror r,Zmd�keyrn�default�contentsrNZkeydatar�linesrlrrr�read_v1�sT

$
���

�
zConfigDriveReader.read_v1)F)
rrrr;r?rBrDrEr��
__classcell__rrrxrrues
rucs@eZdZd�fdd�	Zdd�Zddd	�Zd
d�Zdd
�Z�ZS)�MetadataReaderN�cs4tt|��|�||_t|�|_t|�|_d|_dSr)	rvr�r;�ssl_details�float�timeout�int�retriesrw)rZbase_urlr�r�r�rxrrr;�s


zMetadataReader.__init__cCsb|jdur|jSg}|�|jd�}|j|dd�}|��D]}|��}|sJq8|�|�q8||_|jS)NrRTrS)rwr?r9rBr��stripr4)rroZversion_pathrpr�rrrrD�s
z(MetadataReader._fetch_available_versionsFcCs:dd�}tj||j|j|j|d�}|r0|j��S|jSdS)Nc	Ss8zt|j�}|dkrWdSWnttfy2Yn0dS)Ni�FT)r��coderirh)Z
_request_args�causer�rrr�should_retry_cb�s

z2MetadataReader._path_read.<locals>.should_retry_cb)r�r�r�Zexception_cb)rZreadurlr�r�r�r�rA)rr,rAr�ZresponserrrrB�s
�
zMetadataReader._path_readcGstj|g|�R�Sr)rZcombine_urlr<rrrr?szMetadataReader._path_joincCstj|j|j|jd�S)N)r�r�r�)r	Zget_instance_metadatar�r�r�rCrrrrEs
�z!MetadataReader._read_ec2_metadata)Nr�r�)F)	rrrr;rDrBr?rEr�rrrxrr��s

r�c
s|durdSgd�gd�d��|�dg�}|�dg�}|�dg�}g}i�d}d	}g}|D�]2�g}	t�fd
d����D��}
d�vr��d|
d<d}��d
�r���d
���}|��d<|
�d�|�d�dd�}�fdd�|D�D�]&}
t�fdd�|
��D��}|
ddk�r&|�ddi�n�|
ddk�rD|�ddi�nz|
ddv�rf|�d|
di�nX|
ddv�r�|�d|
�d�d��n2|
ddv�r�|
�ddi�|�d |
�d�d��|
dd!v�r�|
�dd"i�|
dd#k�r�d"|d#<|
dd$k�rd"|d$<|	�|�q�|
�d%|	i��dd&v�r�i}|�r@||d'<���D]4\}}|d(k�r`�qHn|�d)��rH|�||i��qH||}|d*7}|�|
d+d,t��d(�f�|
�||d-��||d<n��dd.v�rJd/�d0�d1f}|
�|�d1�d2d3��|�|
d0d,�d0f�|�|
dd4�d1�d0f�|��d2|d5��n.�dt	v�rht
�d6�d�|
�d7|d8��|�|
�|�|d<qZd9d�|D�}|�s�|�r�|du�r�t�
�}���D]:\}}|�d��rܐq�|�d:�|v�r�||d:|d<�q�|D]D}|�d'�}|�s$td;|��||v�r:td<|��|||d<�q|D]L\}
}�}t|ttf��r���fd=d�|D�|
|<n��|d|
|<�qNt��}|�r�|D],}
|
d|v�r�||
d|
d'<d>|
d<�q�|D]"}|}
|
�dd?i�|�|
��q�d*|d@�S)Aa)Return a dictionary of network_config by parsing provided
       OpenStack ConfigDrive NetworkData json format

    OpenStack network_data.json provides a 3 element dictionary
      - "links" (links are network devices, physical or virtual)
      - "networks" (networks are ip network configurations for one or more
                    links)
      -  services (non-ip services, like dns)

    networks and links are combined via network items referencing specific
    links via a 'link_id' which maps to a links 'id' field.

    To convert this format to network_config yaml, we first iterate over the
    links and then walk the network list to determine if any of the networks
    utilize the current link; if so we generate a subnet entry for the device

    We also need to map network_data.json fields to network_config fields. For
    example, the network_data links 'id' field is equivalent to network_config
    'name' field for devices.  We apply more of this mapping to the various
    link types that we encounter.

    There are additional fields that are populated in the network_data.json
    from OpenStack that are not relevant to network_config yaml, so we
    enumerate a dictionary of valid keys for network_yaml and apply filtering
    to drop these superflous keys from the network_config yaml.
    N)r �type�mac_address�subnets�paramsZmtu)r��address�netmask�	broadcastZmetricZgatewayZpointopointZscopeZdns_nameserversZ
dns_searchZroutes)�physical�subnet�links�networks�serviceszbond%drc3s&|]\}}|�dvr||fVqdS)r�Nr�rF�krG��
valid_keysrr�	<genexpr>Psz#convert_net_json.<locals>.<genexpr>r Zethernet_mac_address�idr�)r �macr�r�cs g|]}|d�dkr|�qS)�linkr�r)rFr6)r�rrrHfrz$convert_net_json.<locals>.<listcomp>c3s&|]\}}|�dvr||fVqdS)r�Nrr�r�rrr�gsZ	ipv4_dhcpZdhcp4�	ipv6_dhcpZdhcp6)Z
ipv6_slaaczipv6_dhcpv6-stateless�ipv6_dhcpv6-stateful)�ipv4�staticr��
ip_address)r�r�)�ipv6�static6z	accept-raFr�)r�r�Tr�r�r�)�bondr�Z
bond_linksr�r#Zbond_interfacesz%s)r�r )Zvlanz%s.%sZ	vlan_link�vlan_idZvlan_mac_address)r r�r�z%%s.%s)r�r z9Unknown network_data link type (%s); treating as physicalr�)r�r�cSs&g|]}|�d�dkrd|vr|�qS)r�r�r )rr}rrrrH�sr�z#No mac_address or name entry for %sz"Unable to find a system nic for %scsg|]}��|d�qS)r r)rF�target)�fmt�link_id_inforrrH�sZ
infinibandZ
nameserver)r%�config)rrdr�lower�updater4r*r�r��KNOWN_PHYSICAL_TYPESr/ZwarningrZget_interfaces_by_macrh�
isinstancerK�tupleZget_ib_hwaddrs_by_interface)Znetwork_jsonZ
known_macsr�r�r�Zlink_updatesZ
bond_name_fmtZbond_numberr�r�ZcfgZ
link_mac_addrZcurinfo�networkr�r�r�rGZ	link_namer Z
need_namesZ_link_id�infor~r�r��targetsZib_known_hwaddrsZservicer)r�r�r�r�r�convert_net_jsons�
�
������
��
����
�


�r�)NN)+rrrgr�rbr+Z	cloudinitrZloggingrrrrrZcloudinit.sourcesrZcloudinit.sources.helpersr	Z	getLoggerrr/rYr�rkrMZ	OS_FOLSOMZ
OS_GRIZZLYZ	OS_HAVANAZ
OS_LIBERTYZ
OS_NEWTON_ONEZ
OS_NEWTON_TWOZOS_OCATAZOS_ROCKYrLr�rfr�objectr�ABCMetar8rur�r�rrrr�<module>	sP

��LEo:

Youez - 2016 - github.com/yon3zu
LinuXploit