+from .datamodel.config_schema import KresConfig
+
__version__ = "0.1.0"
+
+__all__ = ["KresConfig"]
from pathlib import Path
-from knot_resolver_manager.manager.datamodel.globals import Context, set_global_validation_context
+from knot_resolver_manager.datamodel.globals import Context, set_global_validation_context
set_global_validation_context(Context(Path("."), False))
from urllib.parse import quote
from knot_resolver_manager.manager.constants import API_SOCK_ENV_VAR, CONFIG_FILE_ENV_VAR, DEFAULT_MANAGER_CONFIG_FILE
-from knot_resolver_manager.manager.datamodel.config_schema import DEFAULT_MANAGER_API_SOCK
-from knot_resolver_manager.manager.datamodel.types import IPAddressPort
+from knot_resolver_manager.datamodel.config_schema import DEFAULT_MANAGER_API_SOCK
+from knot_resolver_manager.datamodel.types import IPAddressPort
from knot_resolver_manager.utils.modeling import parsing
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
from knot_resolver_manager.utils.requests import SocketDesc
from typing import Any, Dict, List, Optional, Tuple, Type
from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheClearRPCSchema
+from knot_resolver_manager.datamodel.cache_schema import CacheClearRPCSchema
from knot_resolver_manager.utils.modeling.exceptions import AggregateDataValidationError, DataValidationError
from knot_resolver_manager.utils.modeling.parsing import DataFormat, parse_json
from knot_resolver_manager.utils.requests import request
from typing import List, Optional, Tuple, Type
from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel import KresConfig
-from knot_resolver_manager.manager.datamodel.globals import (
+from knot_resolver_manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel.globals import (
Context,
reset_global_validation_context,
set_global_validation_context,
from typing import List, Optional, Tuple, Type
from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
from knot_resolver_manager.utils.requests import request
from typing import List, Tuple, Type
from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel import KresConfig
-from knot_resolver_manager.manager.datamodel.globals import (
+from knot_resolver_manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel.globals import (
Context,
reset_global_validation_context,
set_global_validation_context,
import logging
from typing import List, Optional
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
from knot_resolver_manager.controller.interface import SubprocessController
logger = logging.getLogger(__name__)
from weakref import WeakValueDictionary
from knot_resolver_manager.manager.constants import kresd_config_file, policy_loader_config_file
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
from knot_resolver_manager.manager.exceptions import SubprocessControllerException
from knot_resolver_manager.controller.registered_workers import register_worker, unregister_worker
from knot_resolver_manager.utils.async_utils import writefile
from knot_resolver_manager.compat.asyncio import async_in_a_thread
from knot_resolver_manager.manager.constants import supervisord_config_file, supervisord_pid_file, supervisord_sock_file
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
from knot_resolver_manager.manager.exceptions import CancelStartupExecInsteadException, SubprocessControllerException
from knot_resolver_manager.controller.interface import (
KresID,
supervisord_subprocess_log_dir,
user_constants,
)
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
-from knot_resolver_manager.manager.datamodel.logging_schema import LogTargetEnum
+from knot_resolver_manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.logging_schema import LogTargetEnum
from knot_resolver_manager.controller.interface import KresID, SubprocessType
from knot_resolver_manager.utils.async_utils import read_resource, writefile
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.types import (
DNSRecordTypeEnum,
DomainName,
EscapedStr,
from typing_extensions import Literal
from knot_resolver_manager.manager.constants import MAX_WORKERS
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheSchema
-from knot_resolver_manager.manager.datamodel.dns64_schema import Dns64Schema
-from knot_resolver_manager.manager.datamodel.dnssec_schema import DnssecSchema
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardSchema
-from knot_resolver_manager.manager.datamodel.local_data_schema import LocalDataSchema, RPZSchema, RuleSchema
-from knot_resolver_manager.manager.datamodel.logging_schema import LoggingSchema
-from knot_resolver_manager.manager.datamodel.lua_schema import LuaSchema
-from knot_resolver_manager.manager.datamodel.management_schema import ManagementSchema
-from knot_resolver_manager.manager.datamodel.monitoring_schema import MonitoringSchema
-from knot_resolver_manager.manager.datamodel.network_schema import NetworkSchema
-from knot_resolver_manager.manager.datamodel.options_schema import OptionsSchema
-from knot_resolver_manager.manager.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
-from knot_resolver_manager.manager.datamodel.types import EscapedStr, IntPositive, WritableDir
-from knot_resolver_manager.manager.datamodel.view_schema import ViewSchema
-from knot_resolver_manager.manager.datamodel.webmgmt_schema import WebmgmtSchema
+from knot_resolver_manager.datamodel.cache_schema import CacheSchema
+from knot_resolver_manager.datamodel.dns64_schema import Dns64Schema
+from knot_resolver_manager.datamodel.dnssec_schema import DnssecSchema
+from knot_resolver_manager.datamodel.forward_schema import ForwardSchema
+from knot_resolver_manager.datamodel.local_data_schema import LocalDataSchema, RPZSchema, RuleSchema
+from knot_resolver_manager.datamodel.logging_schema import LoggingSchema
+from knot_resolver_manager.datamodel.lua_schema import LuaSchema
+from knot_resolver_manager.datamodel.management_schema import ManagementSchema
+from knot_resolver_manager.datamodel.monitoring_schema import MonitoringSchema
+from knot_resolver_manager.datamodel.network_schema import NetworkSchema
+from knot_resolver_manager.datamodel.options_schema import OptionsSchema
+from knot_resolver_manager.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
+from knot_resolver_manager.datamodel.types import EscapedStr, IntPositive, WritableDir
+from knot_resolver_manager.datamodel.view_schema import ViewSchema
+from knot_resolver_manager.datamodel.webmgmt_schema import WebmgmtSchema
from knot_resolver_manager.utils.modeling import ConfigSchema
from knot_resolver_manager.utils.modeling.base_schema import lazy_default
from knot_resolver_manager.utils.modeling.exceptions import AggregateDataValidationError, DataValidationError
from typing import List, Optional
-from knot_resolver_manager.manager.datamodel.types import IPv6Network, IPv6Network96, TimeUnit
+from knot_resolver_manager.datamodel.types import IPv6Network, IPv6Network96, TimeUnit
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing import List, Optional
-from knot_resolver_manager.manager.datamodel.types import DomainName, EscapedStr, IntNonNegative, ReadableFile, TimeUnit
+from knot_resolver_manager.datamodel.types import DomainName, EscapedStr, IntNonNegative, ReadableFile, TimeUnit
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
DomainName,
IPAddressOptionalPort,
ListOrItem,
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
DomainName,
EscapedStr,
IDPattern,
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.types import TimeUnit, WritableFilePath
+from knot_resolver_manager.datamodel.types import TimeUnit, WritableFilePath
from knot_resolver_manager.utils.modeling import ConfigSchema
from knot_resolver_manager.utils.modeling.base_schema import is_obj_type_valid
from typing import Optional
-from knot_resolver_manager.manager.datamodel.types import ReadableFile
+from knot_resolver_manager.datamodel.types import ReadableFile
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing import Optional
-from knot_resolver_manager.manager.datamodel.types import WritableFilePath, IPAddressPort
+from knot_resolver_manager.datamodel.types import WritableFilePath, IPAddressPort
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.types import DomainName, EscapedStr, IPAddress, PortNumber, TimeUnit
+from knot_resolver_manager.datamodel.types import DomainName, EscapedStr, IPAddress, PortNumber, TimeUnit
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
EscapedStr32B,
WritableFilePath,
Int0_512,
from typing import List, Optional, Union
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardServerSchema
-from knot_resolver_manager.manager.datamodel.network_schema import AddressRenumberingSchema
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.forward_schema import ForwardServerSchema
+from knot_resolver_manager.datamodel.network_schema import AddressRenumberingSchema
+from knot_resolver_manager.datamodel.types import (
DNSRecordTypeEnum,
IPAddressOptionalPort,
PolicyActionEnum,
from typing import List, Optional
-from knot_resolver_manager.manager.datamodel.types import PolicyActionEnum, PolicyFlagEnum, ReadableFile
+from knot_resolver_manager.datamodel.types import PolicyActionEnum, PolicyFlagEnum, ReadableFile
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.policy_schema import ActionSchema
+from knot_resolver_manager.datamodel.policy_schema import ActionSchema
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing import Dict, List, Optional
-from knot_resolver_manager.manager.datamodel.types import DomainName, IPAddress, ReadableFile, TimeUnit
+from knot_resolver_manager.datamodel.types import DomainName, IPAddress, ReadableFile, TimeUnit
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing import List, Optional, Union
-from knot_resolver_manager.manager.datamodel.types import DomainName, IPAddressOptionalPort, PolicyFlagEnum
+from knot_resolver_manager.datamodel.types import DomainName, IPAddressOptionalPort, PolicyFlagEnum
from knot_resolver_manager.utils.modeling import ConfigSchema
def _get_templates_dir() -> str:
- module = sys.modules["knot_resolver_manager.manager.datamodel"].__file__
+ module = sys.modules["knot_resolver_manager.datamodel"].__file__
if module:
templates_dir = os.path.join(os.path.dirname(module), "templates")
if os.path.isdir(templates_dir):
return templates_dir
raise NotADirectoryError(f"the templates dir '{templates_dir}' is not a directory or does not exist")
- raise OSError("package 'knot_resolver_manager.manager.datamodel' cannot be located or loaded")
+ raise OSError("package 'knot_resolver_manager.datamodel' cannot be located or loaded")
_TEMPLATES_DIR = _get_templates_dir()
from typing import Any, Dict, Tuple, Type, TypeVar
from knot_resolver_manager.manager.constants import kresd_group, kresd_user
-from knot_resolver_manager.manager.datamodel.globals import get_resolve_root, get_strict_validation
+from knot_resolver_manager.datamodel.globals import get_resolve_root, get_strict_validation
from knot_resolver_manager.utils.modeling.base_value_type import BaseValueType
import re
from typing import Any, Dict, Optional, Type, Union
-from knot_resolver_manager.manager.datamodel.types.base_types import (
+from knot_resolver_manager.datamodel.types.base_types import (
IntRangeBase,
PatternBase,
StrBase,
from typing_extensions import Literal
-from knot_resolver_manager.manager.datamodel.types import IDPattern, IPNetwork
+from knot_resolver_manager.datamodel.types import IDPattern, IPNetwork
from knot_resolver_manager.utils.modeling import ConfigSchema
from typing import Optional
-from knot_resolver_manager.manager.datamodel.types import WritableFilePath, InterfacePort, ReadableFile
+from knot_resolver_manager.datamodel.types import WritableFilePath, InterfacePort, ReadableFile
from knot_resolver_manager.utils.modeling import ConfigSchema
from asyncio import Lock
from typing import Any, Awaitable, Callable, List, Tuple
-from knot_resolver_manager.manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel import KresConfig
from knot_resolver_manager.manager.exceptions import KresManagerException
from knot_resolver_manager.utils.functional import Result
from knot_resolver_manager.utils.modeling.exceptions import DataParsingError
if TYPE_CHECKING:
from knot_resolver_manager.manager.config_store import ConfigStore
- from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+ from knot_resolver_manager.datamodel.config_schema import KresConfig
from knot_resolver_manager.controller.interface import KresID
STARTUP_LOG_LEVEL = logging.DEBUG
from knot_resolver_manager.utils.functional import Result
from knot_resolver_manager.utils.modeling.types import NoneType
-from .datamodel import KresConfig
+from knot_resolver_manager import KresConfig
logger = logging.getLogger(__name__)
from knot_resolver_manager.manager.config_store import ConfigStore, only_on_real_changes_update
from knot_resolver_manager.manager.constants import STARTUP_LOG_LEVEL
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
-from knot_resolver_manager.manager.datamodel.logging_schema import LogTargetEnum
+from knot_resolver_manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.logging_schema import LogTargetEnum
logger = logging.getLogger(__name__)
from knot_resolver_manager.compat import asyncio as asyncio_compat
from knot_resolver_manager.manager.config_store import ConfigStore
from knot_resolver_manager.manager.constants import DEFAULT_MANAGER_CONFIG_FILE, PID_FILE_NAME, init_user_constants
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheClearRPCSchema
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig, get_rundir_without_validation
-from knot_resolver_manager.manager.datamodel.globals import Context, set_global_validation_context
-from knot_resolver_manager.manager.datamodel.management_schema import ManagementSchema
+from knot_resolver_manager.datamodel.cache_schema import CacheClearRPCSchema
+from knot_resolver_manager.datamodel.config_schema import KresConfig, get_rundir_without_validation
+from knot_resolver_manager.datamodel.globals import Context, set_global_validation_context
+from knot_resolver_manager.datamodel.management_schema import ManagementSchema
from knot_resolver_manager.manager.exceptions import CancelStartupExecInsteadException, KresManagerException
from knot_resolver_manager.controller import get_best_controller_implementation
from knot_resolver_manager.controller.registered_workers import command_single_registered_worker
from knot_resolver_manager import compat
from knot_resolver_manager.manager.config_store import ConfigStore, only_on_real_changes_update
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
from knot_resolver_manager.controller.registered_workers import (
command_registered_workers,
get_registered_workers_kresids,
'knot_resolver_manager.controller',
'knot_resolver_manager.controller.supervisord',
'knot_resolver_manager.controller.supervisord.plugin',
+ 'knot_resolver_manager.datamodel',
+ 'knot_resolver_manager.datamodel.templates',
+ 'knot_resolver_manager.datamodel.types',
'knot_resolver_manager.manager',
- 'knot_resolver_manager.manager.datamodel',
- 'knot_resolver_manager.manager.datamodel.templates',
- 'knot_resolver_manager.manager.datamodel.types',
'knot_resolver_manager.utils',
'knot_resolver_manager.utils.modeling']
package_data = \
-{'': ['*'], 'knot_resolver_manager.manager.datamodel.templates': ['macros/*']}
+{'': ['*'], 'knot_resolver_manager.datamodel.templates': ['macros/*']}
install_requires = \
['aiohttp', 'jinja2', 'pyyaml', 'supervisor', 'typing-extensions']
from pathlib import Path
-from knot_resolver_manager.manager.datamodel.globals import Context, set_global_validation_context
+from knot_resolver_manager.datamodel.globals import Context, set_global_validation_context
set_global_validation_context(Context(Path("."), False))
import pytest
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheClearRPCSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.cache_schema import CacheClearRPCSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
@pytest.mark.parametrize(
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardServerSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.forward_schema import ForwardServerSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
def test_boolean():
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.types import IPAddressOptionalPort
+from knot_resolver_manager.datamodel.forward_schema import ForwardSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.types import IPAddressOptionalPort
def test_policy_rule_forward_add():
-from knot_resolver_manager.manager.datamodel.network_schema import ListenSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.network_schema import ListenSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
def test_network_listen():
from typing import List
-from knot_resolver_manager.manager.datamodel.network_schema import AddressRenumberingSchema
-from knot_resolver_manager.manager.datamodel.policy_schema import AnswerSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.types import PolicyFlagEnum
+from knot_resolver_manager.datamodel.network_schema import AddressRenumberingSchema
+from knot_resolver_manager.datamodel.policy_schema import AnswerSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.types import PolicyFlagEnum
def test_policy_add():
import pytest
from jinja2 import Template
-from knot_resolver_manager.manager.datamodel.types import EscapedStr
+from knot_resolver_manager.datamodel.types import EscapedStr
from knot_resolver_manager.utils.modeling import ConfigSchema
str_template = Template("'{{ string }}'")
import pytest
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.view_schema import ViewOptionsSchema, ViewSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.view_schema import ViewOptionsSchema, ViewSchema
def test_view_flags():
import json
from typing import Any, Dict, Type, cast
-from knot_resolver_manager.manager.datamodel import KresConfig
-from knot_resolver_manager.manager.datamodel.lua_schema import LuaSchema
+from knot_resolver_manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel.lua_schema import LuaSchema
from knot_resolver_manager.utils.modeling import BaseSchema
from knot_resolver_manager.utils.modeling.types import (
get_generic_type_argument,
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardSchema
+from knot_resolver_manager.datamodel.forward_schema import ForwardSchema
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.local_data_schema import RuleSchema
+from knot_resolver_manager.datamodel.local_data_schema import RuleSchema
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
from pytest import raises
-from knot_resolver_manager.manager.datamodel.lua_schema import LuaSchema
+from knot_resolver_manager.datamodel.lua_schema import LuaSchema
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
import pytest
-from knot_resolver_manager.manager.datamodel.management_schema import ManagementSchema
+from knot_resolver_manager.datamodel.management_schema import ManagementSchema
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.network_schema import ListenSchema, NetworkSchema
-from knot_resolver_manager.manager.datamodel.types import InterfaceOptionalPort, PortNumber
+from knot_resolver_manager.datamodel.network_schema import ListenSchema, NetworkSchema
+from knot_resolver_manager.datamodel.types import InterfaceOptionalPort, PortNumber
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.policy_schema import ActionSchema, PolicySchema
-from knot_resolver_manager.manager.datamodel.types import PolicyActionEnum
+from knot_resolver_manager.datamodel.policy_schema import ActionSchema, PolicySchema
+from knot_resolver_manager.datamodel.types import PolicyActionEnum
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
from knot_resolver_manager.utils.modeling.types import get_generic_type_arguments
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.rpz_schema import RPZSchema
+from knot_resolver_manager.datamodel.rpz_schema import RPZSchema
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.types.base_types import IntRangeBase, StringLengthBase
+from knot_resolver_manager.datamodel.types.base_types import IntRangeBase, StringLengthBase
from knot_resolver_manager.manager.exceptions import KresManagerException
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
Dir,
DomainName,
EscapedStr,
import pytest
from pytest import raises
-from knot_resolver_manager.manager.datamodel.types import ListOrItem
+from knot_resolver_manager.datamodel.types import ListOrItem
from knot_resolver_manager.utils.modeling import BaseSchema
from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
from knot_resolver_manager.utils.modeling.types import get_generic_type_wrapper_argument
import pytest
from knot_resolver_manager.manager.config_store import ConfigStore, only_on_real_changes_update
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
@pytest.mark.asyncio # type: ignore