Coverage for netbox_data_import/__init__.py: 100%
27 statements
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-09 20:50 +0000
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-09 20:50 +0000
1# SPDX-License-Identifier: Apache-2.0
2# Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com>
3from typing import Any
5from netbox.plugins import PluginConfig
7__version__ = "2.1.0"
10class NetBoxDataImportConfig(PluginConfig):
11 """NetBox plugin configuration for the Data Import plugin."""
13 name = "netbox_data_import"
14 verbose_name = "NetBox Data Import"
15 description = "NetBox plugin for importing data from external DCIM systems"
16 version = __version__
17 base_url = "data-import"
18 author = "Marcin Zieba"
19 author_email = "marcinpsk@gmail.com"
20 min_version = "4.6.0"
21 graphql_schema = "graphql.schema.schema"
23 default_settings: dict[str, Any] = {
24 # A deployment that names no allowlist reaches no origin, rather than every origin.
25 "inference_backend_origin_allowlist": [],
26 }
28 @classmethod
29 def validate(cls, user_config, netbox_version):
30 """Reject a malformed Inference Backend configuration before the application serves a request."""
31 super().validate(user_config, netbox_version)
33 from django.core.exceptions import ImproperlyConfigured
35 from .inference_settings import InvalidInferenceConfiguration, validate_plugin_settings
37 try:
38 validate_plugin_settings(user_config)
39 except InvalidInferenceConfiguration as exc:
40 raise ImproperlyConfigured(f"Plugin {cls.__module__} has an invalid configuration: {exc}") from exc
42 def ready(self):
43 """Import the jobs module, which NetBox does not load, so its @system_job registration runs."""
44 super().ready()
46 from . import jobs
49config = NetBoxDataImportConfig