ok
Direktori : /opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/ |
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/remoteip_install.py |
import logging from pathlib import Path from defence360agent.contracts.plugins import MessageSink from defence360agent.subsys.persistent_state import PERSISTENT_STATE_DIR from defence360agent.utils import RecurringCheckStop, recurring_check from im360.subsys.remoteip import ModRemoteIp from im360.utils.check_lock import check_lock logger = logging.getLogger(__name__) _CHECK_PERIOD = 3600 LOCK_FILE = PERSISTENT_STATE_DIR / ".remote-ip-check.lock" class RemoteIpInstall(MessageSink): async def create_sink(self, loop): self._loop = loop self._task = self._loop.create_task(self._check_remoteip()) async def shutdown(self): self._task.cancel() await self._task @recurring_check( check_lock, check_period_first=True, check_lock_period=_CHECK_PERIOD, lock_file=LOCK_FILE, ) async def _check_remoteip(self): remoteip = ModRemoteIp() if not remoteip.is_supported(): logger.error( "Automatic mod_remoteip installation is not supported" " on this server" ) raise RecurringCheckStop() if not await remoteip.is_installed(): await remoteip.install() logger.info("mod_remoteip successfully installed") await remoteip.customize_logging()