| Linux server27.hostingraja.org 2.6.32-954.3.5.lve1.4.93.el6.x86_64 #1 SMP Wed Oct 4 17:04:29 UTC 2023 x86_64 Path : /opt/imunify360/venv/lib64/python3.11/site-packages/im360/subsys/panels/directadmin/ |
| Current File : //opt/imunify360/venv/lib64/python3.11/site-packages/im360/subsys/panels/directadmin/custombuild.py |
import logging
import functools
import os
from defence360agent.subsys.panels.base import PanelException
from defence360agent.subsys.panels.directadmin.config import ConfigOptions
from defence360agent.utils import check_run, CheckRunError
logger = logging.getLogger(__name__)
BASEDIR = "/usr/local/directadmin/custombuild"
BUILD = os.path.join(BASEDIR, "build")
class CustomBuildOptions(ConfigOptions):
DEFAULT_FILENAME = os.path.join(BASEDIR, "options.conf")
async def build(option):
return await check_run([BUILD, option], cwd=BASEDIR)
def custombuild2_only(fun):
@functools.wraps(fun)
async def wrapper(*args, **kwargs):
try:
out = await build("version")
except (CheckRunError, FileNotFoundError, PermissionError):
pass
else:
if out.startswith(b"2."):
return await fun(*args, **kwargs)
raise PanelException(
"{} is only supported on installations "
"with Custombuild 2.0".format(fun.__name__)
)
return wrapper