HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/cockpit/__pycache__/internal_endpoints.cpython-39.pyc
a

�/�h��@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZddlm
Z
mZmZmZddlmZe�e�ZGdd�dej�ZGd	d
�d
ej�ZGdd�dej�Zd
efdefdefgZdS)�N)�Path)�Dict�Optional)�Variant�bus�inotify�	pathwatch�)�configc@sTeZdZUdZeeed<dd�Zej	j
dgd�dd��Zej	j
gd�d	d
��ZdS)�cockpit_LoginMessagesN�messagesc
Cs�tj�dd�}|dur$t�d�dSt�d|�zFtt|�d��$}|�d�|��|_	Wd�n1sj0YWn6t
ttfy�}zt�d|�WYd}~nd}~00t�d|j	�dS)NZCOCKPIT_LOGIN_MESSAGES_MEMFDzBCOCKPIT_LOGIN_MESSAGES_MEMFD wasn't set.  No login messages today.z(Trying to read login messages from fd %s�rrz!Reading login messages failed: %sz$Successfully read login messages: %s)
�os�environ�pop�logger�debug�open�int�seek�readr�
ValueError�OSError�UnicodeDecodeError)�selfZfdstrZlogin_messages�exc�r�>/usr/lib/python3.9/site-packages/cockpit/internal_endpoints.py�__init__&s

,"zcockpit_LoginMessages.__init__�s)Z	out_typescCs
|jpdS)Nz{}�r�rrrr�get:szcockpit_LoginMessages.getcCs
d|_dS�Nr r!rrr�dismiss>szcockpit_LoginMessages.dismiss)
�__name__�
__module__�__qualname__rr�str�__annotations__rr�	Interface�Methodr"r$rrrrr#s

rc@s�eZdZUeed<ejed<eej	ed<e
j�d�Z
e
jeeeeeffd�dd��Ze
jjgd�d	�eeeeefd
d�dd
��Zdd�Zejeeed
d�dd�Zeeeed
d�dd�Zdd�Zd
S)�cockpit_Machines�path�watch�pending_notifyz	a{sa{sv}})�returnc
Cs�i}t�|j�d��D]�}t|��x}zt�|�}Wn0tjybt�d|�YWd�qYn0|��D]\}}dd�|��D�||<qlWd�q1s�0Yq|S)Nz/*.jsonz#Invalid JSON in file %s.  Ignoring.cSsi|]\}}|t|��qSr)r��.0�key�valuerrr�
<dictcomp>X�z1cockpit_Machines.get_machines.<locals>.<dictcomp>)	�globr-r�json�load�JSONDecodeErrorrZwarning�items)r�results�filename�fp�contents�hostname�attrsrrr�get_machinesKs
8zcockpit_Machines.get_machines)rrza{sv})Zin_typesN)r=r@rAr0cCsz>|j�|����}t�|�}Wd�n1s20YWnVtjy�}z(t�dd|�d|�d��|�WYd}~nd}~0ty�i}Yn0|�	|i��
dd�|��D��|jjddd�t|j�|�d	�� }tj
||d
d�Wd�n1s�0YdS)Nzcockpit.Machines.ErrorzFile z is in invalid format: �.cSsi|]\}}||j�qSr�r4r1rrrr5hr6z+cockpit_Machines.update.<locals>.<dictcomp>T)�parents�exist_ok�w�)�indent)r-�joinpathrr8r9r:rZBusError�FileNotFoundError�
setdefault�updater;�mkdir�dump)rr=r@rAr>r?rrrrrM\s,0
 zcockpit_Machines.updatecs,�fdd�}�jdur(t���d|��_dS)Ncs��didg�d�_dS)Nzcockpit.MachinesZMachines)Zproperties_changedr/rr!rr�_notify_nowosz,cockpit_Machines.notify.<locals>._notify_nowg�?)r/�asyncioZget_running_loopZ
call_later)rrPrr!r�notifyns
zcockpit_Machines.notify)�mask�cookie�namer0cCs|��dSr#�rR)rrSrTrUrrr�do_inotify_eventxsz!cockpit_Machines.do_inotify_event)�fd�errnor0cCs|��dSr#rV)rrXrYrrr�do_identity_changed{sz$cockpit_Machines.do_identity_changedcCs0t�d�|_d|_t�t|j�|�|_d|_dS)Nz
machines.d.)r
Z
lookup_configr-r/r�	PathWatchr(r.r!rrrr~szcockpit_Machines.__init__)r%r&r'rr)rr[rrQZHandlerr*�PropertyZmachines�getterrr(rrBr+rMrRr�EventrrWrZrrrrrr,Cs

 
r,c@s�eZdZejjddd�Zejjddd�Zejjddd�Zejjddd�Z	ejjddd�Z
ejjddd�Zejjdgd�Zdd�Z
d	S)
�cockpit_Userr�rD�ir�ascCs�t�t���}|j|_|j|_|j|_	|j
|_|j|_
|j|_t�|j
�jg}t��D]&}|j|jvrV|j|vrV|�|j�qV||_dSr#)�pwd�getpwuidr�getuid�pw_namerU�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�userrwZgrrrrr�szcockpit_User.__init__N)r%r&r'rr*r\rUrhrjrlrnrprwrrrrrr_�sr_z/LoginMessagesz	/machinesz/user)rQr7rqr8Zloggingrrc�pathlibr�typingrrZcockpit._vendor.systemd_ctypesrrrrr`r
Z	getLoggerr%rZObjectrr,r_ZEXPORTSrrrr�<module>s$
 D�