Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

}��f�h�@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_metadatacCs�i}t��D]}|�|j|�}tj�|�r|||<qt|�dkr'td|j��i}t�	�D]O\}\}}}||vru||}z|�
|�}WntyV}	ztd|�|	�d}	~	wwz||�||<Wq-t
yt}	z	td||	f�|	�d}	~	wwt�|�||<q-|d}
|d}|�d|
�}
|
r�|
��}d	d
�|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.
        rz%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�keysrZrSrBrCrDrqr%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	Ss8zt|j�}|dkr
WdSWdSttfyYdSw)Ni�FT)r��coder�r�)�
_request_args�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�d��|�dg�}|�dg�}|�dg�}g}i�d}d	}g}|D�]��g}	t�fd
d����D��}
d�vrI�d|
d<d}��d
�r]��d
���}|��d<|
�d�|�d�dd�}�fdd�|D�D]�}
t�fdd�|
��D��}|
ddkr�|�ddi�nH|
ddkr�|�ddi�n:|
ddvr�|�d|
di�n*|
ddvr�|�d|
�d�d��n|
ddvr�|
�ddi�|�d |
�d�d��d!d�|
�dg�D�}|r�||d"<|
dd#vr�|
�dd$i�|
dd%k�rd$|d%<|
dd&k�r
d$|d&<|	�|�qt|
�d'|	i��dd(v�ryi}|�r-|
�d)|i����D]$\}}|d*k�r<�q1|�d+��rTd,�|�d-d.�d/�}|�||i��q1||}|d.7}|�|
d0d1t	�
�d*�f�|
�||d2��||d<nW�dd3v�r�d4�d5�d6f}|
�|�d6d7��|�|
d5d1�d5f�|�|
dd8�d6�d5f�|��d9|d:��n�dtv�r�t�
d;�d�|
�d<|d=��|�|
�|�|d<q-d>d�|D�}|�s�|�rc|du�r�t��}���D]\}}|�d��r�q�|�d?�|v�r||d?|d<�q�|D]"}|�d)�}|�s&td@|��||v�r1tdA|��|||d<�q|D]'\}
}�}t|ttf��rW��fdBd�|D�|
|<�q;��|d|
|<�q;t��}|�r�|D]}
|
d|v�r�||
d|
d)<dC|
d<�ql|D]}t	�
|�}
|
�ddDi�|�|
��q�d.|dE�S)Fa*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�routes)�physical�subnet�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��	ipv4_dhcp�dhcp4�	ipv6_dhcp�dhcp6)�
ipv6_slaaczipv6_dhcpv6-stateless�ipv6_dhcpv6-stateful)�ipv4�staticr��
ip_address)r�r�)�ipv6�static6z	accept-raFrcSs"g|]
}|�d�dkr|d�qS)r��dnsr��r+)rb�servicerrrrd�s
�r�)r�r�Tr�r�r�)�bondr��
bond_linksrzbond-{}�bond_r4����bond_interfacesz%s)r�r.)�vlanz%s.%s�	vlan_link�vlan_id)r.rz%%s.%s�vlan_mac_address)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rrd�s��
infiniband�
nameserver)r6�config)r+r�r,�lower�updaterNrA�formatrvr�r��KNOWN_PHYSICAL_TYPESrG�warningr�get_interfaces_by_macr��
isinstancerg�tuple�get_ib_hwaddrs_by_interface)�network_json�
known_macsr�r�r��link_updates�
bond_name_fmt�bond_numberrr��cfg�
link_mac_addr�curinfo�networkr�r�r�r�rc�translated_key�	link_namer.�
need_names�_link_id�infor�r�r��targets�ib_known_hwaddrsrr)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:

Spamworldpro Mini