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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/uaclient/__pycache__/config.cpython-310.pyc
o

���frE�@s
ddlZddlZddlZddlmZmZddlmZmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZddlmZmZmZmZmZmZmZmZddlmZddlmZe� e�!e"��Z#dd	d
�Z$dZ%dZ&d
Z'e�(�Z)Gdd�d�Z*de+fdd�Z,ddd�Z-de+fdd�Z.dS)�N)�	lru_cache�wraps)�Any�Dict�Optional)�apt�event_logger�
exceptions�http�messages�snap�system�util)�APT_NEWS_URL�BASE_CONTRACT_URL�BASE_LIVEPATCH_URL�BASE_SECURITY_URL�CONFIG_DEFAULTS�CONFIG_FIELD_ENVVAR_ALLOWLIST�DEFAULT_CONFIG_FILE�DEFAULT_DATA_DIR)�user_config_file)�	safe_load�name�type)�availableResources�resourceEntitlements�_unset)�
http_proxy�https_proxy�apt_http_proxy�apt_https_proxy�ua_apt_http_proxy�ua_apt_https_proxy�global_apt_http_proxy�global_apt_https_proxy�update_messaging_timer�metering_timer�apt_news�apt_news_url)	�contract_url�data_dir�features�log_file�	log_level�security_url�settings_overrides�	ua_config�
livepatch_urlc	@s�eZdZdZdZdZ			dCdeeee	fdee
jdeeddfd	d
�Ze
defdd��Ze
defd
d��Ze
defdd��Ze
deefdd��Zejdefdd��Ze
deefdd��Zejdefdd��Ze
deefdd��Zejdefdd��Ze
deefdd��Zejdefdd��Ze
edd�deefdd ���Zejdefd!d ��Ze
edd�deefd"d#���Zejdefd$d#��Ze
defd%d&��Zejdefd'd&��Ze
defd(d)��Zejdefd*d)��Ze
defd+d,��Zejdefd-d,��Ze
defd.d/��Zejdefd0d/��Ze
defd1d2��Zejdefd3d2��Ze
defd4d5��Z e jdefd6d5��Z e
d7d8��Z!e
d9d:��Z"e
defd;d<��Z#e
d=d>��Z$d?d@�Z%dAdB�Z&dS)D�UAConfig)r"r#)r$r%)r r!N�cfg�user_config�series�returnc
Cs�|rd|_||_d|_n
t�|_t|j�\|_|_|r||_n,ztj��|_Wn#tyJ}zt	j
d|d�t	�
d�t��|_WYd}~nd}~wwd|jvrctjji|j�
��|jd�dd�|_||_dS)�NzError loading user config)�exc_infozUsing default config valuesr1T)� optional_type_errors_become_null)�cfg_pathr4�invalid_keys�get_config_path�parse_configr5r�read�	Exception�LOG�warning�UserConfigData�	from_dict�to_dictr6)�selfr4r5r6�e�rH�1/usr/lib/python3/dist-packages/uaclient/config.py�__init__Rs,
��
�
zUAConfig.__init__cC�|j�dt�S)Nr*)r4�getr�rFrHrHrIr*u�zUAConfig.contract_urlcCrK)Nr/)r4rLrrMrHrHrIr/yrNzUAConfig.security_urlcCrK)Nr2)r4rLrrMrHrHrIr2}rNzUAConfig.livepatch_urlcC�|jjS�N)r5rrMrHrHrIr��zUAConfig.http_proxy�valuecC�||j_tj�|j�dSrP)r5rr�write�rFrRrHrHrIr��cCrOrP)r5rrMrHrHrIr�rQzUAConfig.https_proxycCrSrP)r5rrrTrUrHrHrIr�rVcCrOrP)r5r#rMrHrHrIr#�rQzUAConfig.ua_apt_https_proxycCrSrP)r5r#rrTrUrHrHrIr#�rVcCrOrP)r5r"rMrHrHrIr"�rQzUAConfig.ua_apt_http_proxycCrSrP)r5r"rrTrUrHrHrIr"�rV)�maxsizecC�:|jj}|r|S|jj}|rt�tjjddd��|SdS)Nr r$��old�new)r5r$r �event�infor�WARNING_DEPRECATED_FIELD�format�rF�
global_val�old_apt_valrHrHrIr$����zUAConfig.global_apt_http_proxycC�.||j_d|j_tjj��tj�|j�dSrP)r5r$r r3�fget�cache_clearrrTrUrHrHrIr$��cCrX)Nr!r%rY)r5r%r!r\r]rr^r_r`rHrHrIr%�rczUAConfig.global_apt_https_proxycCrdrP)r5r%r!r3rerfrrTrUrHrHrIr%�rgcC�|jj}|dur
dS|S)Ni`T)r5r&�rF�valrHrHrIr&��zUAConfig.update_messaging_timercCrSrP)r5r&rrTrUrHrHrIr&�rVcCrh)Ni@8)r5r'rirHrHrIr'�rkzUAConfig.metering_timercCrSrP)r5r'rrTrUrHrHrIr'�rVcCrh)NF)r5�poll_for_pro_licenserirHrHrIrl�szUAConfig.poll_for_pro_licensecCrSrP)r5rlrrTrUrHrHrIrl�rVcCrh)NiX)r5�polling_error_retry_delayrirHrHrIrm�sz"UAConfig.polling_error_retry_delaycCrSrP)r5rmrrTrUrHrHrIrmrVcCrh)NT)r5r(rirHrHrIr(
rkzUAConfig.apt_newscCrSrP)r5r(rrTrUrHrHrIr(rVcCs|jj}|dur
tS|SrP)r5r)rrirHrHrIr)rkzUAConfig.apt_news_urlcCrSrP)r5r)rrTrUrHrHrIr)rVcCrK)Nr+)r4rLrrMrHrHrIr+"rNzUAConfig.data_dircCs8|j�dd�}ztt|���WStytjYSw)Nr.�DEBUG)r4rL�getattr�logging�upper�AttributeErrorrn)rFr.rHrHrIr.&s
�zUAConfig.log_levelcCs|j�dtd�S)Nr-)r4rLrrMrHrHrIr-.szUAConfig.log_filecCs.|j�d�}|rt|t�r|St�d|�iS)z>Return a dictionary of any features provided in uaclient.conf.r,zDUnexpected uaclient.conf features value. Expected dict, but found %s)r4rL�
isinstance�dictrArB)rFr,rHrHrIr,2s
�zUAConfig.featuresc	CsdD]"}t||�}|durt�d|�qt|t�r|dkr$tj||d��q|js+|jr5|j	s1|j
r5t���t�
d|jtj�t�
d|jtj�t�
d|j	tj�t�
d|j
tj�t�
d|jtj�t�
d|jtj�|jsq|jr}t�|j|jtjj�n|j	s�|j
r�t�|j	|j
tjj�g}t��r�t�|j|j�|js�t�tj�s�|js�t�tj�r�|�d�ddl m!}dd	l"m#}||�j$}t%d
d�|D��}|r�|�&|j|j�|js�|�|j�s�|js�|�|j�r�|�d�t'|�dk�rd
�(|�}t)t*j+j,|d��dSdS)N)r&r'z1No config set for %s, default value will be used.r��keyrRr
�httpsr)�	livepatch)�_enabled_servicescss�|]
}|jdkr|VqdS)rxN)r)�.0�entrHrHrI�	<genexpr>�s��z*UAConfig.process_config.<locals>.<genexpr>rxz, )�services)-rorA�debugrs�intr	�InvalidPosIntConfigValuer$r%r"r#�InvalidProxyCombinationConfigr
�validate_proxy�PROXY_VALIDATION_APT_HTTP_URL�PROXY_VALIDATION_APT_HTTPS_URLr�PROXY_VALIDATION_SNAP_HTTP_URLr�PROXY_VALIDATION_SNAP_HTTPS_URLr�setup_apt_proxy�
AptProxyScope�GLOBAL�UACLIENTr�is_snapd_installed�configure_snap_proxy�get_config_option_value�HTTP_PROXY_OPTION�HTTPS_PROXY_OPTION�append�uaclientrx�-uaclient.api.u.pro.status.enabled_services.v1ry�enabled_services�any�configure_livepatch_proxy�len�join�printr�!PROXY_DETECTED_BUT_NOT_CONFIGUREDr_)	rF�proprR�services_with_proxiesrxryr��livepatch_enabledr}rHrHrI�process_configAs�
�������
��
�
����
��
�

��������

���zUAConfig.process_configcCs`|jdurt|j�D]}t�d|�q
d|jvr.t�d�t�d�t�d�t�d�dSdS)Nz&Ignoring invalid uaclient.conf key: %sr1z)legacy "ua_config" found in uaclient.confzPlease do the following:z�  1. run `sudo pro config set field=value` for each field/value pair present under "ua_config" in /etc/ubuntu-advantage/uaclient.confzQ  2. Delete "ua_config" and all sub-fields in /etc/ubuntu-advantage/uaclient.conf)r<�sortedrArBr4)rF�invalid_keyrHrHrI�warn_about_invalid_keys�s
�


���z UAConfig.warn_about_invalid_keys)NNN)'�__name__�
__module__�__qualname__�ua_scoped_proxy_options�global_scoped_proxy_options�&deprecated_global_scoped_proxy_optionsrr�strrrrCrJ�propertyr*r/r2r�setterrr#r"rr$r%rr&r'�boolrlrmr(r)r+r.r-r,r�r�rHrHrHrIr3Gs�����
�#	


jr3r7cCstj�d�}|r
|StS)z4Get config path to be used when loading config dict.�UA_CONFIG_FILE)�os�environrLr)�config_filerHrHrIr=�sr=c	Cspt�t�}|s
t�}t�d|�tj�|�r |�t	t
�|���i}tj�
�D]Q\}}|��}|�d�rx|dd�}|�d�rp|dd�}|�d�r^tj�|�rXt	t
�|��}ntj|d��d	|vri||i|d	<q'||d	|<q'|tvrx|||<q'|�|�d
|vr�tj�|d
�|d
<dD]}t�||�s�tj|||d��q�t|����t�}|D]}|�|�q�||fS)
a�Parse known Pro config file

    Attempt to find configuration in cwd and fallback to DEFAULT_CONFIG_FILE.
    Any missing configuration keys will be set to CONFIG_DEFAULTS.

    Values are overridden by any environment variable with prefix 'UA_'.

    @param config_path: Fullpath to pro configfile. If unspecified, use
        DEFAULT_CONFIG_FILE.

    @return: Dict of configuration values.
    z%Using client configuration file at %s�ua_�N�	features_�	�yaml)�filepathr,r+)r*r/ru)�copyrr=rAr~r��path�exists�updaterr
�	load_filer��items�lower�
startswith�endswithr	�InvalidFeatureYamlConfigValuer�
expanduserr
�is_service_url�InvalidURLConfigValue�set�keys�
difference�VALID_UA_CONFIG_KEYS�pop)	�config_pathr4�env_keysrvrR�
field_name�feature_field_namer<r�rHrHrIr>�sH




��
�r>�override_keycs�fdd�}|S)a�Decorator used to override function return by config settings.

    To identify if we should override the function return, we check
    if the config object has the expected override key, we use it
    has, we will use the key value as the function return. Otherwise
    we will call the function normally.

    @param override_key: key to be looked for in the settings_override
     entry in the config dict. If that key is present, we will return
     its value as the function return.
    cst����fdd��}|S)Ncs@t�\}}|�di���t�}|tkr�dkr|dfS|S��S)Nr0�
cloud_type)r>rL�UNSET_SETTINGS_OVERRIDE_KEY)r4�_�value_override)�fr�rHrI�new_fs
�z>apply_config_settings_override.<locals>.wrapper.<locals>.new_f)r)r�r��r�)r�rI�wrappers
z/apply_config_settings_override.<locals>.wrapperrH)r�r�rHr�rI�apply_config_settings_override	s
r�rP)/r�rpr��	functoolsrr�typingrrrr�rrr	r
rrr
r�uaclient.defaultsrrrrrrrr�uaclient.filesr�
uaclient.yamlr�	getLogger�replace_top_level_logger_namer�rA�MERGE_ID_KEY_MAPr��UA_CONFIGURABLE_KEYSr��get_event_loggerr\r3r�r=r>r�rHrHrHrI�<module>s.((

�
|
	?

Spamworldpro Mini