o
    ϴf                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZmZ d dlmZ g dZG d	d
 d
eZe	 Zee
eZG dd dZeejZ dS )    N)Optional)urlparse)defaultsevent_loggerutil)BoolDataValue
DataObjectFieldIntDataValueStringDataValue)DataObjectFileDataObjectFileFormat)UAFile)apt_http_proxyapt_https_proxyglobal_apt_http_proxyglobal_apt_https_proxyua_apt_http_proxyua_apt_https_proxy
http_proxyhttps_proxyc                   @   sP  e Zd Zededdededdededdededdededdededded	edded
eddededdededdededdededdededdededdgZ														ddee	 dee	 dee	 dee	 dee	 dee	 d	ee	 d
ee	 dee
 dee	 dee
 dee dee dee fddZdS )UserConfigDatar   F)requiredr   r   r   r   r   r   r   apt_newsapt_news_urlpoll_for_pro_licensepolling_error_retry_delaymetering_timerupdate_messaging_timerNc                 C   sX   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _d S N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )selfr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   A/usr/lib/python3/dist-packages/uaclient/files/user_config_file.py__init__1   s   
zUserConfigData.__init__)NNNNNNNNNNNNNN)__name__
__module____qualname__r	   r   r   r
   fieldsr   strboolintr#   r!   r!   r!   r"   r      sv    	
r   c                   @   s`   e Zd ZejfdefddZedefddZ	dedefdd	Z
defd
dZdefddZdS )UserConfigFileObject	directoryc                 C   sR   t j}ttt|tj|t jddt	j
dd| _ttt||ddt	j
dd| _d S )NT)private) optional_type_errors_become_nullF)r   USER_CONFIG_FILEr   r   r   ospathjoinPRIVATE_SUBDIRr   JSON_private_public)r    r,   	file_namer!   r!   r"   r#   W   s"   
zUserConfigFileObject.__init__returnc                 C   s   | j  }|d u rt }|S r   )r6   readr   )r    public_configr!   r!   r"   r:   j   s   
z"UserConfigFileObject.public_configuser_configc                 C   sF   t |}tD ]}t||}|r t|}|js|jr t||d q|S )Nz
<REDACTED>)copydeepcopyPROXY_FIELDSgetattrr   usernamepasswordsetattr)r    r;   redacted_datafieldvalue
parsed_urlr!   r!   r"   redact_config_dataq   s   

z'UserConfigFileObject.redact_config_datac                 C   s:   t  r| j }|d ur|S | j }|d ur|S t S r   )r   we_are_currently_rootr5   r9   r6   r   )r    private_configr:   r!   r!   r"   r9      s   

zUserConfigFileObject.readcontentc                 C   s&   | j | | |}| j| d S r   )r5   writerG   r6   )r    rJ   redacted_contentr!   r!   r"   rK      s   
zUserConfigFileObject.writeN)r$   r%   r&   r   DEFAULT_DATA_DIRr(   r#   propertyr   r:   rG   r9   rK   r!   r!   r!   r"   r+   V   s    

r+   )!r<   loggingr0   typingr   urllib.parser   uaclientr   r   r   uaclient.data_typesr   r   r	   r
   r   uaclient.files.data_typesr   r   uaclient.files.filesr   r>   r   get_event_loggerevent	getLoggerreplace_top_level_logger_namer$   LOGr+   rM   r;   r!   r!   r!   r"   <module>   s    3;