403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.7
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.6/site-packages/cloudinit/sources/helpers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.6/site-packages/cloudinit/sources/helpers/__pycache__/openstack.cpython-36.pyc
3

��b�e�
@s<ddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZeje�Zddd�d	fd
e
jifddd�d	fd
�Zd8ZdZdZdZdZdZdZdZdZdZeeeeeeeefZd9Z Gd)d*�d*e!�Z"Gd+d,�d,e#�Z$Gd-d.�d.ej%d/�Z&Gd0d1�d1e&�Z'Gd2d3�d3e&�Z(d:d4d5�Z)dS);�N)�	ec2_utils)�log)�net�sources�subp�
url_helper�util)�BrokenMetadata�network_configcCs|S)N�)�xrr�/usr/lib/python3.6/openstack.py�<lambda>sr��meta_js�authorized_keyscCs|S)Nr)rrrr
rs)zetc/network/interfaceszmeta.jszroot/.ssh/authorized_keys�local-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�bgpovs�bridge�	cascading�dvs�ethernet�hw_veb�hyperv�ovs�phy�tap�	vhostuser�vifc@seZdZdS)�NonReadableN)�__name__�
__module__�__qualname__rrrr
r#Qsr#c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�SourceMixincCs>|js
dS|jjdi�}x |j�D]\}}||kr"|Sq"WdS)Nzblock-device-mapping)Zec2_metadata�get�items)�self�nameZbdmZent_name�devicerrr
�_ec2_name_to_deviceVszSourceMixin._ec2_name_to_devicecCs$d}|jdkrd}tj|jj|��S)NZpublic_keys�zpublic-keys)�versionrZnormalize_pubkey_data�metadatar()r*r+rrr
�get_public_ssh_keys_s
zSourceMixin.get_public_ssh_keyscCsRd}y2d|}|dkrd|}tj|�}|r4|d}Wntjk
rLYnX|S)NzLABEL=%sZswapzTYPE=%sr)rZfind_devs_withrZProcessExecutionError)r*r+r,ZcriteriaZdev_entriesrrr
�_os_name_to_devicees
zSourceMixin._os_name_to_devicecCsV|sdS|jd�sd|}tjj|�r*|S|jtjj|��}|rRtjd||�|SdS)N�/z/dev/%szRemapped device name %s => %s)�
startswith�os�path�existsZ
_remap_device�basename�LOG�debug)r*r,Zremappedrrr
�_validate_device_namers
z!SourceMixin._validate_device_namecCs�|sdS|g}|dkr"|jdd�|dkr4|jd�d}tjd|�x&|D]}|j|�}|j|�}|rJPqJW|s�tjd|�x&|D]}|j|�}|j|�}|r�Pq�W|s�dStjd||�|SdS)N�rootrZamiz(Using ec2 style lookup to find device %sz.Using openstack style lookup to find device %szMapped %s to device %s)�insert�appendr9r:r-r;r2)r*r+�namesr,�nrrr
�device_name_to_device�s2






z!SourceMixin.device_name_to_deviceN)r$r%r&r-r1r2r;rArrrr
r'Us
	
r'c@sheZdZdd�Zejdd��Zejddd��Zejdd	��Zejd
d��Z	dd
�Z
ddd�Zdd�ZdS)�
BaseReadercCs
||_dS)N)�	base_path)r*rCrrr
�__init__�szBaseReader.__init__cGsdS)Nr)r*�base�add_onsrrr
�
_path_join�szBaseReader._path_joinFcCsdS)Nr)r*r6�decoderrr
�
_path_read�szBaseReader._path_readcCsdS)Nr)r*rrr
�_fetch_available_versions�sz$BaseReader._fetch_available_versionscCsdS)Nr)r*rrr
�_read_ec2_metadata�szBaseReader._read_ec2_metadatacCs�y|j�}Wn6tk
rB}ztjd|j|�g}WYdd}~XnXdd�ttt��D�}t}x|D]}||krrqd|}PqdWtjd||�|S)Nz4Unable to read openstack versions from %s due to: %scSsg|]}|�qSrr)�.0�vrrr
�
<listcomp>�sz4BaseReader._find_working_version.<locals>.<listcomp>zSelected version '%s' from %s)	rJ�	Exceptionr9r:rC�reversed�list�OS_VERSIONS�	OS_LATEST)r*Zversions_available�eZ	supportedZselected_versionZpotential_versionrrr
�_find_working_version�s(
z BaseReader._find_working_versioncCs\|jdd�jd�}|jd�}dd�|D�}|s:td|��|j|jdf|��}|j||d�S)	NZcontent_pathrr3cSsg|]}t|�r|�qSr)�len)rL�prrr
rN�sz1BaseReader._read_content_path.<locals>.<listcomp>z!Item %s has no valid content path�	openstack)rH)r(�lstrip�splitr	rGrCrI)r*�itemrHr6Zpath_piecesZvalid_piecesrrr
�_read_content_path�s
zBaseReader._read_content_pathc(stjtjtttfd����fdd�}ddd�}|�j��}x�|j�D]�\}\}}}�j	�j
|�}d}d}y�j|�}WnDtk
r�}	z(|s�t
jd	||	�nt
jd
||	�WYdd}	~	XnXd}|r�|r�td|��|o�|�r$y||�}Wn6tk
�r"}	ztd
||	f�|	�WYdd}	~	XnX|rD|||<qDW|d}
d|
k�r�|
d}ytj|�|
d<Wn6ttfk
�r�}	ztd|	�|	�WYdd}	~	XnXi}|
jdg�}
xn|
D]f}d|k�r��q�|d}y�j|�||<Wn6tk
�r}	ztd||	f�|	�WYdd}	~	XnX�q�W||d<|
jdd�}|�r�y�j|dd�}||d<Wn2tk
�r~}	ztd|	�|	�WYdd}	~	XnXy|
dd|d<Wntk
�r�YnX�j�|d<xHtD]@\}}}|�r�||
k�r�td|��||
k�r�|
j|�|
|<�q�W|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}�jd|d�dtjf|d<�jd|d�ddd�f|d	<�jd|d
�d�f|d<�jd|d�d�f|d
<�jd|d�d�f|d<|S)NrXzmeta_data.jsonTr0Z	user_dataFcSs|S)Nr)rrrr
r�sz7BaseReader.read_v2.<locals>.datafiles.<locals>.<lambda>�userdatazvendor_data.jsonZ
vendordatazvendor_data2.jsonZvendordata2znetwork_data.jsonZnetworkdata)rGr�	load_json)r/�files)�load_json_anytyper*rr
�	datafiles�s"


z%BaseReader.read_v2.<locals>.datafilesr�)r]r/NFz*Failed reading optional path %s due to: %sz+Failed reading mandatory path %s due to: %sTzMissing mandatory path: %szFailed to process path %s: %sr0�random_seedz.Badly formatted metadata random_seed entry: %sr_r6z#Failed to read provided file %s: %sr
)rHz(Failed to read network configuration: %s�meta�dsmodezec2-metadatazNo '%s' entry in metadata)�	functools�partialrr^�dictrQ�strrUr)rGrCrI�IOErrorr9r:r#rOr	�base64Z	b64decode�
ValueError�	TypeErrorr(r\�KeyErrorrK�
KEY_COPIES)r*ra�results�datar+r6Zrequired�
translator�foundrTr0rcr_Zmetadata_filesr[Znet_item�contentZ
target_keyZ
source_keyZis_requiredr)r`r*r
�read_v2�s�	!





zBaseReader.read_v2N)F)F)
r$r%r&rD�abc�abstractmethodrGrIrJrKrUr\rurrrr
rB�s
	rB)�	metaclasscsFeZdZ�fdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�Z�Z	S)�ConfigDriveReadercstt|�j|�d|_dS)N)�superryrD�	_versions)r*rC)�	__class__rr
rDfszConfigDriveReader.__init__cGs|gt|�}tjj|�S)N)rQr5r6�join)r*rErFZ
componentsrrr
rGjszConfigDriveReader._path_joinFcCstj||d�S)N)rH)rZ	load_file)r*r6rHrrr
rInszConfigDriveReader._path_readcs@|jdkr:|j|jd���fdd�tj��D�}t|�|_|jS)NrXcs$g|]}tjjtjj���r|�qSr)r5r6�isdirr})rL�d)r6rr
rNusz?ConfigDriveReader._fetch_available_versions.<locals>.<listcomp>)r{rGrCr5�listdir�sorted)r*rsr)r6r
rJqs


z+ConfigDriveReader._fetch_available_versionscCsl|j|jddd�}tjj|�s"iSytj|j|��Stk
rf}zt	d||f�|�WYdd}~XnXdS)NZec2rzmeta-data.jsonzFailed to process path %s: %s)
rGrCr5r6r7rr^rIrOr	)r*r6rTrrr
rK|sz$ConfigDriveReader._read_ec2_metadatacCs�i}x2tj�D]&}|j|j|�}tjj|�r|||<qWt|�dkrRtd|j��i}x�tj	�D]�\}\}}}||k�r
||}y|j
|�}Wn0tk
r�}	ztd|�|	�WYdd}	~	XnXy||�||<Wn6t
k
�r}	ztd||	f�|	�WYdd}	~	XnXq`tj|�||<q`W|d}
|d}|jd|
�}
|
�rX|
j�}d	d
�|D�|d<d|k�rn|d|d<d|d
�}
d|k�r�|d|
d<|jdd�|
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: %sNzFailed to process path %s: %srrzpublic-keyscSs$g|]}t|�r|jd�r|�qS)�#)rVr4)rL�linerrr
rN�sz-ConfigDriveReader.read_v1.<locals>.<listcomp>zinstance-idr.)r/r0rez	user-datarr]r_)�FILES_V1�keysrGrCr5r6r7rVr#r)rIrjr	rO�copy�deepcopyr(�
splitlines)r*rsr+r6Zmd�keyrr�default�contentsrTZkeydatar�linesrprrr
�read_v1�sL
 

zConfigDriveReader.read_v1)F)
r$r%r&rDrGrIrJrKr��
__classcell__rr)r|r
ryes
rycs@eZdZd�fdd�	Zdd�Zddd	�Zd
d�Zdd
�Z�ZS)�MetadataReaderN�cs4tt|�j|�||_t|�|_t|�|_d|_dS)N)	rzr�rD�ssl_details�float�timeout�int�retriesr{)r*Zbase_urlr�r�r�)r|rr
rD�s


zMetadataReader.__init__cCsf|jdk	r|jSg}|j|jd�}|j|dd�}x(|j�D]}|j�}|sLq:|j|�q:W||_|jS)NrXT)rH)r{rGrCrIr��stripr>)r*rsZversion_pathrtr�rrr
rJ�s
z(MetadataReader._fetch_available_versionsFcCs:dd�}tj||j|j|j|d�}|r0|jj�S|jSdS)NcSs8yt|j�}|dkrdSWnttfk
r2YnXdS)Ni�FT)r��codermrl)Z
_request_args�causer�rrr
�should_retry_cb�s
z2MetadataReader._path_read.<locals>.should_retry_cb)r�r�r�Zexception_cb)rZreadurlr�r�r�r�rH)r*r6rHr�Zresponserrr
rI�s

zMetadataReader._path_readcGstj|f|��S)N)rZcombine_url)r*rErFrrr
rGszMetadataReader._path_joincCstj|j|j|jd�S)N)r�r�r�)rZget_instance_metadatar�r�r�)r*rrr
rKsz!MetadataReader._read_ec2_metadata)Nr�r�)F)	r$r%r&rDrJrIrGrKr�rr)r|r
r��s

r�csN|dkrdSddddddgddd	d
ddd
ddddgd��|jdg�}|jdg�}|jdg�}g}i�d}d}g}�xH|D�]>�g}	t�fdd��j�D��}
d�kr��d|
d<d}�jd�r؈jd�j�}|��d<|
jd�|�d�dd�}�x@�fdd�|D�D�](}
t�fdd�|
j�D��}|
dd k�rH|jdd!i�n�|
dd"k�rf|jdd#i�nz|
ddIk�r�|jd|
di�nX|
ddJk�r�|jd(|
jd)�d*��n2|
ddKk�r�|
jd-d.i�|jd,|
jd)�d*��|
ddLk�r�|
jd-d/i�|
dd'k�rd/|d'<|
dd+k�r(d/|d+<|	j|��q
W|
jd|	i��ddMk�r�i}|�rf||d<x@�j�D]4\}}|d1k�r��qpn|jd0��rp|j||i��qpW||}|d27}|j|
d3d4tj�d1�f�|
j||d5��||d<n��ddNk�rtd7�d8�d9f}|
j|�d9�d:d;��|j|
d8d4�d8f�|j|
dd<�d9�d8f�|j�d:|d=��n.�dt	k�r�t
jd>�d�|
jd?|d@��|j|
�|�|d<qxWdAd�|D�}|�s�|�r�|dk�r�tj
�}xF�j�D]:\}}|jd��r
�q�|jdB�|k�r�||dB|d<�q�WxL|D]D}|jd�}|�sVtdC|��||k�rltdD|��|||d<�q6WxT|D]L\}
}�}t|ttf��r���fdEd�|D�|
|<n��|d|
|<�q�Wtj�}|�rx4|D],}
|
d|k�r�||
d|
d<dF|
d<�q�Wx*|D]"}|}
|
jddGi�|j|
��qWd2|dH�S)Oa)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.
    Nr+�type�mac_address�subnets�paramsZmtu�addressZnetmaskZ	broadcastZmetricZgatewayZpointopointZscopeZdns_nameserversZ
dns_searchZroutes)�physical�subnet�links�networks�serviceszbond%drc3s&|]\}}|�dkr||fVqdS)r�Nr)rL�krM)�
valid_keysrr
�	<genexpr>Qsz#convert_net_json.<locals>.<genexpr>Zethernet_mac_address�id)r+�macr�r�cs g|]}|d�dkr|�qS)�linkr�r)rLr@)r�rr
rNfsz$convert_net_json.<locals>.<listcomp>c3s&|]\}}|�dkr||fVqdS)r�Nr)rLr�rM)r�rr
r�hsZ	ipv4_dhcpZdhcp4�	ipv6_dhcpZdhcp6�
ipv6_slaac�ipv6_dhcpv6-stateless�ipv6_dhcpv6-stateful�ipv4�staticZ
ip_address)r�r��ipv6�static6z	accept-raFT�bondZ
bond_linksr.Zbond_interfacesz%s)r�r+�vlanz%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|]}|jd�dkrd|kr|�qS)r�r�r+)r()rLrrrr
rN�sr�z#No mac_address or name entry for %sz"Unable to find a system nic for %scsg|]}��|d�qS)r+r)rL�target)�fmt�link_id_inforr
rN�sZ
infinibandZ
nameserver)r/�config)r�r�r�)r�r�)r�r�)r�r�)r�)r�)r(rhr)�lower�updater>r4r�r��KNOWN_PHYSICAL_TYPESr9ZwarningrZget_interfaces_by_macrl�
isinstancerQ�tupleZget_ib_hwaddrs_by_interface)Znetwork_jsonZ
known_macsr�r�r�Zlink_updatesZ
bond_name_fmtZbond_numberr�r�ZcfgZ
link_mac_addrZcurinfoZnetworkr�r�r�rMZ	link_namer+Z
need_namesZ_link_id�inforr�r�ZtargetsZib_known_hwaddrsZservicer)r�r�r�r�r
�convert_net_jsons











r��rrF�rrT)r�r�)
Nrrrrrrrrrr r!r")NN)*rvrkr�rfr5Z	cloudinitrrZloggingrrrrrZcloudinit.sourcesr	Z	getLoggerr$r9r^r�rorSZ	OS_FOLSOMZ
OS_GRIZZLYZ	OS_HAVANAZ
OS_LIBERTYZ
OS_NEWTON_ONEZ
OS_NEWTON_TWOZOS_OCATAZOS_ROCKYrRr�rjr#�objectr'�ABCMetarBryr�r�rrrr
�<module>	sf

LEo:

Youez - 2016 - github.com/yon3zu
LinuXploit