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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

}��f�$�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZdZ
dZe�e�ZGdd�dejd�ZGd	d
�d
e�ZegZddd�Zd
d�Zddd�Zdd�Zdd�Zdd�Zddd�ZdS)�N)�util)�get_devicelist�read_sys_net_safez#/run/initramfs/open-iscsi.interface�disabledc@s8eZdZdZejdefdd��Zejdefdd��Z	dS)�InitramfsNetworkConfigSourcezBABC for net config sources that read config written by initramfses�returncC�dS)zAIs this initramfs config source applicable to the current system?N���selfr	r	�7/usr/lib/python3/dist-packages/cloudinit/net/cmdline.py�
is_applicable�z*InitramfsNetworkConfigSource.is_applicablecCr)z;Render a v1 network config from the initramfs configurationNr	r
r	r	r�
render_config"rz*InitramfsNetworkConfigSource.render_configN)
�__name__�
__module__�__qualname__�__doc__�abc�abstractmethod�boolr
�dictrr	r	r	rrsr)�	metaclassc@s6eZdZdZd
dd�Zdefdd�Zdefdd	�ZdS)�KlibcNetworkConfigSourcez�InitramfsNetworkConfigSource for klibc initramfs (i.e. Debian/Ubuntu)

    Has three parameters, but they are intended to make testing simpler, _not_
    for use in production code.  (This is indicated by the prepended
    underscores.)
    NcCst||_||_||_|jdurt�|_|jdurt��|_|jdur6i|_t�D]}t|d�}|r5||j|<q'dSdS)N�address)�_files�
_mac_addrs�_cmdline�_get_klibc_net_cfg_filesr�get_cmdlinerr)rrrr�k�mac_addrr	r	r�__init__/s 






��z!KlibcNetworkConfigSource.__init__rcCs<|jrt�|j�D]
}|�d�rdSq	tj�t�rdSdS)aD
        Return whether this system has klibc initramfs network config or not

        Will return True if:
            (a) klibc files exist in /run, AND
            (b) either:
                (i) ip= or ip6= are on the kernel cmdline, OR
                (ii) an open-iscsi interface file is present in the system
        )zip=zip6=TF)	r�shlex�splitr�
startswith�os�path�exists�_OPEN_ISCSI_INTERFACE_FILE)r�itemr	r	rr
As

�z&KlibcNetworkConfigSource.is_applicablecCst|j|jd�S)N)�files�	mac_addrs)�config_from_klibc_net_cfgrrr
r	r	rrTs�z&KlibcNetworkConfigSource.render_config)NNN)	rrrrr"rr
rrr	r	r	rr's

rc
Cs�|duri}t�|�}zd|vr|dn|d}Wnty*}ztd�|�d}~ww|�d|�d��}|s@|�d�r>d}nd	}|d
vrFd	}|dvrPtd|��d
|gd�}||vr`|||d<dD]�}|d|vrkqb|�|d|�}|d	kryd}|dd�}	|dkr�||d|	d<dD]}
||
|vr�|||
|	|
��<q�g}dD]}|�||�}
|
r�t|
�d��r�|�|||�q�|r�||	d<|�d�}|r�d|vr�|�	d�|	d<n|�	�|	d<|d�|	�qb||fS)aConvert a klibc written shell content file to a 'config' entry
    When ip= is seen on the kernel command line in debian initramfs
    and networking is brought up, ipconfig will populate
    /run/net-<name>.cfg.

    The files are shell style syntax, and examples are in the tests
    provided here.  There is no good documentation on this unfortunately.

    DEVICE=<name> is expected/required and PROTO should indicate if
    this is 'none' (static) or 'dhcp' or 'dhcp6' (LP: #1621507) or 'static'
    or 'off' (LP: 2065787). Note that IPV6PROTO is also written to address
    the possibility of both ipv4 and ipv6 getting addresses.

    Full syntax is documented at:
    https://git.kernel.org/pub/scm/libs/klibc/klibc.git/plain/usr/kinit/ipconfig/README.ipconfig
    N�DEVICE�DEVICE6z&no 'DEVICE' or 'DEVICE6' entry in data�PROTO�	IPV6PROTO�filename�dhcp�none)�static�off)r4r3�dhcp6zUnexpected value for PROTO: %s�physical)�type�name�subnets�mac_address)�IPV4�IPV6�ADDRr5�manual)r9�controlr)�NETMASK�	BROADCAST�GATEWAY)�DNS0�DNS1z:.0�dns_nameservers�DOMAINSEARCH�,�
dns_searchr;)
r�load_shell_content�KeyError�
ValueError�get�lower�len�strip�appendr$)�contentr,�datar:�e�proto�iface�pre�	cur_proto�subnet�key�dns�nskey�ns�searchr	r	r�_klibc_to_config_entry^sh

��
�
��
r`cCst�d�t�d�S)Nz/run/net-*.confz/run/net6-*.conf)�globr	r	r	rr�src	Cs�|durt�}g}i}|D]Y}tt�|�|d�\}}||vrY||d}|�d�|�d�krFtdj|d�||d�|�d�|�d�d���|d�|d�||d�	|�q
|g|d	�||<|�	|�q
|d
d�S)N)r,�entryr<zedevice '{name}' was defined multiple times ({files}) but had differing mac addresses: {old} -> {new}.� r+)r:r+�old�newr;)r+rb�)�config�version)
rr`r�load_text_filerNrM�format�join�extendrR)r+r,�entries�names�cfg_filer:rb�prevr	r	rr-�s2

���	
r-cCs(tD]}|�}|��sq|��SdS)a
    Return v1 network config for initramfs-configured networking (or None)

    This will consider each _INITRAMFS_CONFIG_SOURCES entry in turn, and return
    v1 network configuration for the first one that is applicable.  If none are
    applicable, return None.
    N)�_INITRAMFS_CONFIG_SOURCESr
r)�src_cls�
cfg_sourcer	r	r�read_initramfs_config�srtc	Cs�t�|��@}d}z4ztjd|d�}|��WW|r|��Wd�Sty<|YW|r4|��Wd�Sw|rD|��ww1sHwYdS)N�rb)�mode�fileobj)�io�BytesIO�gzip�GzipFile�read�close�IOError)�blob�iobuf�gzfpr	r	r�_decomp_gzip�s$
��
��r�c	Cs:z
t�|�}Wt|�Sttfyt�d|�YdSw)z�Decode a string base64 encoding, if gzipped, uncompress as well

    :return: decompressed unencoded string of the data or empty string on
       unencoded data.
    zaExpected base64 encoded kernel command line parameter network-config. Ignoring network-config=%s.�)�base64�	b64decode�	TypeErrorrM�LOG�errorr�)rTrr	r	r�_b64dgzs	���r�cCsj|durt��}d|vr3d}|��D]}|�d�r!|�dd�d}q|r3|tkr,ddiSt�t|��SdS)Nznetwork-config=�=rfrgr)rrr$r%�&KERNEL_CMDLINE_NETWORK_CONFIG_DISABLED�	load_yamlr�)�cmdline�data64�tokr	r	r�read_kernel_cmdline_configs
�r�)N)NN)rr�rarzrx�loggingr&r#�	cloudinitr�
cloudinit.netrrr)r��	getLoggerrr��ABCMetarrrqr`rr-rtr�r�r�r	r	r	r�<module>s.
4
`


Spamworldpro Mini