import logging import os import shutil import subprocess from defence360agent.utils import antivirus_mode, run_coro logger = logging.getLogger(__name__) DISABLED_RULES_CONFIG_DIR = "/etc/apache2/conf.d/" DISABLED_RULES_CONFIG_FILENAME = "i360_modsec_disable.conf" @antivirus_mode.skip def migrate(migrator, database, fake=False, **kwargs): if fake: return from im360.subsys.panels.cpanel import cPanel try: if not cPanel.is_installed() or not run_coro( cPanel.installed_modsec() ): return hp = cPanel() path = os.path.join( hp._get_userdata_dir(), hp.GLOBAL_DISABLED_RULES_CONFIG_FILENAME ) if os.path.exists(path): os.makedirs(DISABLED_RULES_CONFIG_DIR, exist_ok=True) shutil.move( path, os.path.join( DISABLED_RULES_CONFIG_DIR, DISABLED_RULES_CONFIG_FILENAME ), ) subprocess.check_call(hp.REBUILD_HTTPDCONF_CMD) except Exception as e: logger.exception("Failed to delete old rules config with %s", e) def rollback(migrator, database, fake=False, **kwargs): pass