
    g                     N   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
e      Z G d de      Z ej2                         Z e j6                   e	j8                  e            Z G d d      Z eej@                        Z!y)    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                       e Zd ZdZdZdZd Zy)LXDGuestAttachEnumonoff	availablec                     | j                   S N)value)selfs    A/usr/lib/python3/dist-packages/uaclient/files/user_config_file.py__str__zLXDGuestAttachEnum.__str__$   s    zz    N)__name__
__module____qualname__ONOFF	AVAILABLEr#    r$   r"   r   r      s    	B
CIr$   r   c            "          e Zd Z eded       eded       eded       eded       eded       eded       ed	ed       ed
ed       eded       eded       eded       eded       eded       eded       eded       ede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Zy)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                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        || _        || _        || _        y r   )r   r   r   r   r   r   r   r   r/   r0   r1   r2   r3   r4   r5   r6   )r!   r   r   r   r   r   r   r   r   r/   r0   r1   r2   r3   r4   r5   r6   s                    r"   __init__zUserConfigData.__init__>   s    & -.%:"&<#!2"4$& ($8!)B&,&<#-J* 0r$   )NNNNNNNNNNNNNNNN)r%   r&   r'   r   r   r   r   r   fieldsr   strboolintr8   r+   r$   r"   r-   r-   (   s   %@5A%G&%H!?UC"OeDlOe<m_u=j-%8no>$meD)<%Hu=&uE+_u	
 	 "4uE%F. )-)-/304+/,0$(%)#'&*/337(,047;9=#"1 "1 "#"1  (}	"1
 !)"1 $C="1 %SM"1 SM"1 c]"1 4."1 sm"1 'tn"1 $,C="1 !"1 !)"1  (0}!"1" ##56#"1r$   r-   c                   n    e Zd Zej                  fdefdZedefd       Z	dedefdZ
defdZdefd	Zy
)UserConfigFileObject	directoryc           
      D   t         j                  }t        t        t	        |t
        j                  j                  |t         j                        d      t        j                  d      | _        t        t        t	        ||d      t        j                  d      | _        y )NT)private) optional_type_errors_become_nullF)r   USER_CONFIG_FILEr   r-   r   ospathjoinPRIVATE_SUBDIRr   JSON_private_public)r!   r?   	file_names      r"   r8   zUserConfigFileObject.__init__h   sy    --	&Y(?(?@
 !%%-1	
 &9i7 %%-1	
r$   returnc                 R    | j                   j                         }|
t               }|S r   )rJ   readr-   )r!   public_configs     r"   rO   z"UserConfigFileObject.public_config{   s(    ))+ *,Mr$   user_configc                     |j                         }t        D ]?  }|j                  |      }|st        |      }|j                  s|j
                  s;d||<   A t        j                  |      S )Nz
<REDACTED>)to_dictPROXY_FIELDSgetr   usernamepasswordr-   	from_dict)r!   rP   redacted_data_dictfieldr    
parsed_urls         r"   redact_config_dataz'UserConfigFileObject.redact_config_data   sn     )002! 	=E&**51E%e_
&&**=*=0<&u-	= ''(:;;r$   c                     t        j                         r| j                  j                         }||S | j                  j                         }||S t               S r   )r   we_are_currently_rootrI   rN   rJ   r-   )r!   private_configrO   s      r"   rN   zUserConfigFileObject.read   sS    %%'!]]//1N)%%))+$  r$   contentc                     | j                   j                  |       | j                  |      }| j                  j                  |       y r   )rI   writer[   rJ   )r!   r_   redacted_contents      r"   ra   zUserConfigFileObject.write   s8    G$227;+,r$   N)r%   r&   r'   r   DEFAULT_DATA_DIRr:   r8   propertyr-   rO   r[   rN   ra   r+   r$   r"   r>   r>   g   s_    (0(A(A 
# 
& ~  
<)
<	
< n  -^ -r$   r>   )"loggingrD   typingr   urllib.parser   uaclientr   r   r   uaclient.data_typesr   r	   r
   r   r   r   uaclient.files.data_typesr   r   uaclient.files.filesr   rS   r   r-   get_event_loggerevent	getLoggerreplace_top_level_logger_namer%   LOGr>   rc   rP   r+   r$   r"   <module>rq      s     	  ! 1 1  K '	 81Z 81v 	&%%'g:::8DE4- 4-n #8#<#<=r$   