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/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

}��f�>�@s
ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
e�e�ZdZdZdgZdZGdd�dej�ZGd	d
�d
e�ZGdd�de�ZGd
d�d�Zdd�Zdd�Zdd�Zddd�Zddd�Zdd�Z eZ!eej"ffgZ#dd�Z$dS)�N)�
atomic_helper�net�sources�subp�utilziid-dsopennebula�nobody�
context.sh)�
EPOCHREALTIME�EPOCHSECONDS�RANDOM�LINENO�SECONDS�_�SRANDOM�__vc@sFeZdZdZdd�Zdd�Zdd�Zdd	�Zed
d��Z	dd
d�Z
dS)�DataSourceOpenNebula�
OpenNebulacCs4tj�||||�d|_tj�|jd�|_d|_dS)N�
opennebula)	r�
DataSource�__init__�seed�os�path�join�seed_dir�network)�self�sys_cfg�distro�paths�r �H/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenNebula.pyr/s
zDataSourceOpenNebula.__init__cCstj�|�}d||j|jfS)Nz%s [seed=%s][dsmode=%s])rr�__str__r�dsmode)r�rootr r r!r"5szDataSourceOpenNebula.__str__c
Csldti}d}d}t}d|jvr|j�d�}|jg}|�t��|D]Z}z&tj�	|j�r4t
||j|d�}n|�d�rHt
jt
||jd�}t�||�}Wn%tyRYq!ty_}z|�d}~wtjynt�d|�Ynw|r{|}t�d|�nq!|s�dS|d	}	t�|	|g�}	|�|�d
�|j�d�g�|_|jtjkr�dS||_|�d�|_|	|_|�d
�|_dS)Nzinstance-id�	parseuser��asuserz/dev)r'rz%s was not mountablezfound datasource in %sF�metadata�DSMODEr#�network-interfaces�userdataT) �DEFAULT_IID�DEFAULT_PARSEUSER�ds_cfg�getr�extend�find_candidate_devsrr�isdir�read_context_disk_dirr�
startswith�	functools�partialr�mount_cb�NonContextDiskDir�BrokenContextDiskDir�MountFailedError�LOG�warning�debug�
mergemanydict�_determine_dsmoder#r�DSMODE_DISABLEDrrr(�userdata_raw)
r�defaults�resultsrr%�
candidates�cdev�partially_applied_func�exc�mdr r r!�	_get_data9sb
�
������zDataSourceOpenNebula._get_datacCs$|j|jvr	d}nd}d||jfS)z/Return the subplatform metadata source details.zseed-dirzconfig-diskz%s (%s))rr)r�subplatform_typer r r!�_get_subplatformvsz%DataSourceOpenNebula._get_subplatformcCs|jdur|jSdS�N)r)rr r r!�network_config~s
z#DataSourceOpenNebula.network_configFcCs.|dur|jtjkr
d}nd}tj�|||�S)NTF)r#r�DSMODE_NETWORKr�get_hostname)r�fqdn�
resolve_ip�
metadata_onlyr r r!rO�s
z!DataSourceOpenNebula.get_hostnameN)FFF)�__name__�
__module__�__qualname__�dsnamerr"rIrK�propertyrMrOr r r r!r+s=
rc@�eZdZdS)r8N�rSrTrUr r r r!r8��r8c@rX)r9NrYr r r r!r9�rZr9c@speZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zddd�Z
dd�ZdS)�OpenNebulaNetworkNcCs|||_|durt|�}t�dd�t|��dd�d�D��|_i|_|��D]\}}t�	d|�}|r;|�
d�|j|��<q%dS)NcSsg|]}|�qSr r ��.0�kr r r!�
<listcomp>�s��z.OpenNebulaNetwork.__init__.<locals>.<listcomp>cSst�|d�S)N�)r�natural_sort_key)r^r r r!�<lambda>�sz,OpenNebulaNetwork.__init__.<locals>.<lambda>)�keyz
^(.+)_MAC$r`)�context�get_physical_nics_by_mac�collections�OrderedDict�sorted�items�ifaces�context_devname�re�match�group�lower)rrdr�system_nics_by_macr^�v�mr r r!r�s$�����zOpenNebulaNetwork.__init__cCs"d�dd�|�d�dd�D��S)N�.cSsg|]	}tt|d���qS)�)�str�int)r]�cr r r!r_�sz,OpenNebulaNetwork.mac2ip.<locals>.<listcomp>�:�)r�split)r�macr r r!�mac2ip�s"zOpenNebulaNetwork.mac2ipcCs\i}|�|dd���}|�|j�dd����|r||d<|�|dd���}|r,||d<|S)N�dns��DNS�	addresses�
search_domain�search)�	get_fieldrzr0rdr/)r�dev�nameserversr}r�r r r!�get_nameservers�sz!OpenNebulaNetwork.get_nameserverscC�|�|d�S)N�mtu�r��rr�r r r!�get_mtu��zOpenNebulaNetwork.get_mtucCs|�|d|�|��S)N�ip)r�r|)rr�r{r r r!�get_ip�szOpenNebulaNetwork.get_ipcCs<g}|�|d�}|r|�|�|�|d�}|r|�|�|S)N�ip6�ip6_ula)r��append)rr��
addresses6r�r�r r r!�get_ip6�s

zOpenNebulaNetwork.get_ip6cC�|�|dd�S)N�ip6_prefix_length�64r�r�r r r!�get_ip6_prefix��z OpenNebulaNetwork.get_ip6_prefixcCr�)N�gatewayr�r�r r r!�get_gateway�r�zOpenNebulaNetwork.get_gatewaycCs|�|d|�|d��S)N�ip6_gateway�gateway6r�r�r r r!�get_gateway6�s�zOpenNebulaNetwork.get_gateway6cCr�)N�maskz
255.255.255.0r�r�r r r!�get_mask�r�zOpenNebulaNetwork.get_maskcCs*|j�d�||f����}|dvr|S|S)z�return the field name in context for device dev.

        context stores <dev>_<NAME> (example: eth0_DOMAIN).
        an empty string for value will return default.r)Nr~)rdr/r�upper)rr��name�default�valr r r!r��s���	zOpenNebulaNetwork.get_fieldcs0i}d|d<i|d<i}|j��D]�\}}|��}|j�||�}i}d|i|d<g|d<|�|�}tt�|��}|d�	|�
||�d|�|�|�}	|	ra|�|��|d�
�fdd	�|	D��|�|�}
|
rl|
|d
<|�|�}|rw||d<|�|�}|r�||d<|�|�}
|
r�|
|d
<|||<q||d<|S)Nry�version�	ethernets�
macaddressrmr��/csg|]}|d��qS)r�r )r]�i��prefix6r r!r_	sz.OpenNebulaNetwork.gen_conf.<locals>.<listcomp>�gateway4r�r�r�)rjrirorkr/r�rur�ipv4_mask_to_net_prefixr�r�r�r�r0r�r�r�r�)r�netconfr�r{r��c_dev�devconfr��prefixr�r�r�r�r�r r�r!�gen_conf�sD


�




zOpenNebulaNetwork.gen_confrL)rSrTrUrr|r�r�r�r�r�r�r�r�r�r�r r r r!r[�s


r[cCs@g}dD]}t�|�}|��|D]}||vr|�|�qq|S)zE
    Return a list of devices that may contain the context disk.
    )z
LABEL=CONTEXTzLABEL=CDROMzTYPE=iso9660)r�find_devs_with�sortr�)�combined�f�devs�dr r r!r1&s

��r1cCs
dd|gS)N�sudoz-ur ��userr r r!�switch_user_cmd5s
r�cCs
t�d�S)zDprint the shell environment variables within delimiters to be parsedz�
        printf "%s\0" _start_
        [ $0 != 'sh' ] && set -o posix
        set
        [ $0 != 'sh' ] && set +o posix
        printf "%s\0" _start_
        )�textwrap�dedentr r r r!�
varprinter9s�r�c
Csd|��vrt�d�t�d|t�d}g}|dur!t|�}|�ddg�tj||d�j}i}|�d	�d
d�}|d|d}}t	d
d�t
�|�D��}	t	dd�t
�|�D��}
t|	����
t|
����D]}|tvrpqi|
�|�}|dur�||	�|�kr�|||<qi|S)a<run content and return environment variables which changed

    WARNING: the special variable _start_ is used to delimit content

    a context.sh that defines this variable might break in unexpected
    ways

    compatible with posix shells such as dash and ash and any shell
    which supports `set -o posix`
    s_start_zYUser defined _start_ variable in context.sh, this may breakcloud-init in unexpected ways.z{
%s

:
} > /dev/null
�
N�shz-e)�dataz_start_r`rrycs��|]
}|jddd�VqdS��=r`)�maxsplitN�rz�r]�variabler r r!�	<genexpr>}��
�z%parse_shell_config.<locals>.<genexpr>csr�r�r�r�r r r!r��r�)�encoder;r<r�r�r0r�stdoutrz�dict�shlex�set�keys�union�
EXCLUDED_VARSr/)
�contentr'�bcmd�cmd�output�ret�sections�before�after�pre_env�post_envrc�valuer r r!�parse_shell_configFsD�������
�r�c
CsJi}tD]}tj�||�}tj�|�r|||<q|s"td|df��i}did�}d|vr�|durNzt�|�WntyM}z	t	dj
|d��|�d}~wwztj�|d�}	t�|	�}
t
|
|d�}Wn*tjyv}zt	d	|�|�d}~wty�}ztd
|�|�d}~wwtd��|s�|S||d<d}d
|vr�d
}nd|vr�d}|r�|�|���}dd�|D�|dd<dD]}
|
|vr�||
|dd<nq�d|vr�|d|d<n
d|vr�|d|d<d|v�r|�d|�d��}|dk�rzt�|d�|d<Wnt�y
t�d�Ynwdd�|D�}|�r#t||�}|��|d<|S)z�
    read_context_disk_dir(source_dir):
    read source_dir and return a tuple with metadata dict and user-data
    string populated.  If not a valid dir, raise a NonContextDiskDir
    z%s: %szno files foundN)r+r(rz'configured user '{user}' does not existr�r&zError processing context.sh: %szError reading context.sh: %szMissing context.shr(�SSH_KEY�SSH_PUBLIC_KEYcSs"g|]
}t|�r|�d�s|�qS)�#)�lenr4)r]�liner r r!r_�s���z)read_context_disk_dir.<locals>.<listcomp>zpublic-keys)�SET_HOSTNAME�HOSTNAME�	PUBLIC_IP�	IP_PUBLIC�ETH0_IPzlocal-hostname�	USER_DATAr+�USERDATA�USERDATA_ENCODING�USER_DATA_ENCODING�base64z"Failed base64 decoding of userdatacSsg|]
}t�d|�r|�qS)z
^ETH\d+_IP.*$)rlrmr\r r r!r_�sr*)�CONTEXT_DISK_FILESrrr�isfiler8�pwd�getpwnam�KeyErrorr9�formatr�load_text_filer�r�ProcessExecutionError�IOErrorr/�
splitlinesr�b64d�	TypeErrorr;r<r[r�)�
source_dirrr'�found�af�fnrdrC�err��ssh_key_var�linesr^�encoding�ipaddr_keys�onetr r r!r3�s��
�����
���������

�
�
r3cs"t��}t�fdd�|��D��S)Ncs$g|]\}}�j�|�r||f�qSr )�
networking�is_physical)r]rr�n�rr r!r_�s$z,get_physical_nics_by_mac.<locals>.<listcomp>)r�get_interfaces_by_macr�ri)rr�r rr!re�s�recCst�|t�SrL)r�list_from_depends�datasources)�dependsr r r!�get_datasource_list�r�rrL)%rfr5�loggingrr�rlr�r��	cloudinitrrrrr�	getLoggerrSr;r,r-r�r�rr�	Exceptionr8r9r[r1r�r�r�r3re�DataSourceOpenNebulaNet�DEP_FILESYSTEMr
rr r r r!�<module>s:
c

G`
�

Spamworldpro Mini