File: //proc/1233/cwd/usr/lib/python3/dist-packages/uaclient/__pycache__/config.cpython-310.pyc
o
nHJek\ � @ sr d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl m
Z
mZmZm
Z
mZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d d l)m*Z* e�+e�,e-��Z.d
dd�Z/d
Z0dZ1dZ2edd�Z3e�4� Z5ede6d�Z7dede7f de7fdd�Z8G dd� d�Z9de6fdd�Z:d"dd�Z;de6fd 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�PRIVATE_SUBDIR)�notices�state_files)�Notice)� 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_url�DataPath)�filename�private�S)�bound�func.�returnc C s
t � | �S �N)r )r@ � rC �1/usr/lib/python3/dist-packages/uaclient/config.py� str_cacheS s
rE c @ s~ e Zd Zedd�edd�edd�edd�d�ZdZd Zd
Z d^dee e
ef d
eej
dee
ddfdd�Zedd� �Zede
fdd��Zede
fdd��Zede
fdd��Zedee
fdd��Zejde
fdd��Zedee
fdd��Zejde
fd d��Zedee
fd!d"��Zejde
fd#d"��Zedee
fd$d%��Zejde
fd&d%��Zeedee
fd'd(���Zejde
fd)d(��Zeedee
fd*d+���Zejde
fd,d+��Zedefd-d.��Zejdefd/d.��Zedefd0d1��Zejdefd2d1��Zedefd3d4��Z e jdefd5d4��Z edefd6d7��Z!e!jdefd8d7��Z!edefd9d:��Z"e"jdefd;d:��Z"ede
fd<d=��Z#e#jde
fd>d=��Z#de$ee
f fd?d@�Z%edAdB� �Z&edCdD� �Z'ede
fdEdF��Z(edGdH� �Z)edIdJ� �Z*d_dKee
de
fdLdM�Z+dKe
defdNdO�Z,dKe
ddfdPdQ�Z-dRdS� Z.d`dKe
dTedee fdUdV�Z/dKe
dWeddfdXdY�Z0dZd[� Z1d\d]� Z2dS )a�UAConfig�instance-idTzmachine-access-cis.json�lockFzstatus.json)rG zmachine-access-cisrH zstatus-cache)r* r+ )r, r- )r( r) N�cfg�user_config�seriesrA c
C s� |rd| _ || _d| _n
t� | _ t| j �\| _| _|r|| _n0ztj�� p(t� � | _W n# t
yN } ztjd|d� t�d� t� � | _W Y d}~nd}~ww d| jv rgtj j
i | j�� �| jd �dd�| _|| _d| _dS )� NzError loading user config)�exc_infozUsing default config valuesr9 T)� optional_type_errors_become_null)�cfg_pathrI �invalid_keys�get_config_path�parse_configrJ r �user_config_file�read�UserConfigData� Exception�LOG�warning� from_dict�to_dictrK �_machine_token_file)�selfrI rJ rK �erC rC rD �__init__i s4
�
��
��zUAConfig.__init__c C s$ | j st�| j| j�d��| _ | j S )N�machine_token_overlay)r[ r �MachineTokenFiler3 r4 �get�r\ rC rC rD �machine_token_file� s
�zUAConfig.machine_token_filec C � | j �dt�S )Nr2 )rI ra r rb rC rC rD r2 � � zUAConfig.contract_urlc C rd )Nr7 )rI ra r rb rC rC rD r7 � re zUAConfig.security_urlc C rd )Nr: )rI ra r rb rC rC rD r: � re zUAConfig.livepatch_urlc C � | j jS rB )rJ r&