D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
im360
/
plugins
/
Filename :
remoteip_install.py
back
Copy
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()