Mini Shell
import logging
from defence360agent.contracts.plugins import MessageSink
from defence360agent.subsys.web_server import NotRunningError
from im360.subsys.remoteip import ModRemoteIp
logger = logging.getLogger(__name__)
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
async def _check_remoteip(self):
remoteip = ModRemoteIp()
if not remoteip.is_supported():
logger.warning(
"Automatic mod_remoteip installation is not supported"
" on this server"
)
try:
if not await remoteip.is_installed():
await remoteip.install()
logger.info("mod_remoteip successfully installed")
except NotRunningError:
logger.warning(
"skipping installation due to apache server not running"
)