X7ROOT File Manager
Current Path:
/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/plugins
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
defence360agent
/
plugins
/
📁
..
📄
__init__.py
(0 B)
📁
__pycache__
📄
accumulate.py
(3.53 KB)
📄
analyst_cleanup_update.py
(5.53 KB)
📄
backup_info_sender.py
(3.06 KB)
📄
checkpoint.py
(1.23 KB)
📄
client.py
(9.7 KB)
📄
config_merger.py
(828 B)
📄
config_watcher.py
(1.89 KB)
📄
event_hook_executor.py
(777 B)
📄
event_monitor.py
(3.32 KB)
📄
event_monitor_message_processor.py
(6.33 KB)
📄
files_recurring_update.py
(1.09 KB)
📄
icontact_sender.py
(4.36 KB)
📄
idle_time_out.py
(1.21 KB)
📄
lve_utils_install.py
(1.58 KB)
📄
myimunify.py
(1.93 KB)
📄
ping.py
(536 B)
📄
send_domain_list.py
(2.79 KB)
📄
send_server_config.py
(10.37 KB)
Editing: config_watcher.py
import time from defence360agent.contracts import config from defence360agent.contracts.messages import MessageType from defence360agent.contracts.plugins import ( MessageSink, MessageSource, expect, ) from defence360agent.utils import recurring_check, Scope POLLING_INTERVAL = config.int_from_envvar("READ_CONFIG_POLLING_INTERVAL", 30) class ConfigWatcher(MessageSink, MessageSource): """Send ConfigUpdate message on [root's] config update. The config update is detected by polling config file's modification time. """ SCOPE = Scope.AV def __init__(self): self._config = config.ConfigFile() self._last_notify_time = 0 self._sink = None self._task = None async def create_sink(self, loop): "plugins.MessageSink method" @expect(MessageType.ConfigUpdate) async def on_config_update_message(self, message): # update the time, to avoid sending duplicate ConfigUpdate # messages after the "config update" command self._last_notify_time = message["timestamp"] async def create_source(self, loop, sink): self._sink = sink self._task = loop.create_task(self._check_config()) async def shutdown(self): if self._task is not None: t, self._task = self._task, None t.cancel() await t self._sink = None @recurring_check(POLLING_INTERVAL) async def _check_config(self): if config.any_layer_modified_since(self._last_notify_time): # notify about the update message = MessageType.ConfigUpdate( conf=self._config, timestamp=time.time() ) await self._sink.process_message(message) # update the time here, in case ConfigUpdate might stuck # in the queue for longer than the polling interval self._last_notify_time = message["timestamp"]
Upload File
Create Folder