403Webshell
Server IP : 172.67.131.151  /  Your IP : 104.23.243.115
Web Server : Apache
System : Linux keen-cori.18-142-40-148.plesk.page 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 06:59:36 UTC 2025 x86_64
User : simottodesign.com_2tntp341vs7 ( 10011)
PHP Version : 8.3.31
Disable Function : opcache_get_status
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/uaclient/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/uaclient/__pycache__/config.cpython-38.pyc
U

2�d�]�@spddlZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZmZm
Z
mZmZddlmZmZmZmZmZmZmZmZmZddlmZmZmZmZmZm Z m!Z!m"Z"ddl#m$Z$m%Z%ddl&m'Z'dd	l(m)Z)e�*e�+e,��Z-d
Z.ddd
�Z/dZ0dZ1dZ2edd�Z3e�4�Z5ede6d�Z7ede7fe7d�dd�Z8Gdd�d�Z9e6d�dd�Z:d#dd�Z;e6d �d!d"�Z<dS)$�N)�
namedtuple)�	lru_cache�wraps)�Any�Callable�Dict�Optional�Tuple�TypeVar)	�apt�event_logger�
exceptions�files�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)�notices�state_files)�Notice)�	safe_load�private�name�type)ZavailableResourcesZresourceEntitlementsZ_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�timer_log_file�daemon_log_file�	ua_config�
livepatch_url�DataPath)�filenamer �S)Zbound.)�func�returncCs
t�|�S�N)r)r=�r@�1/usr/lib/python3/dist-packages/uaclient/config.py�	str_cacheUsrBc@s�eZdZedd�edd�edd�edd�d�ZdZd	Zd
Zd`ee	e
efeej
ee
dd�d
d�Zedd��Zee
d�dd��Zee
d�dd��Zee
d�dd��Zeee
d�dd��Zeje
d�dd��Zeee
d�dd��Zeje
d�dd��Zeee
d�dd ��Zeje
d�d!d ��Zeee
d�d"d#��Zeje
d�d$d#��Zeeee
d�d%d&���Zeje
d�d'd&��Zeeee
d�d(d)���Zeje
d�d*d)��Zeed�d+d,��Zejed�d-d,��Zeed�d.d/��Zejed�d0d/��Zeed�d1d2��Z e jed�d3d2��Z eed�d4d5��Z!e!jed�d6d5��Z!eed�d7d8��Z"e"jed�d9d8��Z"ee
d�d:d;��Z#e#je
d�d<d;��Z#e$ee
fd�d=d>�Z%ed?d@��Z&edAdB��Z'ee
d�dCdD��Z(ee
d�dEdF��Z)edGdH��Z*edIdJ��Z+edKdL��Z,daee
e
dM�dNdO�Z-e
edM�dPdQ�Z.e
ddM�dRdS�Z/dTdU�Z0dbe
eeedV�dWdX�Z1e
eddY�dZd[�Z2d\d]�Z3d^d_�Z4dS)c�UAConfig�instance-idTzmachine-access-cis.json�lockFzstatus.json)rDzmachine-access-cisrEzstatus-cache)r'r()r)r*)r%r&N)�cfg�user_config�seriesr>cCs�|rd|_||_d|_nt�|_t|j�\|_|_|r>||_ntztj��pPt�	�|_WnZt
k
r�}z<t��� t
�d�|��t
�d�W5QRXt�	�|_W5d}~XYnXd|jkr�tj	j|j��|jd�dd�|_||_d|_dS)�NzError loading user config: {}zUsing default config valuesr8T)Z optional_type_errors_become_null)Zcfg_pathrF�invalid_keys�get_config_path�parse_configrGr�user_config_file�read�UserConfigData�	ExceptionrZdisable_log_to_console�LOG�warning�formatZ	from_dictZto_dictrH�_machine_token_file)�selfrFrGrH�er@r@rA�__init__ks2
�

��zUAConfig.__init__cCs$|jst�|j|j�d��|_|jS)NZmachine_token_overlay)rTrZMachineTokenFiler0r1�get�rUr@r@rA�machine_token_file�s
�zUAConfig.machine_token_file�r>cCs|j�dt�S)Nr/)rFrXrrYr@r@rAr/�szUAConfig.contract_urlcCs|j�dt�S)Nr4)rFrXrrYr@r@rAr4�szUAConfig.security_urlcCs|j�dt�S)Nr9)rFrXrrYr@r@rAr9�szUAConfig.livepatch_urlcCs|jjSr?)rGr#rYr@r@rAr#�szUAConfig.http_proxy)�valuecCs||j_tj�|j�dSr?)rGr#rrM�write�rUr\r@r@rAr#�scCs|jjSr?)rGr$rYr@r@rAr$�szUAConfig.https_proxycCs||j_tj�|j�dSr?)rGr$rrMr]r^r@r@rAr$�scCs|jjSr?)rGr(rYr@r@rAr(�szUAConfig.ua_apt_https_proxycCs||j_tj�|j�dSr?)rGr(rrMr]r^r@r@rAr(�scCs|jjSr?)rGr'rYr@r@rAr'�szUAConfig.ua_apt_http_proxycCs||j_tj�|j�dSr?)rGr'rrMr]r^r@r@rAr'�scCs0|jj}|r|S|jj}|r,t�tj�|SdSr?)rGr)r%�event�inforZWARNING_DEPRECATED_APT_HTTP�rUZ
global_valZold_apt_valr@r@rAr)�szUAConfig.global_apt_http_proxycCs.||j_d|j_tjj��tj�|j�dSr?)	rGr)r%rC�fget�cache_clearrrMr]r^r@r@rAr)�scCs0|jj}|r|S|jj}|r,t�tj�|SdSr?)rGr*r&r_r`rZWARNING_DEPRECATED_APT_HTTPSrar@r@rAr*�szUAConfig.global_apt_https_proxycCs.||j_d|j_tjj��tj�|j�dSr?)	rGr*r&rCrbrcrrMr]r^r@r@rAr*�scCs|jj}|dkrdS|S)Ni`T)rGr+�rU�valr@r@rAr+�szUAConfig.update_messaging_timercCs||j_tj�|j�dSr?)rGr+rrMr]r^r@r@rAr+�scCs|jj}|dkrdS|S)Ni@8)rGr,rdr@r@rAr,szUAConfig.metering_timercCs||j_tj�|j�dSr?)rGr,rrMr]r^r@r@rAr,	scCs|jj}|dkrdS|S)NF)rG�poll_for_pro_licenserdr@r@rArfszUAConfig.poll_for_pro_licensecCs||j_tj�|j�dSr?)rGrfrrMr]r^r@r@rArfscCs|jj}|dkrdS|S)NiX)rG�polling_error_retry_delayrdr@r@rArgsz"UAConfig.polling_error_retry_delaycCs||j_tj�|j�dSr?)rGrgrrMr]r^r@r@rArg&scCs|jj}|dkrdS|S)NT)rGr-rdr@r@rAr-+szUAConfig.apt_newscCs||j_tj�|j�dSr?)rGr-rrMr]r^r@r@rAr-2scCs|jj}|dkrtS|Sr?)rGr.rrdr@r@rAr.7szUAConfig.apt_news_urlcCs||j_tj�|j�dSr?)rGr.rrMr]r^r@r@rAr.>sc	Cs�|�d�}d}tj�|�s|St�|�}z|�d�\}}Wn*tk
rdt�	tj�
|jd���YnXzt�d|g�t
|�|fWStjk
r�t��s�t�d||�t
|�|fYSt�d||�t�|�|YSXdS)a]Return lock info if config lock file is present the lock is active.

        If process claiming the lock is no longer present, remove the lock file
        and log a warning.

        :param lock_path: Full path to the lock file.

        :return: A tuple (pid, string describing lock holder)
            If no active lock, pid will be -1.
        rE)���rI�:Zpsz.Found stale lock file previously held by %s:%sz1Removing stale lock file previously held by %s:%sN)�	data_path�os�path�existsr�	load_file�split�
ValueErrorr
ZInvalidLockFile�joinr0Zsubp�intZProcessExecutionErrorrZwe_are_currently_rootrQ�debugrR�ensure_file_absent)rUZ	lock_pathZno_lockZlock_contentZlock_pidZlock_holderr@r@rA�check_lock_infoCs:

�
��
zUAConfig.check_lock_infocCs|j�dt�S)Nr0)rFrXrrYr@r@rAr0nszUAConfig.data_dircCs>|j�dd�}ztt|���WStk
r8tjYSXdS)Nr3�DEBUG)rFrX�getattr�logging�upper�AttributeErrorrv)rUr3r@r@rAr3rs
zUAConfig.log_levelcCs|j�dtd�S)Nr2�rFrXrrYr@r@rAr2zszUAConfig.log_filecCs|j�dtd�S)Nr6r{rYr@r@rAr6~s�zUAConfig.timer_log_filecCs|j�dtd�S)Nr7r{rYr@r@rAr7�s�zUAConfig.daemon_log_filecCs.|j�d�}|r*t|t�r|St�d|�iS)z>Return a dictionary of any features provided in uaclient.conf.r1zDUnexpected uaclient.conf features value. Expected dict, but found %s)rFrX�
isinstance�dictrQrR)rUr1r@r@rAr1�s
�zUAConfig.featurescCs|jjS)zAReturn the machine-token if cached in the machine token response.)rZ�
machine_tokenrYr@r@rAr~�szUAConfig.machine_token)�keyr>cCsd|j}|stj�|t�S||jkrT|j|}|jrDtj�|t|j�Stj�||j�Stj�|t|�S)zAReturn the file path in the data directory represented by the key)r0rkrlrq�PRIVATE_SUBDIR�
data_pathsr r;)rUrr0rjr@r@rArj�s

�zUAConfig.data_pathcCs|�|�}tj�|�Sr?)rjrkrlrm�rUr�
cache_pathr@r@rA�cache_key_exists�s
zUAConfig.cache_key_existscCsJ|std��|�d�rd|_n|dkr2t�tj�|�|�}t�	|�dS)zRemove specific cache file.z1Invalid or empty key provided to delete_cache_key�machine-accessNrE)
�RuntimeError�
startswithrTr�remover�OPERATION_IN_PROGRESSrjrrtr�r@r@rA�delete_cache_key�s�

zUAConfig.delete_cache_keycCs|j��D]}|�|�q
dS)zN
        Remove configuration cached response files class attributes.
        N)r��keysr�)rUZpath_keyr@r@rA�delete_cache�szUAConfig.delete_cache)r�silentr>cCs||�|�}zt�|�}Wn2tk
rJtj�|�sD|sDt�d|�YdSXzt	j
|tjd�WSt
k
rv|YSXdS)NzFile does not exist: %s��cls)rjrrnrPrkrlrmrQrs�json�loadsrZDatetimeAwareJSONDecoderrp)rUrr�r��contentr@r@rA�
read_cache�s
zUAConfig.read_cache)rr�r>cCs�|�|�}tj�|�}tj�|�sLtj|dd�tj�|�tkrLt�|d�|�	d�r^d|_
n*|dkr�d|kr�tjt
j|�d�dd�t|t�s�tj|tjd	�}d
}||jkr�|j|js�d}tj|||d�dS)
NT)�exist_oki�r�rEri�)Z	operationr�i�i�)�mode)rjrkrl�dirnamerm�makedirs�basenamer��chmodr�rTr�addrr�ror|�strr��dumpsrZDatetimeAwareJSONEncoderr�r rZ
write_file)rUrr��filepathr0r�r@r@rA�write_cache�s*

�

zUAConfig.write_cachecCs4dD]H}t||�}|dkr&t�d�qt|t�r8|dkrd�|�}t�|��q|jsZ|j	rr|j
sf|jrrt�tj
��t�d|jtj�t�d|j	tj�t�d|j
tj�t�d|jtj�t�d|jtj�t�d|jtj�|js�|j	�rt�|j|j	tjj�n&|j
�s|j�r*t�|j
|jtjj�g}t���r~t�|j|j�|j�s^t�tj��st|j�s~t�tj ��r~|�!d�ddl"m#}dd	l$m%}dd
l&m'}|�}|�(�\}	}
|	|j)k�r|�*|j|j�|j�s�|�|j��s�|j�s|�|j ��r|�!d�t+|�dk�r0d�,|�}t-tj.j|d
��dS)N)r+r,z1No config set for {}, default value will be used.rzQValue for the {} interval must be a positive integer. Default value will be used.rZhttpsr)�	livepatch)�ApplicationStatus)�LivepatchEntitlementr�z, )�services)/rwrQrsr|rrrSr
�UserFacingErrorr)r*r'r(rZERROR_PROXY_CONFIGURATIONrZvalidate_proxyZPROXY_VALIDATION_APT_HTTP_URLZPROXY_VALIDATION_APT_HTTPS_URLr#ZPROXY_VALIDATION_SNAP_HTTP_URLr$ZPROXY_VALIDATION_SNAP_HTTPS_URLrZsetup_apt_proxyZ
AptProxyScopeZGLOBALZUACLIENTrZis_snapd_installedZconfigure_snap_proxyZget_config_option_valueZHTTP_PROXY_OPTIONZHTTPS_PROXY_OPTION�append�uaclientr�Z(uaclient.entitlements.entitlement_statusr�Zuaclient.entitlements.livepatchr�Zapplication_statusZENABLEDZconfigure_livepatch_proxy�lenrq�printZ!PROXY_DETECTED_BUT_NOT_CONFIGURED)rUZpropr\Z	error_msgZservices_with_proxiesr�r�r�Z
livepatch_entZlivepatch_status�_r�r@r@rA�process_config�s�
�������������
�
��
�
�������

��zUAConfig.process_configcCs\|jdk	r&t|j�D]}t�d|�qd|jkrXt�d�t�d�t�d�t�d�dS)Nz&Ignoring invalid uaclient.conf key: %sr8z)legacy "ua_config" found in uaclient.confzPlease do the following:z�  1. run `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)rJ�sortedrQrRrF)rU�invalid_keyr@r@rA�warn_about_invalid_keysQs
�


��z UAConfig.warn_about_invalid_keys)NNN)N)F)5�__name__�
__module__�__qualname__r:r�Zua_scoped_proxy_optionsZglobal_scoped_proxy_optionsZ&deprecated_global_scoped_proxy_optionsrrr�rrrOrW�propertyrZr/r4r9r#�setterr$r(r'rBr)r*rrr+r,�boolrfrgr-r.r	rur0r3r2r6r7r1r~rjr�r�r�r�r�r�r�r@r@r@rArCYs����*
	+






irCr[cCstj�d�}|r|StS)z4Get config path to be used when loading config dict.ZUA_CONFIG_FILE)rk�environrXr)Zconfig_filer@r@rArKgsrKc	Cs�t�t�}|st�}t�d|�tj�|�r@|�t	t
�|���i}tj�
�D]�\}}|��}|�d�rN|dd�}|�d�r�|dd�}|�d�r�tj�|�r�t	t
�|��}nt�d�|���d	|kr�||i|d	<q�||d	|<qN|tkrN|||<qN|�|�d
|k�rtj�|d
�|d
<dD],}t�||��s"t�d�|||����q"t|����t�}|D]}|�|��qf||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 %sZua_�NZ	features_�	ZyamlzCould not find yaml file: {}r1r0)r/r4zInvalid url in config. {}: {})�copyrrKrQrsrkrlrm�updaterrrnr��items�lowerr��endswithr
r�rSr�
expanduserrZis_service_url�setr��
difference�VALID_UA_CONFIG_KEYS�pop)	Zconfig_pathrFZenv_keysrr\Z
field_nameZfeature_field_namerJr�r@r@rArLpsH



�


�rL��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:�dkr6|dfS|S��S)Nr5Z
cloud_type)rLrX�UNSET_SETTINGS_OVERRIDE_KEY)rFr�Zvalue_override)�fr�r@rA�new_f�s
�z>apply_config_settings_override.<locals>.wrapper.<locals>.new_f)r)r�r�r�)r�rA�wrapper�s
z/apply_config_settings_override.<locals>.wrapperr@)r�r�r@r�rA�apply_config_settings_override�s
r�)N)=r�r�rxrk�collectionsr�	functoolsrr�typingrrrrr	r
r�rrr
rrrrrrZuaclient.defaultsrrrrrrrrZuaclient.filesrrZuaclient.files.noticesrZ
uaclient.yamlrZ	getLoggerZreplace_top_level_logger_namer�rQr�ZMERGE_ID_KEY_MAPr�ZUA_CONFIGURABLE_KEYSr�r:Zget_event_loggerr_r�r<rBrCrKrLr�r@r@r@rA�<module>s> ,(
�
	
A

Youez - 2016 - github.com/yon3zu
LinuXploit