Ë
    GKÕiæ*  ã                   ó”  — d dl mZmZmZmZmZmZmZ d dlm	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 d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZ  ej@                  «       Z!d„ Z"d„ Z#ejH                  d„ «       Z%ejH                  d„ «       Z& edejN                  ejN                  e# e edejP                  d¬«      g¬«      g¬«      Z) edejT                  ejT                  e% e edejV                  jY                  dj[                  ej\                  «      ¬«      ¬«      g¬«      g¬«      Z/ edej`                  ej`                  e& e edejb                  jY                  dj[                  ej\                  «      ¬«      d¬«      g¬«      g¬«      Z2 edejf                  ejh                  e"ejj                  e)e/e2g¬«      Z6y) é    )Úapt_newsÚconfigÚentitlementsÚevent_loggerÚ
exceptionsÚhttpÚmessages)Ú_is_attached)ÚAptProxyScope)Úcli_util)ÚProArgumentÚProArgumentGroupÚ
ProCommand)ÚHelpCategory)ÚApplicationStatus)Ústate_files)ÚLXDGuestAttachEnum)Úconfigure_livepatch_proxyÚunconfigure_livepatch_proxy)Úconfigure_snap_proxyÚunconfigure_snap_proxyc                ó<   — ddl m}  |«       j                  d«       y)Nr   ©Ú
get_parserr   )Úuaclient.clir   Úprint_help_for_command)ÚargsÚcfgÚkwargsr   s       ú5/usr/lib/python3/dist-packages/uaclient/cli/config.pyÚaction_configr!      s   € å'áƒL×'Ñ'¨Ô1Øó    c                ó  — | j                   r¥| j                   t        j                  vrMt        j                  dj                  | j                   «      dj                  t        j                  «      ¬«      ‚t        dj                  | j                   t        || j                   d«      ¬«      «       yt        t        t        j                  D �cg c]  }t        |«      ‘Œ c}«      dz   «      }d	|z   d
z   }t        j                  D ])  }t        |j                  |t        ||d«      ¬«      «       Œ+ |j                  s|j                  r3|j                  s|j                  rt        t         j"                  «       yyyc c}w )z“Perform the 'config show' action optionally limit output to a single key

    :return: 0 on success
    :raise UbuntuProError: on invalid keys
    z'{}'ú, ©ÚargÚchoicesz{key} {value}N©ÚkeyÚvaluer   é   z{key: <z	} {value})r)   r   ÚUA_CONFIGURABLE_KEYSr   ÚInvalidArgChoiceÚformatÚjoinÚprintÚgetattrÚstrÚmaxÚlenÚglobal_apt_http_proxyÚglobal_apt_https_proxyÚua_apt_http_proxyÚua_apt_https_proxyr	   ÚCLI_CONFIG_GLOBAL_XOR_UA_PROXY)r   r   r   ÚxÚ	col_widthÚrow_tmplr)   s          r    Úaction_config_showr=   #   s:  € ð ‡x‚xØ�8‰8œ6×6Ñ6Ñ6Ü×-Ñ-Ø—M‘M $§(¡(Ó+ØŸ	™	¤&×"=Ñ"=Ó>ôð ô 	Ø×"Ñ"Ø—H‘H¤G¨C°·±¸4Ó$@ð #ó ô	
ð
 ä”C¬×)DÑ)DÖE Aœ˜Q�ÒEÓFÈÑJÓK€IØ˜9Ñ$ {Ñ2€Hä×*Ñ*ò GˆÜˆh�o‰o #¬W°S¸#¸tÓ-DˆoÓEÕFðGð 	×!Ò! S×%?Ò%?Ø×Ò ×!7Ò!7äŒh×5Ñ5Õ6ð "8ð &@ùò Fs   ÃE>c                óÔ
  — ddl m}  |«       }	 | j                  j                  d«      \  }}|t        j                  vrE|j                  d«       t        j                  ddj                  t        j                  «      ¬	«      ‚|j                  «       s'|j                  d«       t        j                  |¬
«      ‚t        t        ||d«      «      t         k(  r<|j#                  «       dvrt        j                  dd¬	«      ‚|j#                  «       dk(  }|dv r³|j                  d«      d   }|dk(  rt$        j&                  }nt$        j(                  }t%        j*                  |||«       ||i}t-        d#i |¤Ž t.        j0                  j3                  |«      }	|	j5                  «       \  }
}|
t6        j8                  k(  �rt;        d#i |¤Ž �n||j<                  v rÖ|j                  d«      d   }|dk(  rt$        j>                  }nt$        j@                  }t%        j*                  |||«       t!        |jB                  xs |jD                  «      }|r*tG        tH        jJ                  jM                  dd¬«      «       tO        jP                  |tR        jT                  ||«       d|_!        d|_"        �n.||jV                  |jX                  z   v �r$d|v rdnd}|dk(  rt$        j>                  }nt$        j@                  }||jV                  v rMtG        tH        jZ                  jM                  djM                  |«      djM                  |«      ¬«      «       d|z   }t%        j*                  |||«       t!        |j\                  xs |j^                  «      }|r*tG        tH        jJ                  jM                  dd¬«      «       tO        jP                  |tR        j`                  ||«       d|_.        d|_/        nî|dv r,	 tc        |«      }|dk  rt	        djM                  |«      «      ‚n¾|d k(  r7|rtg        jh                  |«       n¡tj        jl                  jo                  «        n‚|d!k(  r}tq        |«      jr                  st        jt                  «       ‚tj        jv                  jy                  tk        jz                  t}        j~                  |j#                  «       «      ¬"«      «       t�        |||«       y# t        $ r3 |j                  d«       t        j                  d| j                  ¬«      ‚w xY w# t        $ r4 |j                  d«       tG        d«       t        jd                  ||¬«      ‚w xY w)$zMPerform the 'config set' action.

    @return: 0 on success, 1 otherwise
    r   r   ú=z
config setz<key>=<value>)ÚexpectedÚactualú<key>r$   r%   )r&   N)ÚtrueÚfalsez<value>ztrue, falserC   ©Ú
http_proxyÚhttps_proxyÚ_r   é   zpro scoped aptz
global apt)Úcurrent_proxyÚprevious_proxyÚhttpsúapt_{}_proxyúglobal_apt_{}_proxy©ÚoldÚnewÚglobal_)Úupdate_messaging_timerÚmetering_timerzInvalid interval for {}Ú r(   r   Úlxd_guest_attach©Úguest_attach© )Ar   r   Úkey_value_pairÚsplitÚ
ValueErrorr   r   ÚGenericInvalidFormatr   r,   r-   r/   ÚstripÚEmptyConfigValueÚtyper1   ÚboolÚlowerr   ÚPROXY_VALIDATION_SNAP_HTTP_URLÚPROXY_VALIDATION_SNAP_HTTPS_URLÚvalidate_proxyr   r   Ú	livepatchÚLivepatchEntitlementÚapplication_statusr   ÚENABLEDr   Úua_scoped_proxy_optionsÚPROXY_VALIDATION_APT_HTTP_URLÚPROXY_VALIDATION_APT_HTTPS_URLr5   r6   r0   r	   ÚWARNING_APT_PROXY_OVERWRITEr.   r   Úconfigure_apt_proxyr   ÚUACLIENTÚ&deprecated_global_scoped_proxy_optionsÚglobal_scoped_proxy_optionsÚWARNING_CONFIG_FIELD_RENAMEr7   r8   ÚGLOBALÚintÚInvalidPosIntConfigValuer   Úupdate_apt_newsr   Úapt_news_contents_fileÚdeleter
   Úis_attachedÚUnattachedErrorÚlxd_pro_config_fileÚwriteÚLXDProConfigr   Ú
from_valueÚsetattr)r   r   r   r   ÚparserÚset_keyÚ	set_valueÚprotocol_typeÚvalidate_urlÚentitlementÚlivepatch_statusrH   Úunset_currents                r    Úaction_config_setrˆ   B   sÝ  € õ (á‹\€Fð
Ø!×0Ñ0×6Ñ6°sÓ;Ñˆ�ð ”f×1Ñ1Ñ1Ø×%Ñ% lÔ3Ü×)Ñ)Ø §¡¬6×+FÑ+FÓ!Gô
ð 	
ð �?‰?ÔØ×%Ñ% lÔ3Ü×)Ñ)¨gÔ6Ð6äŒG�C˜ $Ó'Ó(¬DÒ0Ø�?‰?ÓÐ$5Ñ5Ü×-Ñ-Ø }ôð ð —O‘OÓ%¨Ñ/ˆ	àÐ/Ñ/ØŸ™ cÓ*¨1Ñ-ˆØ˜FÒ"Ü×>Ñ>‰Lä×?Ñ?ˆLÜ×Ñ˜M¨9°lÔCà˜9Ð%ˆÜÑ&˜vÒ&ä"×,Ñ,×AÑAÀ#ÓFˆØ)×<Ñ<Ó>ÑÐ˜!ØÔ0×8Ñ8Ó8Ü%Ñ/¨Ô/Ø	�C×/Ñ/Ñ	/ØŸ™ cÓ*¨1Ñ-ˆØ˜FÒ"Ü×=Ñ=‰Lä×>Ñ>ˆLÜ×Ñ˜M¨9°lÔCÜØ×%Ñ%ÒC¨×)CÑ)Có
ˆñ ÜÜ×4Ñ4×;Ñ;Ø"2À<ð <ó ôô
 	×$Ñ$Ø”×'Ñ'¨°)ô	
ð %)ˆÔ!Ø%)ˆÖ"à	Ø×2Ñ2Ø
×
)Ñ
)ñ	*ò
ð $+¨gÑ#5™¸6ˆØ˜FÒ"Ü×=Ñ=‰Lä×>Ñ>ˆLà�c×@Ñ@Ñ@ÜÜ×4Ñ4×;Ñ;Ø&×-Ñ-¨mÓ<Ø-×4Ñ4°]ÓCð <ó ôð   'Ñ)ˆGä×Ñ˜M¨9°lÔCä˜S×2Ñ2ÒL°c×6LÑ6LÓMˆáÜÜ×4Ñ4×;Ñ;Ø".Ð?Oð <ó ôô
 	×$Ñ$Ø”×%Ñ% w°	ô	
ð !%ˆÔØ!%ˆÕà	ð ñ 
ð
	Ü˜I›ˆIØ˜1Š}Ü Ð!:×!AÑ!AÀ'Ó!JÓKÐKð ð 
�JÒ	ÙÜ×$Ñ$ SÕ)ä×.Ñ.×5Ñ5Õ7Ø	Ð&Ò	&Ü˜CÓ ×,Ò,Ü×,Ñ,Ó.Ð.Ü×'Ñ'×-Ñ-Ü×$Ñ$Ü/×:Ñ:¸9¿?¹?Ó;LÓMôô	
ô ˆC�˜)Õ$øô{ ò 
Ø×%Ñ% lÔ3Ü×-Ñ-Ø$¨T×-@Ñ-@ô
ð 	
ð
ûôP ò 	Ø×)Ñ)¨,Ô7ä�"ŒIÜ×5Ñ5Ø 9ôð ð		ús   �S+ Ï4*T* Ó+<T'Ô*=U'c                ó&  — ddl m} | j                  t        j                  vrL |«       }|j                  d«       t        j                  ddj                  t        j                  «      ¬«      ‚| j                  dv r~| j                  j                  d«      d   }t        |¬	«       t        j                  j                  |«      }|j                  «       \  }}|t        j                   k(  �rŽt#        |¬	«       �n€| j                  |j$                  v r2t'        j(                  |t*        j,                  | j                  d
«       �n6| j                  |j.                  |j0                  z   v rÁ| j                  |j.                  v rxd| j                  v rdnd}t2        j5                  t6        j8                  j;                  dj;                  |«      dj;                  |«      ¬«      «       d| j                  z   | _        t'        j(                  |t*        j<                  | j                  d
«       nP| j                  dk(  rAt>        j@                  jC                  t?        jD                  tF        jH                  ¬«      «       tK        || j                  d
«       y)zOPerform the 'config unset' action.

    @return: 0 on success, 1 otherwise
    r   r   zconfig unsetrB   r$   r%   rE   rH   )rƒ   NrL   r   rM   rN   rO   rR   rV   rW   )&r   r   r)   r   r,   r   r   r-   r/   r[   r   r   rf   rg   rh   r   ri   r   rj   r   rn   r   ro   rp   rq   ÚeventÚinfor	   rr   r.   rs   r   r{   r|   r}   r   ÚOFFr   )	r   r   r   r   r€   rƒ   r…   r†   rH   s	            r    Úaction_config_unsetr�   Í   sþ  € õ (à‡x�x”v×2Ñ2Ñ2Ù“ˆØ×%Ñ% nÔ5Ü×)Ñ)Ø §¡¬6×+FÑ+FÓ!Gô
ð 	
ð ‡x�xÐ0Ñ0ØŸ™Ÿ™ sÓ+¨AÑ.ˆÜ¨]Õ;ä"×,Ñ,×AÑAÀ#ÓFˆØ)×<Ñ<Ó>ÑÐ˜!ØÔ0×8Ñ8Ó8Ü'°m×DØ	�‰�S×0Ñ0Ñ	0Ü×$Ñ$Ø”×'Ñ'¨¯©°4ö	
ð 
�‰Ø×2Ñ2Ø
×
)Ñ
)ñ	*ñ
ð �8‰8�s×AÑAÑAØ'.°$·(±(Ñ':™GÀˆMÜ�J‰JÜ×4Ñ4×;Ñ;Ø&×-Ñ-¨mÓ<Ø-×4Ñ4°]ÓCð <ó ôð ! 4§8¡8Ñ+ˆDŒHÜ×$Ñ$ S¬-×*>Ñ*>ÀÇÁÈ$ÕOØ	�‰Ð'Ò	'Ü×'Ñ'×-Ñ-Ü×$Ñ$Ô2D×2HÑ2HÔIô	
ô ˆC�—‘˜4Ô Ør"   Úshowr)   ú?)ÚhelpÚnargs)Ú	arguments)r�   ÚdescriptionÚactionÚargument_groupsÚsetrZ   r$   )Úoptions)r�   Úunset)r�   Úmetavarr   )r�   r“   r”   Úhelp_categoryÚsubcommandsN)7Úuaclientr   r   r   r   r   r   r	   Ú(uaclient.api.u.pro.status.is_attached.v1r
   Úuaclient.aptr   r   r   Úuaclient.cli.commandsr   r   r   Úuaclient.cli.parserr   Ú(uaclient.entitlements.entitlement_statusr   Úuaclient.filesr   Úuaclient.files.user_config_filer   Úuaclient.livepatchr   r   Úuaclient.snapr   r   Úget_event_loggerrŠ   r!   r=   Úassert_rootrˆ   r�   ÚCLI_CONFIG_SHOW_DESCÚCLI_CONFIG_SHOW_KEYÚshow_subcommandÚCLI_CONFIG_SET_DESCÚCLI_CONFIG_SET_KEY_VALUEr.   r/   r,   Úset_subcommandÚCLI_CONFIG_UNSET_DESCÚCLI_CONFIG_UNSET_KEYÚunset_subcommandÚCLI_ROOT_CONFIGÚCLI_CONFIG_DESCÚOTHERÚconfig_commandrY   r"   r    ú<module>rµ      sñ  ð÷÷ ñ õ BÝ &Ý !ß KÑ KÝ ,Ý FÝ &Ý >÷÷ Gà%ˆ×%Ñ%Ó'€òò7ð> 
×ÑñG%ó ðG%ðT 
×Ññ-ó ð-ñ` Ø
Ø	×	&Ñ	&Ø×-Ñ-ØááØ × <Ñ <ÀCôðô	
ðô€ñ  Ø	Ø	×	%Ñ	%Ø×,Ñ,ØááØ$à ×9Ñ9×@Ñ@Ø$(§I¡I¨f×.IÑ.IÓ$Jð Aó ôð	ô	
ðô€ñ* ØØ	×	'Ñ	'Ø×.Ñ.ØááØà ×5Ñ5×<Ñ<Ø$(§I¡I¨f×.IÑ.IÓ$Jð =ó ð "ôð
ô	
ðôÐ ñ, ØØ	×	!Ñ	!Ø×(Ñ(ØØ×$Ñ$Ø  .Ð2BÐCô�r"   