D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
cloudlinux
/
venv
/
lib64
/
python3.11
/
site-packages
/
clcagefslib
/
webisolation
/
Filename :
mount_types.py
back
Copy
#!/opt/cloudlinux/venv/bin/python3 -sbb # -*- coding: utf-8 -*- # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENCE.TXT # from dataclasses import dataclass from enum import Enum, auto class MountType(Enum): """Types of mount operations.""" # Bind mount source to target (source="tmpfs" for tmpfs mounts) BIND = auto() # @USER_MOUNTS directive USER_MOUNTS = auto() # Comment line for organization COMMENT = auto() @dataclass class MountEntry: """A single mount operation.""" type: MountType source: str target: str = "" options: tuple[str, ...] = () def render(self) -> str: """Render to jail.c mount syntax.""" opts = ",".join(self.options) if self.options else "" if self.type == MountType.BIND: parts = [self.source, self.target] if opts: parts.append(opts) return " ".join(parts) elif self.type == MountType.USER_MOUNTS: return f"@USER_MOUNTS {self.source}" elif self.type == MountType.COMMENT: return f"## {self.source}" raise ValueError(f"Unknown mount type: {self.type}")