
    h                     4   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
Jr  S SKJrJrJrJr  SSKJr  \R&                  " \5      r " S S\R,                  5      r " S	 S
\R,                  5      r " S S\R,                  5      rS\4S\4S\4/rg)    N)Path)DictOptional)Variantbusinotify	pathwatch   )configc                       \ rS rSr% Sr\\   \S'   S r\	R                  R                  S/S9S 5       r\	R                  R                  / S9S 5       rS	rg)
cockpit_LoginMessages#   Nmessagesc                    [         R                  R                  SS 5      nUc  [        R	                  S5        g [        R	                  SU5         [        [        U5      S5       nUR                  S5        UR                  5       U l	        S S S 5        [        R	                  SU R                  5        g ! , (       d  f       N/= f! [        [        [        4 a   n[        R	                  SU5         S nAg S nAff = f)NCOCKPIT_LOGIN_MESSAGES_MEMFDzBCOCKPIT_LOGIN_MESSAGES_MEMFD wasn't set.  No login messages today.z(Trying to read login messages from fd %srr   z$Successfully read login messages: %sz!Reading login messages failed: %s)osenvironpoploggerdebugopenintseekreadr   
ValueErrorOSErrorUnicodeDecodeError)selffdstrlogin_messagesexcs       </usr/lib/python3/dist-packages/cockpit/internal_endpoints.py__init__cockpit_LoginMessages.__init__&   s    

=tD=LL]^?G	Pc%j#&.##A& . 3 3 5 ' LL?O '& G%78 	C
 LL<cBB	Cs0   C &'B6C 6
C C C<C77C<s)	out_typesc                 ,    U R                   =(       d    S$ )Nz{}r   r   s    r#   getcockpit_LoginMessages.get:   s    }}$$    c                     S U l         g Nr)   r*   s    r#   dismisscockpit_LoginMessages.dismiss>   s	    r-   r)   )__name__
__module____qualname____firstlineno__r   r   str__annotations__r$   r   	InterfaceMethodr+   r0   __static_attributes__ r-   r#   r   r   #   sd    "Hhsm"P( 	]]SE*% +% 	]]B' (r-   r   c            	          \ rS rSr% \\S'   \R                  \S'   \\	R                     \S'   \R                  R                  S5      r\R                  S\\\\\4   4   4S j5       r\R                  R)                  / SQS	9S
\S\S\\\4   SS4S j5       rS rS\R0                  S\S\\   SS4S jrS\\   S\\   SS4S jrS rSrg)cockpit_MachinesC   pathwatchpending_notifyz	a{sa{sv}}returnc                    0 n[         R                   " U R                   S35       Hx  n[        U5       n [        R                  " U5      nUR                  5        H6  u  pVUR                  5        VVs0 s H  u  pxU[        U5      _M     snnX'   M8     S S S 5        Mz     U$ ! [        R
                   a"    [        R                  SU5         S S S 5        M  f = fs  snnf ! , (       d  f       M  = f)Nz/*.jsonz#Invalid JSON in file %s.  Ignoring.)
globr?   r   jsonloadJSONDecodeErrorr   warningitemsr   )	r   resultsfilenamefpcontentshostnameattrskeyvalues	            r#   get_machinescockpit_Machines.get_machinesK   s    13		TYYKw"78Hh2#yy}H
 (0~~'7OHOT{{}(]}gen)<}(]G% (8   9  ++ NN#H(S  
 )^  s:   C#B$(C#4C
C#$*CC#C	C##
C2	)r&   r&   za{sv})in_typesrK   rN   rO   Nc           	          U R                   R                  U5      R                  5        n[        R                  " U5      nS S S 5        WR                  U0 5      R                  UR                  5        VVs0 s H  u  pxXxR                  _M     snn5        U R                   R                  SSS9  [        U R                   R                  U5      S5       n[        R                  " XTSS	9  S S S 5        g ! , (       d  f       N= f! [        R
                   a$  n[        R                  " SSU SU S35      UeS nAf[         a    0 n GNf = fs  snnf ! , (       d  f       g = f)
Nzcockpit.Machines.ErrorzFile z is in invalid format: .T)parentsexist_okw   )indent)r?   joinpathr   rE   rF   rG   r   BusErrorFileNotFoundError
setdefaultupdaterI   rQ   mkdirdump)	r   rK   rN   rO   rL   rM   r"   rP   rQ   s	            r#   r`   cockpit_Machines.update\   s   	##H-22499R= 5 	Hb)00UZU`U`Ub1cUbzs#{{2BUb1cd		t4$))$$X.4IIh1- 54 54## 	s,,75
Jabeaffg9hiorr  	H	 2d 54sL   )D C6D 8E
E6
D D D ED::EE
E$c                    ^  U 4S jnT R                   c+  [        R                  " 5       R                  SU5      T l         g g )Nc                  <   > T R                  S0 S/5        S T l        g )Nzcockpit.MachinesMachines)properties_changedrA   r*   s   r#   _notify_now,cockpit_Machines.notify.<locals>._notify_nowo   s     ##$6ZLI"&Dr-   g      ?)rA   asyncioget_running_loop
call_later)r   rh   s   ` r#   notifycockpit_Machines.notifyn   s9    	'
 &")":":"<"G"G["YD 'r-   maskcookienamec                 $    U R                  5         g r/   rm   )r   ro   rp   rq   s       r#   do_inotify_event!cockpit_Machines.do_inotify_eventx       r-   fderrnoc                 $    U R                  5         g r/   rs   )r   rw   rx   s      r#   do_identity_changed$cockpit_Machines.do_identity_changed{   rv   r-   c                     [         R                  " S5      U l        SU l        [        R
                  " [        U R                  5      U 5      U l        S U l        g )Nz
machines.d.)r   lookup_configr?   rA   r	   	PathWatchr6   r@   r*   s    r#   r$   cockpit_Machines.__init__~   sB    ((6	 "((TYY>
"r-   )r?   rA   r@   )r2   r3   r4   r5   r   r7   r	   r~   r   rj   Handler   r8   Propertymachinesgetterr   r6   r   rR   r9   r`   rm   r   Eventr   rt   rz   r$   r:   r;   r-   r#   r=   r=   C   s   
JW^^,, }}%%k2H__d3S'\(:#:;    	]]#67.s .c .$sG|:L .QU . 8."ZW]] C xPS} Y] hsm HSM d #r-   r=   c                      \ rS rSr\R
                  R                  SSS9r\R
                  R                  SSS9r\R
                  R                  SSS9r	\R
                  R                  SSS9r
\R
                  R                  SSS9r\R
                  R                  SSS9r\R
                  R                  S/ S9rS rS	rg
)cockpit_User   r&    )rQ   ir   asc                 N   [         R                  " [        R                  " 5       5      nUR                  U l        UR                  U l        UR                  U l	        UR                  U l        UR                  U l        UR                  U l        [         R"                  " UR                  5      R$                  /n[         R&                  " 5        HL  nUR                  UR(                  ;   d  M  UR$                  U;  d  M1  UR+                  UR$                  5        MN     X l        g r/   )pwdgetpwuidr   getuidpw_namerq   pw_gecosfullpw_uididpw_gidgidpw_dirhomepw_shellshellgrpgetgrgidgr_namegetgrallgr_memappendgroups)r   userr   grs       r#   r$   cockpit_User.__init__   s    ||BIIK(LL	MM	++;;KK	]]
 ,,t{{+334,,.B||ryy(RZZv-Ebjj) ! r-   )r   r   r   r   r   rq   r   N)r2   r3   r4   r5   r   r8   r   rq   r   r   r   r   r   r   r$   r:   r;   r-   r#   r   r      s    ==!!#R!0D==!!#R!0D			1		-B
--
 
 A
 
.C==!!#R!0DMM""3b"1E]]##D#3Fr-   r   z/LoginMessagesz	/machinesz/user)rj   rD   r   rE   loggingr   r   pathlibr   typingr   r   cockpit._vendor.systemd_ctypesr   r   r   r	   r   r   	getLoggerr2   r   Objectr   r=   r   EXPORTSr;   r-   r#   <module>r      s   $   
   	 
  ! K K 			8	$CJJ @A#szz A#H3:: 8 ,-"#lr-   