netbox-community / netbox-topology-views

A netbox plugin that draws topology views
Apache License 2.0
696 stars 61 forks source link

Improperly Configured #458

Closed nbr25 closed 4 months ago

nbr25 commented 4 months ago

NetBox version

v3.7.3

Topology Views version

v3.9.0

Steps to Reproduce

Followed the tutorial to install

Expected Behavior

plugin not available

Observed Behavior

Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: [2024-02-26 12:40:25 +0000] [2141957] [ERROR] Exception in worker process Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: Traceback (most recent call last): Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/netbox/netbox/settings.py", line 759, in Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: plugin_config: PluginConfig = plugin.config Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: AttributeError: module 'netbox_topology_views' has no attribute 'config' Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: During handling of the above exception, another exception occurred: Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: Traceback (most recent call last): Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: worker.init_process() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/workers/gthread.py", line 95, in init_process Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: super().init_process() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: self.load_wsgi() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: self.wsgi = self.app.wsgi() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: self.callable = self.load() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: return self.load_wsgiapp() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: return util.import_app(self.app_uri) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/util.py", line 371, in import_app Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: mod = importlib.import_module(module) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: return _bootstrap._gcd_import(name[level:], package, level) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 1030, in _gcd_import Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 1007, in _find_and_load Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 986, in _find_and_load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 680, in _load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 790, in exec_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 228, in _call_with_frames_removed Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: application = get_wsgi_application() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: django.setup(set_prefix=False) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/init.py", line 19, in setup Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/conf/init.py", line 102, in getattr Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: self._setup(name) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/conf/init.py", line 89, in _setup Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: self._wrapped = Settings(settings_module) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/conf/init.py", line 217, in init Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: mod = importlib.import_module(self.SETTINGS_MODULE) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: return _bootstrap._gcd_import(name[level:], package, level) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 1030, in _gcd_import Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 1007, in _find_and_load Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 986, in _find_and_load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 680, in _load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 790, in exec_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "", line 228, in _call_with_frames_removed Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: File "/opt/netbox/netbox/netbox/settings.py", line 761, in Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: raise ImproperlyConfigured( Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: django.core.exceptions.ImproperlyConfigured: Plugin netbox_topology_views does not provide a 'config' variable. This should be defined in the plugin's init.py file and point to thePluginConfig subclass. Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141957]: [2024-02-26 12:40:25 +0000] [2141957] [INFO] Worker exiting (pid: 2141957) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: [2024-02-26 12:40:25 +0000] [2141958] [ERROR] Exception in worker process Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: Traceback (most recent call last): Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/netbox/netbox/settings.py", line 759, in Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: plugin_config: PluginConfig = plugin.config Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: AttributeError: module 'netbox_topology_views' has no attribute 'config' Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: During handling of the above exception, another exception occurred: Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: Traceback (most recent call last): Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: worker.init_process() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/workers/gthread.py", line 95, in init_process Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: super().init_process() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: self.load_wsgi() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: self.wsgi = self.app.wsgi() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: self.callable = self.load() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: return self.load_wsgiapp() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: return util.import_app(self.app_uri) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/gunicorn/util.py", line 371, in import_app Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: mod = importlib.import_module(module) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: return _bootstrap._gcd_import(name[level:], package, level) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 1030, in _gcd_import Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 1007, in _find_and_load Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 986, in _find_and_load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 680, in _load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 790, in exec_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 228, in _call_with_frames_removed Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: application = get_wsgi_application() Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: django.setup(set_prefix=False) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/init.py", line 19, in setup Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/conf/init.py", line 102, in getattr Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: self._setup(name) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/conf/init.py", line 89, in _setup Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: self._wrapped = Settings(settings_module) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/venv/lib/python3.9/site-packages/django/conf/init.py", line 217, in init Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: mod = importlib.import_module(self.SETTINGS_MODULE) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: return _bootstrap._gcd_import(name[level:], package, level) Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 1030, in _gcd_import Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 1007, in _find_and_load Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 986, in _find_and_load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 680, in _load_unlocked Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 790, in exec_module Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "", line 228, in _call_with_frames_removed Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: File "/opt/netbox/netbox/netbox/settings.py", line 761, in Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: raise ImproperlyConfigured( Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: django.core.exceptions.ImproperlyConfigured: Plugin netbox_topology_views does not provide a 'config' variable. This should be defined in the plugin's init.py file and point to thePluginConfig subclass. Feb 26 12:40:25 th2-ipamc-01 gunicorn[2141958]: [2024-02-26 12:40:25 +0000] [2141958] [INFO] Worker exiting (pid: 2141958)

dreng commented 4 months ago

Followed the tutorial to install

Please also follow the tutorial to configure. The error message clearly says what's missing: the config.

Moved to discussions as this seems not to be a bug.