
    g{                        d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZ d dlmZmZ d dlmZmZmZ d dlmZ dZ G d	 d
e
      Zdeeef   deeef   fdZ ee eed      e      Z G d de
      Z ee edd      ej>                        Z  G d de
      Z! ee! edd      ej>                        Z" G d de
      Z# G d de
      Z$ ee$ edd      ej>                        Z% edejL                        Z' ed dejL                  !      Z( G d" d#e
      Z) ee) ed$      ej>                  %      Z* ed&      Z+ ed'      Z, G d( d)e
      Z- ee- ed*ej\                  d      ej>                        Z/ G d+ d,e
      Z0 ee0 ed-d      ej>                        Z1 e ed.d      /      Z2 ed0ej\                  d      Z3 G d1 d2e
      Z4 ee4 ed3ejj                  d4      ej>                        Z6d5 Z7y)6    N)AnyDictListOptional)defaults)BoolDataValue
DataObjectDatetimeDataValueFieldIntDataValueStringDataValue	data_list)DataObjectFileDataObjectFileFormat)ProJSONFileUAFileUserCacheFile)LXDGuestAttachEnumzservices-once-enabledc                   .    e Zd Z eded      gZdefdZy)ServicesOnceEnabledDatafips_updatesFc                     || _         y N)r   )selfr   s     </usr/lib/python3/dist-packages/uaclient/files/state_files.py__init__z ServicesOnceEnabledData.__init__   
    (    N)__name__
__module____qualname__r   r   fieldsboolr    r   r   r   r      s!    nmU3F)T )r   r   datareturnc                 r    i }| j                         D ]!  }d|v rd||j                  dd      <   d||<   # |S )N-T_)keysreplace)r%   updated_datakeys      r   %_services_once_enable_preprocess_datar.      sL     Lyy{ %#:26LS#./ $L	% r   F)nameprivate)data_object_clsua_filepreprocess_datac                   z    e Zd Z ed ee      d       ed ee      d      gZ	 	 ddeee	      deee	      fdZ
y)RetryAutoAttachOptionsenableFenable_betaNc                      || _         || _        y r   )r6   r7   )r   r6   r7   s      r   r   zRetryAutoAttachOptions.__init__>   s    
 &r   )NN)r   r    r!   r   r   r   r"   r   r   strr   r$   r   r   r5   r5   8   s\    h	/2E:mY7?F '++/'c#' d3i('r   r5   zretry-auto-attach-options.jsonT)r0   c                   J    e Zd Z ede       eded      gZdedee	   fdZ
y)RetryAutoAttachStateinterval_indexfailure_reasonFrequiredc                      || _         || _        y r   )r<   r=   )r   r<   r=   s      r   r   zRetryAutoAttachState.__init__W   s    
 -,r   N)r   r    r!   r   r   r   r"   intr   r9   r   r$   r   r   r;   r;   Q   s<    -%@F
-- !-r   r;   zretry-auto-attach-state.jsonc                   6    e Zd Z ede       ede      gZd Zy)TimerJobStatenext_runlast_runc                      || _         || _        y r   )rD   rE   )r   rD   rE   s      r   r   zTimerJobState.__init__m   s      r   N)r   r    r!   r   r
   r"   r   r$   r   r   rC   rC   g   s$    j+,j+,F
!r   rC   c                   T    e Zd Z eded       eded      gZdee   dee   fdZy)AllTimerJobsStatemeteringFr>   update_messagingc                      || _         || _        y r   )rI   rJ   )r   rI   rJ   s      r   r   zAllTimerJobsState.__init__x   s    
 ! 0r   N)r   r    r!   r   rC   r"   r   r   r$   r   r   rH   rH   r   sC    j-%8 -%@F
1=)1 #=11r   rH   zjobs-status.jsonzapt-news)	directoryzapt-news-raw)r0   rL   c                       e Zd Z ede       ede       ede       ede       eded       ede      gZdedededede	e
   dej                  fd	Zy
)LivepatchSupportCacheDataversionflavorarchcodename	supportedFr>   	cached_atc                 X    || _         || _        || _        || _        || _        || _        y r   )rO   rP   rQ   rR   rS   rT   )r   rO   rP   rQ   rR   rS   rT   s          r   r   z"LivepatchSupportCacheData.__init__   s.     	 ""r   N)r   r    r!   r   r   r   r
   r"   r9   r   r#   datetimer   r$   r   r   rN   rN      s    i)h(fo&j/*k=59k,-F## # 	#
 # D># $$#r   rN   z#livepatch-kernel-support-cache.json)file_formatzmarker-reboot-cmds-requiredzmarker-only-series-checkc                   h    e Zd Z ede       ede       ede       ede      gZdedededefdZy)AnboxCloudDataanbox_images_urlanbox_images_resource_tokenanbox_cloud_apt_tokenanbox_cloud_apt_urlc                 <    || _         || _        || _        || _        y r   )rZ   r[   r\   r]   )r   rZ   r[   r\   r]   s        r   r   zAnboxCloudData.__init__   s$     !1+F(%:"#6 r   N)r   r    r!   r   r   r"   r9   r   r$   r   r   rY   rY      s`     /2+_=%7#_5	F
7
7 &)
7  #	
7
 !
7r   rY   zanbox-cloud-credentialsc                   @    e Zd Z ede      gZdej                  fdZy)AttachmentDataattached_atc                     || _         y r   )ra   )r   ra   s     r   r   zAttachmentData.__init__   s
    &r   N)r   r    r!   r   r
   r"   rV   r   r$   r   r   r`   r`      s&    m./F'H$5$5 'r   r`   zattachment.jsonzstatus.json)pro_filez
machine-idc                   ,    e Zd Z ede      gZdefdZy)LXDProConfigguest_attachc                     || _         y r   )rf   )r   rf   s     r   r   zLXDProConfig.__init__   r   r   N)r   r    r!   r   r   r"   r   r$   r   r   re   re      s!    n01F)%7 )r   re   zlxd-config.json)rL   r0   c                  D   t         j                          t        j                          t        j                          t        j                          t
        j                          t        j                          t        j                          t        j                          y r   )machine_id_filedeletestatus_cache_fileattachment_data_fileanbox_cloud_credentials_filereboot_cmd_marker_fileonly_series_check_marker_filelxd_pro_config_filer$   r   r   delete_state_filesrq     sb    ! '')!!#!((* r   )8rV   typingr   r   r   r   uaclientr   uaclient.data_typesr   r	   r
   r   r   r   r   uaclient.files.data_typesr   r   uaclient.files.filesr   r   r   uaclient.files.user_config_filer   SERVICES_ONCE_ENABLEDr   r9   r.   services_once_enabled_filer5   JSONretry_auto_attach_options_filer;   retry_auto_attach_state_filerC   rH   timer_jobs_state_fileMESSAGES_DIRapt_news_contents_fileapt_news_raw_filerN   livepatch_support_cachern   ro   rY   DEFAULT_PRIVATE_DATA_DIRrm   r`   rl   rk   ri   re   INTERFACE_FILES_DIRrp   rq   r$   r   r   <module>r      s    , ,    K C C >/ )j )
sCx.	#s(^  ,+" : 'Z ' "0
( " -: -  .
)48  !J !1
 1 '
u-   
h6K6KL EX-B-B 
#
 #6 )78$))    =>  &'A B 7Z 7*  .
!))
   'Z ' &
e,     %%): ) %
..
  !r   