| Server IP : 62.60.133.156 / Your IP : 216.73.217.51 Web Server : LiteSpeed System : Linux linux24.centraldnserver.com 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64 User : mimradmin ( 1166) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, exec, popen, proc_open MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/imunify360/venv/lib64/python3.11/site-packages/im360/ioc/ |
Upload File : |
import functools
from im360.model.cache_sources import (
CountryIPListCacheSource,
GlobalwhitelistCacheSource,
WhitelistCacheSourceFromCSF,
WhitelistCacheSourceFromSystemSettings,
)
from im360.subsys import csf
from im360.utils.tree_cache import TreeCache
from im360.utils.tree_cache.adapters import TreeCacheCollector
from im360.model.firewall import IPList
cached = functools.lru_cache(maxsize=1)
class Services:
"""Class for definition and lazy initialization of used services."""
@property
@cached
def primary_whitelist_cache(self):
""":rtype: TreeCache"""
db_cache = TreeCache(
source=CountryIPListCacheSource(IPList.WHITE),
full_sync_period=3600,
)
return TreeCacheCollector(db_cache, self.common_whitelist_cache)
@property
@cached
def csf_whitelist_cache(self):
""":rtype: TreeCache"""
csf_files = csf.CSF_IMUNIFY_IPLISTS_MAPPING["WHITE"]
csf_cache = TreeCache(source=WhitelistCacheSourceFromCSF(*csf_files))
return TreeCacheCollector(
csf_cache,
self.common_whitelist_cache,
)
@property
@cached
def common_whitelist_cache(self):
""":rtype: TreeCache"""
return TreeCacheCollector(
TreeCache(
self.white_ips_source_from_system_settings, float("inf")
),
self.global_whitelist_tree_cache,
)
@property
@cached
def white_ips_source_from_system_settings(self):
return WhitelistCacheSourceFromSystemSettings()
@property
@cached
def global_whitelist_cache_source(self):
return GlobalwhitelistCacheSource()
@property
@cached
def global_whitelist_tree_cache(self):
"""
:return TreeCache: entity which is featured with .reset()
"""
return TreeCache(self.global_whitelist_cache_source)
services = Services()