qj | d Z ddlZddlZddlmZ ddlmZmZ ej e Z G d dej ZdS )zBase service manager plugin. Provides the shared start/stop/enable/disable logic that product-specific service managers (imav, im360) inherit from. N)utils)messagespluginsc e Zd ZdZd Zd Z ej ej j dej j fd Z ej d d ZdS ) BaseServiceManageru Base service manager: start/stop services based on config changes. Subclasses populate ``_services`` (list of async check callables) and ``_units`` (dict of name → unitctl) in their ``__init__``. c R t j | _ g | _ i | _ d S N)asyncioLock_lock _services_units)selfs \/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/plugins/service_manager.py__init__zBaseServiceManager.__init__ s! \^^ c > K | j D ]} | d {V d S r )r )r services r !_ensure_consistent_services_statez4BaseServiceManager._ensure_consistent_services_state s: ~ G'))OOOOOOOO r message_ignoredc K | j 4 d {V | d {V d d d d {V d S # 1 d {V swxY w Y d S r )r r )r r s r on_config_updatez#BaseServiceManager.on_config_update s : ; ; ; ; ; ; ; ;88::::::::: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s > AAFc K | d {V }||ur|rTt d| | d d {V t d| d S t d| | d d {V t d| d S |r9|r9| d {V t d| d S d S d S )NzA%s is enabled in the config but it is not running. Enabling it...T)nowz Enabled %szB%s is not enabled in the config but it is running. Disabling it...zDisabled %sz#Reloading %s after config update...) is_activeloggerinfoenabledisablereload)r unitctlservice_nameshould_be_runningr is_runnings r _ensure_service_statusz)BaseServiceManager._ensure_service_status' si #,,........ ... 9/ nnn.........L,777770 oo$o/////////M<88888 f nn&&&&&&&&&9< r N)F)__name__ __module____qualname____doc__r r r expectr MessageTypeConfigUpdater r log_error_and_ignorer% r r r r s W^H(566;'3@; ; ; 76; U!!?D "! r r ) r) r loggingdefence360agentr defence360agent.contractsr r getLoggerr&