Server IP : 66.29.132.122 / Your IP : 3.148.107.34 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/proc/thread-self/root/proc/self/root/opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/simple_rpc/ |
Upload File : |
from collections import defaultdict from defence360agent.contracts.config import ConfigFile from defence360agent.rpc_tools.lookup import RootEndpoints from defence360agent.utils.config import update_config from defence360agent.rpc_tools import lookup from defence360agent.api.server.events import EventsAPI from defence360agent.feature_management.checkers import config_cleanup class AdvisorEndpoints(RootEndpoints): @lookup.bind("advisor", "apply") async def advisor_apply(self, advices): return await self._apply(advices) @lookup.bind("advisor", "apply-all") async def apply_all(self): advices = await EventsAPI.advices() return await self._apply(advices) async def _apply(self, advices): target_conf = defaultdict(dict) current_conf = ConfigFile().config_to_dict() for advise in advices: self._extract_conf_from_advise(advise, current_conf, target_conf) await update_config(self._sink, target_conf) return {"items": config_cleanup(ConfigFile().config_to_dict())} @staticmethod def _extract_conf_from_advise(advise, current_conf, target_conf): for section_key, section_value in advise["ignore"].items(): for value_key, ignored_values in section_value.items(): if current_conf[section_key][value_key] in ignored_values: return for section_key, section_value in advise["config_action"].items(): target_conf[section_key].update(section_value)