HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3.9/site-packages/tracer/resources/__pycache__/applications.cpython-39.opt-1.pyc
a

�|
`"�@s�ddlmZddlmZddlmZmZddlmZddl	m
Z
ddlmZddl
mZddlmZdd	lmZdd
lZdd
lZGdd�de�ZGd
d�d�ZGdd�de�Zd
S)�)�absolute_import)�minidom)�DATA_DIR�USER_CONFIG_DIRS)�PathNotFound)�ApplicationsCollection)�_)�	Processes)�System)�SystemdDbusNc@s�eZdZedd�ege�Zddddddd	�Zed
ZdZ	e
dd
��Ze
dd��Ze
dd��Z
edd��Zedd��Ze
ifdd��Ze
dd��ZdS)�ApplicationscCs|dS)Nz/applications.xml�)�xr
r
�A/usr/lib/python3.9/site-packages/tracer/resources/applications.py�<lambda>#�zApplications.<lambda>�daemonZstaticZsession�applicationZerasedZ	undefined)�DAEMON�STATIC�SESSION�APPLICATIONZERASED�UNDEFrNcCsZtjst��tjD]*}|j|krd|vr.|n
t�|j�Sqt|tjddddd��S)N�renamerF)�name�type�helper�note�ignore)r�_apps�_load_definitionsr�findr�Application�TYPES)Zapp_name�appr
r
rr!0s

�zApplications.findcCstjst��tjS�N)rrr r
r
r
r�allBszApplications.allcCs`t�t_tjD]L}zt�|�WqtyX}z tj�|�t	vrD|�WYd}~qd}~00qdSr%)
rrr�DEFINITIONS�_loadr�os�path�dirnamer)�file�exr
r
rr Is
zApplications._load_definitionsc
Cs�z<t|d��}t�|���}Wd�n1s00YWntyVtd��Yn0|�d�D]�}|�|�|jD]n}|j	dkr�t
|j���}t
�|�|j	dkrv|�|�|jD],}t
|j���}t
|j���}	t
�||	�q�qvqbdS)N�rr�applicationsr$�group)�openrZparseString�read�IOErrorrZgetElementsByTagName�_remove_unwanted_children�
childNodesZnodeName�dictZ
attributes�itemsr�_append_application)
�clsr,�fZxmldocr/�child�attrsr$Z	app_attrsZgroup_attrsr
r
rr(Rs"0






zApplications._loadcCs&|jD]}|j|jkr|�|�qdSr%)r5ZnodeTypeZELEMENT_NODEZremoveChild)r9Znoder;r
r
rr4hs
z&Applications._remove_unwanted_childrencCs�t|�}|�|�|tjvr:tj�|�}tj|�|�nD|�dtj�|�dt�|��|�dd�|�dd�tj�|�dS)NrrrrF)	r"�updaterr�index�
setdefault�DEFAULT_TYPE�_helper�append)Z
default_attrsZspecific_attrsr�ir
r
rr8ns

z Applications._append_applicationcCsj|jtjdkr6t��dkr(d�|j�Sd�|j�Sn0|jtjdkrNtd�S|jtjdkrftd�SdS)	Nr�systemdzsystemctl restart {0}zservice {0} restartrz%You will have to reboot your computerrz'You will have to log out & log in again)rrr#r
�init_system�formatrr)r$r
r
rrA}szApplications._helper)�__name__�
__module__�__qualname__�maprrr'r#r@r�staticmethodr!r&r �classmethodr(r4r8rAr
r
r
rr!s0�




rc@s�eZdZdZeZdZdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zedd��Zedd��Zedd��Zedd ��Zed!d"��Zed#d$��Zed%d&��Zed'd(��Zed)d*��ZdZdS)+r"a�
	Represent the application defined in ``applications.xml``

	:param str name: The name of the application
	:param str type: See ``Applications.TYPES`` for possible values
	:param str helper: Describes how to restart the applications
	:param bool note: Provides additional informations to the ``helper``
	:param bool ignore: If ``True``, the application won't be printed
	:param Processes processes_factory: Class providing list of running processes

	NcCs
||_dSr%��_attributes)�selfZattributes_dictr
r
r�__init__�szApplication.__init__cCst|t�o|j|jkSr%)�
isinstancer"r�rO�otherr
r
r�__eq__�szApplication.__eq__cCs|�|�Sr%)rTrRr
r
r�__ne__�szApplication.__ne__cCs
t|j�Sr%)�hashr�rOr
r
r�__hash__�szApplication.__hash__cCs
|j|Sr%rM�rO�itemr
r
r�__getattr__�szApplication.__getattr__cCs
t|j�Sr%)�lenrNrWr
r
r�__len__�szApplication.__len__cCs
||jvSr%rMrYr
r
r�__contains__�szApplication.__contains__cCsd|jjd|jddS)N�<z: r�>)�	__class__rGrNrWr
r
r�__str__�szApplication.__str__cCs|��Sr%)rbrWr
r
r�__repr__�szApplication.__repr__cCs|j�||�dSr%)rNr?)rO�key�valuer
r
rr?�szApplication.setdefaultcCs t|t�r|j}|j�|�dSr%)rQr"rNr=)rO�valuesr
r
rr=�s
zApplication.updatecCs|jo|jdjS)Nr)�	instances�is_interpretedrWr
r
rrh�szApplication.is_interpretedcCs(t�dt|j��rdS|jo&|jdjS)Nzssh-.*-sessionTr)�re�search�strrrg�
is_sessionrWr
r
rrl�szApplication.is_sessioncCsH|jdtjdks|jdS|jr.tjdS|jr>tjdStjSdS)Nrrrr)rNrr#rl�
is_servicer@rWr
r
rr�s


zApplication.typecCs$t��dkr t��d�|j��SdS)NrDz{0}.service)r
rErZunit_path_from_idrFrrWr
r
rrm�szApplication.is_servicecCsT|jdr|jdnt�|�}t��dkrP|jtjdkrP|rP|�d�sPd|}|S)Nr�rootrzsudo )rNrrAr
�userrr#�
startswith)rOrr
r
rr�s
zApplication.helpercCs|js
dStt�d|j��S)Nz\{.*\}�r�boolrirjrWr
r
r�helper_contains_formating�sz%Application.helper_contains_formatingcCs|js
dStt�d|j��S)Nz\{NAME\}rqrWr
r
r�helper_contains_name�sz Application.helper_contains_namec	CsPg}|jrL|js|�|j�n.|jD]&}|�|jj|j|j|j|jd��q$|S)ab
		Return the list of helpers which describes how to restart the application.
		When no ``helper_format`` was described, empty list will be returned.
		If ``helper_format`` contains process specific arguments such a ``{PID}``, etc.
		list will contain helper for every application instance.
		In other cases, there will be just one helper in the list.
		)�NAMEZPNAMEZPIDZEXE)rrsrB�affected_instancesrFr�pidZexe)rO�helpers�processr
r
rrx�s	

�
zApplication.helperscs�j����fdd��S)zo
		Return collection of processes with same name as application.
		I.e. running instances of the application
		cs�jd|��|jfvS)Nr)rNr�	real_name)ryrWr
rrrz'Application.instances.<locals>.<lambda>)�processes_factoryr&ZfilteredrWr
rWrrg	s

�zApplication.instances)rGrHrI�__doc__r	r{rNrPrTrUrXr[r]r^rbrcr?r=�propertyrhrlrrmrrsrtrxrgrvr
r
r
rr"�sB









r"c@seZdZedd��ZdS)�AffectedApplicationcCs�t��dkrpt�}|jrp|�|jdj�rp|�|jdjd�sp|�|jdjd�}|rpt�	d|�rpt�
dd|�S|jr�|jdjS|j
dS)NrDrZPAMName�Idz
\.service$�r)r
rErrgZunit_path_from_pidrwZhas_service_property_from_pidZget_unit_property_from_pidrirj�subrhrzrN)rOZbusrr
r
rrszAffectedApplication.nameN)rGrHrIr}rr
r
r
rr~sr~)Z
__future__rZxml.domrZtracer.pathsrrZtracer.resources.exceptionsrZtracer.resources.collectionsrZtracer.resources.langrZtracer.resources.processesr	Ztracer.resources.systemr
Ztracer.resources.SystemdDbusrr)ri�objectrr"r~r
r
r
r�<module>sm