4:38
ˆ
ƒn_•I|¥‰ÓMdœv ©ƒ&íK<óo¬¿Ä
Index of /FSS-BCZ/root/sys/devices/system/memory/memory16/node0/memory4
Index of /FSS-BCZ/root/sys/devices/system/memory/memory16/node0/memory4
ˆÂÇ
ƒqá7Æ¿Ä ©
# Author: Fabian Lichtenegger-Lukas
# Author: Josef Tschiggerl
# This file is part of cloud-init. See LICENSE file for license information.
"""Wireguard"""
import logging
import re
from cloudinit import subp, util
from cloudinit.cloud import Cloud
from cloudinit.config import Config
from cloudinit.config.schema import MetaSchema
from cloudinit.settings import PER_INSTANCE
meta: MetaSchema = {
"id": "cc_wireguard",
"distros": ["ubuntu"],
"frequency": PER_INSTANCE,
"activate_by_schema_keys": ["wireguard"],
}
LOG = logging.getLogger(__name__)
REQUIRED_WG_INT_KEYS = frozenset(["name", "config_path", "content"])
WG_CONFIG_FILE_MODE = 0o600
NL = "\n"
MIN_KERNEL_VERSION = (5, 6)
def supplemental_schema_validation(wg_int: dict):
"""Validate user-provided wg:interfaces option values.
This function supplements flexible jsonschema validation with specific
value checks to aid in triage of invalid user-provided configuration.
@param wg_int: Dict of configuration value under 'wg:interfaces'.
@raises: ValueError describing invalid values provided.
"""
errors = []
missing = REQUIRED_WG_INT_KEYS.difference(set(wg_int.keys()))
if missing:
keys = ", ".join(sorted(missing))
errors.append(f"Missing required wg:interfaces keys: {keys}")
for key, value in sorted(wg_int.items()):
if key == "name" or k