o
    Ki                     @   s   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mZ d dlmZmZ d dlmZ g dZG d	d
 d
e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EnumDataValue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                   @   s    e Zd ZdZdZdZdd ZdS )LXDGuestAttachEnumonoff	availablec                 C   s   | j S N)value)self r   A/usr/lib/python3/dist-packages/uaclient/files/user_config_file.py__str__$   s   zLXDGuestAttachEnum.__str__N)__name__
__module____qualname__ONOFF	AVAILABLEr!   r   r   r   r    r      s
    r   c                "   @   s|  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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 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_timervulnerability_data_url_prefixlxd_guest_attachNc                 C   sd   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _|| _|| _d S r   )r   r   r   r   r   r   r   r   r*   r+   r,   r-   r.   r/   r0   r1   )r   r   r   r   r   r   r   r   r   r*   r+   r,   r-   r.   r/   r0   r1   r   r   r    __init__>   s    
zUserConfigData.__init__)NNNNNNNNNNNNNNNN)r"   r#   r$   r
   r   r   r   r   fieldsr   strboolintr2   r   r   r   r    r(   (   s    	
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   r8   	file_namer   r   r    r2   h   s"   
zUserConfigFileObject.__init__returnc                 C   s   | j  }|d u rt }|S r   )rB   readr(   )r   public_configr   r   r    rF   {   s   
z"UserConfigFileObject.public_configuser_configc                 C   sF   |  }tD ]}||}|rt|}|js|jrd||< qt|S )Nz
<REDACTED>)to_dictPROXY_FIELDSgetr   usernamepasswordr(   	from_dict)r   rG   redacted_data_dictfieldr   
parsed_urlr   r   r    redact_config_data   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_rootrA   rE   rB   r(   )r   private_configrF   r   r   r    rE      s   

zUserConfigFileObject.readcontentc                 C   s&   | j | | |}| j| d S r   )rA   writerQ   rB   )r   rT   redacted_contentr   r   r    rU      s   
zUserConfigFileObject.writeN)r"   r#   r$   r   DEFAULT_DATA_DIRr4   r2   propertyr(   rF   rQ   rE   rU   r   r   r   r    r7   g   s    

r7   )"loggingr<   typingr   urllib.parser   uaclientr   r   r   uaclient.data_typesr   r   r	   r
   r   r   uaclient.files.data_typesr   r   uaclient.files.filesr   rI   r   r(   get_event_loggerevent	getLoggerreplace_top_level_logger_namer"   LOGr7   rW   rG   r   r   r   r    <module>   s     	;7