Code Monkey home page Code Monkey logo

nextbox-ui-plugin's Introduction

Hi there šŸ‘‹

To date, Iā€™m a NetDevOps Technical Leader for a financial company and a #CiscoChampion 2021-2022.
I have been working in enterprise IT since 2011. Over time, I built a solid expertise in multiple technical domains:

  • šŸ¤– NetDevOps
  • šŸ›  Automation
  • šŸ•ø Networking
  • ā˜Žļø UC&Collaboration

while also focusing on soft skills to get thing done with the teams according to business needs.
In free time I enjoy traveling, surfing, learning something new and sharing my knowledge.

nextbox-ui-plugin's People

Contributors

albanbedel avatar dreng avatar idebugall avatar maxrink avatar renatoalmeidaoliveira avatar ryanmerolle avatar steffann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nextbox-ui-plugin's Issues

Error: "<class 'ValueError'>"

Getting this error after installing it and trying to view site topology. Any thoughts?

<class 'ValueError'>
not enough values to unpack (expected 2, got 1)

Nextbox_ui_modul 0.82 Modul not found Netbox 2.11.6

Hello,

i have an issues with the plugin.

The Modul is install in venv and written in configuration.py and requirements.txt, but the modul does not found.

/var/log/supervisor/netbox-stderr......log

[2021-07-07 10:08:15 +0000] [14706] [INFO] Starting gunicorn 20.1.0
[2021-07-07 10:08:15 +0000] [14706] [INFO] Listening at: http://127.0.0.1:8001 (14706)
[2021-07-07 10:08:15 +0000] [14706] [INFO] Using worker: sync
[2021-07-07 10:08:15 +0000] [14708] [INFO] Booting worker with pid: 14708
[2021-07-07 10:08:15 +0000] [14709] [INFO] Booting worker with pid: 14709
[2021-07-07 10:08:15 +0000] [14710] [INFO] Booting worker with pid: 14710
[2021-07-07 10:08:15 +0000] [14708] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 601, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:15 +0000] [14708] [INFO] Worker exiting (pid: 14708)
[2021-07-07 10:08:15 +0000] [14709] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:15 +0000] [14709] [INFO] Worker exiting (pid: 14709)
[2021-07-07 10:08:15 +0000] [14710] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:15 +0000] [14710] [INFO] Worker exiting (pid: 14710)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/init.py", line 5, in
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 32, in
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 12, in
import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket
File "/usr/lib/python3/dist-packages/requests_unixsocket/init.py", line 1, in
import requests
File "/usr/lib/python3/dist-packages/requests/init.py", line 43, in
import urllib3
File "/usr/lib/python3/dist-packages/urllib3/init.py", line 7, in
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 29, in
from .connection import (
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 41, in
from .util.ssl_ import (
File "/usr/lib/python3/dist-packages/urllib3/util/init.py", line 7, in
from .ssl_ import (
File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 10, in
from .url import IPV4_RE, BRACELESS_IPV6_ADDRZ_RE
File "/usr/lib/python3/dist-packages/urllib3/util/url.py", line 19, in
URI_RE = re.compile(
File "/usr/lib/python3.8/re.py", line 252, in compile
return _compile(pattern, flags)
File "/usr/lib/python3.8/re.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib/python3.8/sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib/python3.8/sre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 834, in _parse
p = _parse_sub(source, state, sub_verbose, nested + 1)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 495, in _parse
subpattern = SubPattern(state)
File "/usr/lib/python3.8/sre_parse.py", line 112, in init
self.state = state
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

Original exception was:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
[2021-07-07 10:08:17 +0000] [14711] [INFO] Starting gunicorn 20.1.0
[2021-07-07 10:08:17 +0000] [14711] [INFO] Listening at: http://127.0.0.1:8001 (14711)
[2021-07-07 10:08:17 +0000] [14711] [INFO] Using worker: sync
[2021-07-07 10:08:17 +0000] [14713] [INFO] Booting worker with pid: 14713
[2021-07-07 10:08:17 +0000] [14714] [INFO] Booting worker with pid: 14714
[2021-07-07 10:08:17 +0000] [14713] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:17 +0000] [14713] [INFO] Worker exiting (pid: 14713)
[2021-07-07 10:08:17 +0000] [14715] [INFO] Booting worker with pid: 14715
[2021-07-07 10:08:17 +0000] [14714] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:17 +0000] [14714] [INFO] Worker exiting (pid: 14714)
[2021-07-07 10:08:17 +0000] [14715] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:17 +0000] [14715] [INFO] Worker exiting (pid: 14715)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/init.py", line 5, in
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 32, in
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 12, in
import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket
File "/usr/lib/python3/dist-packages/requests_unixsocket/init.py", line 1, in
import requests
File "/usr/lib/python3/dist-packages/requests/init.py", line 95, in
from urllib3.contrib import pyopenssl
File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 46, in
import OpenSSL.SSL
File "/usr/lib/python3/dist-packages/OpenSSL/init.py", line 8, in
from OpenSSL import crypto, SSL
File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 16, in
from OpenSSL._util import (
File "/usr/lib/python3/dist-packages/OpenSSL/_util.py", line 6, in
from cryptography.hazmat.bindings.openssl.binding import Binding
File "/usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 195, in
Binding.init_static_locks()
File "/usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 139, in init_static_locks
cls._ensure_ffi_initialized()
File "/usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 134, in _ensure_ffi_initialized
cls._register_osrandom_engine()
File "/usr/lib/python3/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 119, in _register_osrandom_engine
result = cls.lib.Cryptography_add_osrandom_engine()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

Original exception was:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
[2021-07-07 10:08:19 +0000] [14716] [INFO] Starting gunicorn 20.1.0
[2021-07-07 10:08:19 +0000] [14716] [INFO] Listening at: http://127.0.0.1:8001 (14716)
[2021-07-07 10:08:19 +0000] [14716] [INFO] Using worker: sync
[2021-07-07 10:08:19 +0000] [14718] [INFO] Booting worker with pid: 14718
[2021-07-07 10:08:19 +0000] [14719] [INFO] Booting worker with pid: 14719
[2021-07-07 10:08:19 +0000] [14720] [INFO] Booting worker with pid: 14720
[2021-07-07 10:08:19 +0000] [14718] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:19 +0000] [14718] [INFO] Worker exiting (pid: 14718)
[2021-07-07 10:08:19 +0000] [14719] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:19 +0000] [14719] [INFO] Worker exiting (pid: 14719)
[2021-07-07 10:08:19 +0000] [14720] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:19 +0000] [14720] [INFO] Worker exiting (pid: 14720)
[2021-07-07 10:08:19 +0000] [14716] [WARNING] Worker with pid 14719 was terminated due to signal 15
[2021-07-07 10:08:19 +0000] [14716] [WARNING] Worker with pid 14720 was terminated due to signal 15
[2021-07-07 10:08:20 +0000] [14716] [INFO] Shutting down: Master
[2021-07-07 10:08:20 +0000] [14716] [INFO] Reason: Worker failed to boot.
[2021-07-07 10:08:23 +0000] [14722] [INFO] Starting gunicorn 20.1.0
[2021-07-07 10:08:23 +0000] [14722] [INFO] Listening at: http://127.0.0.1:8001 (14722)
[2021-07-07 10:08:23 +0000] [14722] [INFO] Using worker: sync
[2021-07-07 10:08:23 +0000] [14724] [INFO] Booting worker with pid: 14724
[2021-07-07 10:08:23 +0000] [14725] [INFO] Booting worker with pid: 14725
[2021-07-07 10:08:23 +0000] [14724] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:23 +0000] [14724] [INFO] Worker exiting (pid: 14724)
[2021-07-07 10:08:23 +0000] [14726] [INFO] Booting worker with pid: 14726
[2021-07-07 10:08:23 +0000] [14725] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:23 +0000] [14725] [INFO] Worker exiting (pid: 14725)
[2021-07-07 10:08:23 +0000] [14726] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/opt/netbox/netbox/netbox/settings.py", line 600, in
plugin = importlib.import_module(plugin_name)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/wsgi.py", line 7, in
application = get_wsgi_application()
File "/usr/local/lib/python3.8/dist-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/usr/local/lib/python3.8/dist-packages/django/init.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 82, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 170, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/opt/netbox/netbox/netbox/settings.py", line 603, in
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.
[2021-07-07 10:08:23 +0000] [14726] [INFO] Worker exiting (pid: 14726)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/init.py", line 5, in
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 32, in
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 12, in
import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket
File "/usr/lib/python3/dist-packages/requests_unixsocket/init.py", line 1, in
import requests
File "/usr/lib/python3/dist-packages/requests/init.py", line 43, in
import urllib3
File "/usr/lib/python3/dist-packages/urllib3/init.py", line 7, in
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 29, in
from .connection import (
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 41, in
from .util.ssl_ import (
File "/usr/lib/python3/dist-packages/urllib3/util/init.py", line 7, in
from .ssl_ import (
File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 10, in
from .url import IPV4_RE, BRACELESS_IPV6_ADDRZ_RE
File "/usr/lib/python3/dist-packages/urllib3/util/url.py", line 19, in
URI_RE = re.compile(
File "/usr/lib/python3.8/re.py", line 252, in compile
return _compile(pattern, flags)
File "/usr/lib/python3.8/re.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib/python3.8/sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib/python3.8/sre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 834, in _parse
p = _parse_sub(source, state, sub_verbose, nested + 1)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 834, in _parse
p = _parse_sub(source, state, sub_verbose, nested + 1)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 493, in _parse
def _parse(source, state, verbose, nested, first=False):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

Original exception was:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/gunicorn", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 231, in run
super().run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

ls -al /opt/netbox/venv/lib/py.../sit...

total 4420
drwxr-xr-x 174 www-data www-data 12288 Jul 7 10:07 .
drwxr-xr-x 3 www-data www-data 4096 Jul 4 07:11 ..
drwxr-xr-x 13 www-data www-data 4096 Jul 5 14:29 Crypto
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 Django-3.2.4.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 Jinja2-3.0.1.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 Markdown-3.3.4.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 MarkupSafe-2.0.1.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:29 PIL
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 Pillow-8.2.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 Pillow.libs
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 PyNaCl-1.4.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 PyYAML-5.4.1.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:26 pycache
-rwxr-xr-x 1 www-data www-data 893296 Jul 5 14:06 _cffi_backend.cpython-38-x86_64-linux-gnu.so
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:26 _distutils_hack
-rw-r--r-- 1 www-data www-data 23 Jul 5 14:06 _pyrsistent_version.py
-rwxr-xr-x 1 www-data www-data 2333275 Jul 5 14:06 _ruamel_yaml.cpython-38-x86_64-linux-gnu.so
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:29 _yaml
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 asgiref
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 asgiref-3.4.1.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 attr
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 attrs-21.2.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 bcrypt
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 bcrypt-3.2.0.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:30 cacheops
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 certifi
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 certifi-2021.5.30.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 cffi
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 cffi-1.14.5.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 cffi.libs
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:06 chardet
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 chardet-4.0.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 ciscoconfparse
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 ciscoconfparse-1.5.30.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 click
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 click-8.0.1.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 colorama
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 colorama-0.4.4.dist-info
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:06 coreapi
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 coreapi-2.3.3.dist-info
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:06 coreschema
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 coreschema-0.0.4.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:30 corsheaders
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:06 cryptography
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 cryptography-3.4.7.dist-info
drwxr-xr-x 9 www-data www-data 4096 Jul 5 14:30 debug_toolbar
-rw-r--r-- 1 www-data www-data 152 Jul 5 14:26 distutils-precedence.pth
drwxr-xr-x 19 www-data www-data 4096 Jul 5 14:29 django
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_cacheops-6.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_cors_headers-3.7.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_debug_toolbar-3.2.1.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_filter-2.4.0.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:30 django_filters
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 django_js_asset-1.2.2.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_mptt-0.12.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:30 django_pglocks
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_pglocks-1.0.4.dist-info
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:30 django_prometheus
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_prometheus-2.1.0.dist-info
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:30 django_rq
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_rq-2.4.1.dist-info
drwxr-xr-x 9 www-data www-data 4096 Jul 5 14:30 django_tables2
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_tables2-2.4.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_taggit-1.4.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:30 django_timezone_field-4.1.2.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 djangorestframework-3.12.4.dist-info
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 dns
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 dnspython-2.1.0.dist-info
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:29 drf_yasg
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 drf_yasg-1.20.0.dist-info
-rw-r--r-- 1 root root 28 Jul 7 10:07 easy-install.pth
drwxr-xr-x 3 root root 4096 Jul 7 09:55 extra
drwxr-xr-x 2 root root 4096 Jul 7 09:55 extra-0.0.0.20200726.dist-info
drwxr-xr-x 4 root root 4096 Jul 7 10:01 extras
drwxr-xr-x 2 root root 4096 Jul 7 10:01 extras-1.0.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 funcy
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 funcy-1.16.dist-info
drwxr-xr-x 10 www-data www-data 4096 Jul 5 14:06 future
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 future-0.18.2.egg-info
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:29 gunicorn
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 gunicorn-20.1.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 idna
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 idna-2.10.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 inflection
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 inflection-0.5.1.dist-info
-rw-r--r-- 1 www-data www-data 11437 Jul 5 14:06 inflection.py
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 itypes-1.2.0.dist-info
-rw-r--r-- 1 www-data www-data 5655 Jul 5 14:06 itypes.py
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:29 jinja2
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 jnpr
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 js_asset
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:06 jsonschema
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 jsonschema-3.2.0.dist-info
-rw-r--r-- 1 www-data www-data 529 Jul 5 14:06 junos_eznc-2.6.1-py3.7-nspkg.pth
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 junos_eznc-2.6.1.dist-info
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 libfuturize
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 libpasteurize
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:06 lxml
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 lxml-4.6.3.dist-info
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:29 markdown
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 markupsafe
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:30 mptt
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:06 nacl
drwxr-xr-x 13 www-data www-data 4096 Jul 5 14:29 napalm
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 napalm-3.3.1.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:29 ncclient
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 ncclient-0.6.9-py3.8.egg-info
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:29 netaddr
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 netaddr-0.8.0.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 6 15:22 netbox_topology_views
drwxr-xr-x 2 www-data www-data 4096 Jul 6 15:22 netbox_topology_views-0.5.3.dist-info
drwxr-xr-x 64 www-data www-data 4096 Jul 5 14:06 netmiko
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 netmiko-3.4.0.dist-info
-rw-r--r-- 1 root root 29 Jul 7 10:07 nextbox-ui-plugin.egg-link
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 ntc_templates
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 ntc_templates-2.1.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 packaging
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 packaging-21.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 paramiko
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 paramiko-2.7.2.dist-info
drwxr-xr-x 9 www-data www-data 4096 Jul 5 14:06 passlib
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 passlib-1.7.4.dist-info
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:06 past
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:26 pip
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:26 pip-21.1.3.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:26 pkg_resources
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:04 pkg_resources-0.0.0.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:06 prometheus_client
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 prometheus_client-0.11.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:29 psycopg2
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 psycopg2_binary-2.9.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 psycopg2_binary.libs
-rwxr-xr-x 1 www-data www-data 187406 Jul 5 14:06 pvectorc.cpython-38-x86_64-linux-gnu.so
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 pycparser
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 pycparser-2.20.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 pycryptodome-3.10.1.dist-info
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 pyeapi
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 pyeapi-0.8.4.egg-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 pyparsing-2.4.7.dist-info
-rw-r--r-- 1 www-data www-data 273365 Jul 5 14:06 pyparsing.py
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 pyrsistent
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 pyrsistent-0.18.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 pyserial-3.5.dist-info
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 pytz
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 pytz-2021.1.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 redis
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 redis-3.5.3.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 requests
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 requests-2.25.1.dist-info
drwxr-xr-x 11 www-data www-data 4096 Jul 5 14:29 rest_framework
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:06 rq
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 rq-1.9.0.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 ruamel
-rw-r--r-- 1 www-data www-data 539 Jul 5 14:06 ruamel.yaml-0.17.10-py3.9-nspkg.pth
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 ruamel.yaml-0.17.10.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 ruamel.yaml.clib-0.2.6.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 scp-0.13.5.dist-info
-rw-r--r-- 1 www-data www-data 20489 Jul 5 14:06 scp.py
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:06 serial
drwxr-xr-x 7 www-data www-data 4096 Jul 5 14:26 setuptools
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:26 setuptools-57.1.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 six-1.16.0.dist-info
-rw-r--r-- 1 www-data www-data 34549 Jul 5 14:06 six.py
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:06 sqlparse
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 sqlparse-0.4.1.dist-info
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:29 svgwrite
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 svgwrite-1.4.1.dist-info
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 swagger_spec_validator
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 swagger_spec_validator-2.7.3.dist-info
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:29 tablib
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 tablib-3.0.0.dist-info
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:30 taggit
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 tenacity
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 tenacity-7.0.0.dist-info
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 testdata
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 textfsm
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 textfsm-1.1.2.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:29 timezone_field
drwxr-xr-x 4 www-data www-data 4096 Jul 5 14:06 transitions
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 transitions-0.8.8.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:06 uritemplate
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 uritemplate-3.0.1.dist-info
drwxr-xr-x 6 www-data www-data 4096 Jul 5 14:06 urllib3
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 urllib3-1.26.6.dist-info
drwxr-xr-x 5 www-data www-data 4096 Jul 5 14:29 wheel
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:29 wheel-0.36.2.dist-info
drwxr-xr-x 3 www-data www-data 4096 Jul 5 14:29 yaml
drwxr-xr-x 2 www-data www-data 4096 Jul 5 14:06 yamlordereddictloader-0.4.0.egg-info
-rw-r--r-- 1 www-data www-data 2787 Aug 3 2017 yamlordereddictloader.py

/opt/netbox

root@netbox:/opt/netbox# ll
total 140
drwxr-xr-x 13 www-data www-data 4096 Jul 7 11:43 ./
drwxr-xr-x 3 root root 4096 Jul 2 17:36 ../
drwxr-xr-x 8 www-data www-data 4096 Jul 2 17:36 .git/
-rw-r--r-- 1 www-data www-data 155 Jul 2 17:36 .gitattributes
drwxr-xr-x 4 www-data www-data 4096 Jul 2 17:36 .github/
-rw-r--r-- 1 www-data www-data 310 Jul 2 17:36 .gitignore
-rw-r--r-- 1 www-data www-data 117 Jul 2 17:36 CHANGELOG.md
-rw-r--r-- 1 www-data www-data 8995 Jul 2 17:36 CONTRIBUTING.md
-rw-r--r-- 1 root root 1068 Nov 25 2020 LICENSE
-rw-r--r-- 1 www-data www-data 10174 Jul 2 17:36 LICENSE.txt
-rw-r--r-- 1 www-data www-data 72 Jul 2 17:36 NOTICE
drwxr-xr-x 6 root root 4096 Jul 6 13:47 Netbox-Device-Type-Library-Import/
drwxr-xr-x 2 root root 4096 Jul 6 13:26 Netbox-device-type-import/
-rw-r--r-- 1 root root 6854 Nov 25 2020 README.md
drwxr-xr-x 2 www-data www-data 4096 Jul 2 20:24 pycache/
-rw-r--r-- 1 www-data www-data 2535 Jul 2 17:36 base_requirements.txt
drwxr-xr-x 2 www-data www-data 4096 Jul 2 17:36 contrib/
drwxr-xr-x 13 www-data www-data 4096 Jul 2 17:36 docs/
-rw-r--r-- 1 www-data www-data 124 Jul 2 20:18 gunicorn_config.py
-rw-r--r-- 1 root root 18 Jul 7 08:44 local_requirements.txt
-rw-r--r-- 1 www-data www-data 4447 Jul 2 17:36 mkdocs.yml
drwxr-xr-x 18 www-data www-data 4096 Jul 2 20:17 netbox/
drwxr-xr-x 6 root root 4096 Jul 6 08:42 netbox-scanner/
-rw-r--r-- 1 root root 656 Jul 5 08:58 netbox-scanner.conf
-rw-r--r-- 1 root root 3037 Nov 25 2020 netbox-scanner.py
-rw-r--r-- 1 www-data www-data 517 Jul 7 11:43 requirements.txt
drwxr-xr-x 3 www-data www-data 4096 Jul 2 17:36 scripts/
-rwxr-xr-x 1 www-data www-data 3607 Jul 2 17:36 upgrade.sh*
drwxr-xr-x 6 www-data www-data 4096 Jul 4 07:11 venv/

/opt/netbox/netbox/netbox/configuration.py
Auszug

Determine how many objects to display per page within a list. (Default: 50)
PAGINATE_COUNT = 50

Enable installed plugins. Add the name of each plugin to the list.

PLUGINS = [
'netbox_topology_views',
'nextbox_ui_plugin',
]

Plugins configuration settings. These settings are used by various plugins that the user may have installed.

Each key in the dictionary is the name of an installed plugin and its value is a dictionary of settings.

PLUGINS_CONFIG = {

'my_plugin': {

'foo': 'bar',

'buzz': 'bazz'

}

}

When determining the primary IP address for a device, IPv6 is preferred over IPv4 by default. Set this to True to

prefer IPv4 instead.

PREFER_IPV4 = False

Why does not load the modul, i had follow the install manual, but it's not working.

Can help there?

So long...

base directory for PLUGINS

Hi, we have recently insatlled netbox 2.8.4, in that version plugins directory moved to "project-static", so after installation of nextbox-ui-plugin we have copied all content from "static" directory to "project-static" and it works with some issues (not showing some icons, "hide passive" didnt work, broken font), so I think problem that some files had not correct link to directories

[Feature request] Map icons to device roles

Devices have alot of types like router-x-y-ac, router-x-y-dc and etc etc maping all of them
not very comfortable because of huge list to map them all and may need frequent additions,
device roles on the other hand more stable list and lesser size like core-router, edge-router for all routers, so mapping to device roles may simplify overall config file and its housekeeping

Icons

Hi Igor,

I have a problem with my icons, it appears with icons unknown. In below, I leave the code I have of the file configuration.py.

`# Plugins configuration settings. These settings are used by various plugins that the user may have installed.
PLUGINS_CONFIG = {
    'nextbox_ui_plugin': {
        'layers_sort_order': (
#            ADD YOUR SETTINGS HERE
#            layer_sort_order is a tuple
             'Firewall',
             'Switch Core',
             'Switch Access',
             'VoIP Phone',
             'UPS',
        ),
#        'icon_model_map': {
#            ADD YOUR SETTINGS HERE
#            icon_model_map is a dict
#             'PA220': 'firewall',
#             'PA820': 'firewall',
#             'PA850': 'firewall',
#        },
#        'icon_role_map': {
#            ADD YOUR SETTINGS HERE
#            icon_role_map is a dict
#             'Switch Access': 'switch',
#             'Swicth Core': 'switch',
#             'Firewall': 'firewall',
#             'Wireless Access-Point': 'accesspoint',
#        }
       'undisplayed_device_role_slugs': (
#            ADD YOUR SETTINGS HERE
#            undisplayed_device_role_slugs value is a list or a tuple
#            Listed device role slugs are hidden on initial view load,
#            you may then hide/display any layer with a control button.
             'Organizador Escova',
        ),
        'DISPLAY_PASSIVE_DEVICES': False,
        'DISPLAY_LOGICAL_MULTICABLE_LINKS': True,
        'DISPLAY_UNCONNECTED': False,
        'INITIAL_LAYOUT': 'auto'
    }
}` 

I hope that you can help me.
Thanks.

Custom SLUGs not sorting in topo view

Hello,

I have been trying for hours to get the custom sorting working on my installation. It seems that the Initial Layout is working as the vertical layout does appear to work in the plugin. I have custom device roles and slugs assigned to some machines and it seems that even if I add to my configuration.py or the views.py file in the venv root folders, it still will not sort the devices correctly.

Current issue:
image

The firewalls and backbone switches are working because they have been defined as CORE, DISTRIBUTION and ACCESS. Only if I tag my servers as one of those roles will I have them sorted correctly.

Here's what my servers look like tagged as Access devices:
image

Here is the configuration.py after I commented out all of the sort slugs:
image

Any pointers to get custom slugs working would be appreciated.

Feature Request: Filter by Location

The upcoming netbox release (v2.11) renames "Rack Groups" to "Locations". It will be possible to nest Locations (as you can with current Rack Groups). Furthermore it will be possible to assign non-racked devices to Locations (which is not possible with current Rack Groups in v2.10).

Side note: Locations are useful to organize sections within a site. E.g. it can be a room, a floor, a department containing nested rooms, a corridor, a production hall with sections nested underneath that Location, etc.

2021-04-08 10_40_21-Window

I'd suggest to add Locations to the filter pane in order to show only one or some Locations. Additionally a checkbox will be very handy in order to be able to show a Location and all of its nested children.

2021-04-08 10_45_42-Window

Javascript fails to load in Netbox 2.9.3

Javascript fails to load in Netbox 2.9.3 which causes unusual display issues. To fix, I had to update the jquery in the template to version 3.5.1-

site_topology.html

<script src="{% static 'jquery/jquery-3.5.1.min.js' %}"></script>

No Module named Extras -- 2.10.4

Trying to import this as a plugin in Netbox 2.10.4 and 2.10.3 - same error across both:

Installed through pip3 - did the same thing so I uninstalled and built from source as per the instructions

  • Clone
  • pip3 install .
  • Added to plugins configuration.py file
  • Receive the following error
Jan 31 21:42:24 NETBOX  gunicorn[76450]:       raise ImproperlyConfigured(
Jan 31 21:42:24 NETBOX  gunicorn[76450]:  django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin:Module not found. Check that the p>
Jan 31 21:42:24 NETBOX  gunicorn[76450]:  [2021-01-31 21:42:24 +0000] [76450] [INFO] Worker exiting (pid: 76450)
Jan 31 21:42:24 NETBOX  gunicorn[76444]:  Traceback (most recent call last):
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 209, in run
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       self.sleep()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line       357, in sleep
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       ready = select.select([self.PIPE[0]], [], [], 1.0)
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line       242, in handle_chld 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       self.reap_workers()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line       525, in reap_workers
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       raise HaltServer(reason, self.WORKER_BOOT_ERROR)
Jan 31 21:42:24 NETBOX  gunicorn[76444]:  gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Jan 31 21:42:24 NETBOX  gunicorn[76444]:  During handling of the above exception, another exception occurred:
Jan 31 21:42:24 NETBOX  gunicorn[76444]:  Traceback (most recent call last):
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox/venv/bin/gunicorn", line 8, in <module>
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       sys.exit(run())
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in run 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/app/base.py", line 228, in run 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       super().run()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/app/base.py", line 72, in run 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       Arbiter(self).run()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 229, in run 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       self.halt(reason=inst.reason, exit_status=inst.exit_status)
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 342, in halt 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       self.stop()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 393, in stop 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       time.sleep(0.1)
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       self.reap_workers()
Jan 31 21:42:24 NETBOX  gunicorn[76444]:    File "/opt/netbox-2.10.4/venv/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers 
Jan 31 21:42:24 NETBOX  gunicorn[76444]:       raise HaltServer(reason, self.WORKER_BOOT_ERROR)
Jan 31 21:42:24 NETBOX  gunicorn[76444]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Jan 31 21:42:24 NETBOX  systemd[1]: netbox.service: Main process exited, code=exited, status=1/FAILURE
Jan 31 21:42:24 NETBOX  systemd[1]: netbox.service: Failed with result 'exit-code'.
Jan 31 21:42:27 NETBOX  sudo[76453]: user : TTY=console ; PWD=/nextbox-ui-plugin ; USER=root ; COMMAND=/usr/bin/journalctl -e 
Jan 31 21:42:27 NETBOX sudo[76453]: pam unix(sudo:session): session opened for user

I then tried importing it through python3 cli:

Ā» import nextbox_ui_plugin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/nextbox-ui-plugin/nextbox_ui_plugin/__init__.py", line 1, in <module> 
    from extras.plugins import PluginConfig
ModuleNotFoundError: No module named 'extras'

Thanks

Running in Docker behind reverse proxy does not work

We are running netbox behind a reverse proxy (Traefik) with a URL rewrite. This is how we access Netbox:

URL: https://server.bogus.net/ipam/

Now, installing the plugin per instruction works, and logging into netbox, I get the topology button, so it loads the plugin.

However, it seems that the wrong path is being used as the plugin is not proxy aware, as the popup loads with a 404 page not found error.
image

Looking in Chrome, the path used are:

https://server.bogus.net/plugins/nextbox-ui/site_topology/1/

Thus it's missing the 'ipam' used in proxy. using https://server.bogus.net/ipam/plugins/nextbox-ui/site_topology/1/ direct in browser renders perfectly.

So, somewhere in the plugin, there is need to look at some parameter defining proxy configuration

Also, it would be good to have a parameter for canvas size, as some of us have seriously big screens:-)

Launch a topology view from a device

On larger site with a lot of devices, the topology is not useful.

An alternative could be to allow to launch from a device but with a hop count of 1 to see only the neighbors.

Then on the topology view, we could extend the number of hop count to be visualized based on the user input. This could allow a better topology view for a set of devices inside a site.

Setting 'undisplayed_device_role_slugs' is ignored on load

Netbox version: 2.10.6
Python version: 3.6.8

If the config-setting 'undisplayed_device_role_slugs' is defined as stated in the documentation, the configured device roles are still being displayed on inital load.
I discovered that the checkboxes of the configured device roles get unselected so the config setting itself works, but the action does not. When you select and unselect the device role afterwards, the nodes with that specific roles disappear like they are supposed to.
If you need my logs or config files, i'm happy to provide them.

Netbox 2.10.1 - plugin not displaying devices

I have Netbox 2.10.1 installed and the plugin, however when i click on a site its not showing any devices at all and looks like an incomplete view even of menus based on other screenshots. I did at device tags to a few devices to see if that was at issue but even those dont show up.

image

After plugin upgrade v0.6.9 to v0.8.0 topology view not working

The plugin was updated with pip3 -install netbox-ui-plugin -U

After restarting the services, no map is displayed after pressing the topology button. The buttons of the plugin are there.
When clicking on the site name and opening the new view page, the following message appears:

<class 'psycopg2.errors.InvalidCursorName'>
cursor "_django_curs_140410218845952_sync_2" does not exist
Python version: 3.6.9
NetBox version: 2.10.4

Error details:

[NetBox] ERROR (internal IP): Internal Server Error: /plugins/nextbox-ui/topology/
Internal Server Error: /plugins/nextbox-ui/topology/

InvalidCursorName at /plugins/nextbox-ui/topology/ cursor "_django_curs_140530272945920_sync_2" does not exist

Did I not do an intermediate step or configuration when updating?

Topology loading stuck with infinite loading logo

I tried to use Your plugin with the default configuration. For a small site with few (8) devices I've got some result but for a site with over 100 objects the map is never displayed (I waited like 10 minutes) . Also I do not see a way to include only few selected device roles

Passive Objects?

How does it determine if something is passive?

A number of my switches show as "passive" devices despite having interfaces connected in netbox to other devices that are active. Just curious how its figuring that out.

Issue with latest release and Netbox v2.10.1

After install of the plugin and restarting services we get the following issue:

ImportError: cannot import name 'Location'

I dont think location was added to the model in this version? Its still rack groups?

Unhandled Exception

Hi,

If someone clicks on "topology" for a site that has devices but absolutely no connections declared, you get the exception below.

Server Error
There was a problem with your request. Please contact an administrator.

The complete exception is provided below:

<class 'ValueError'>

not enough values to unpack (expected 4, got 3)
If further assistance is required, please post to the NetBox mailing list.

'Interface' object does not support indexing

After updating netbox, I see an error in the plugin. help me please

Environment:

Request Method: GET
Request URL: https://netbox.**.com/plugins/nextbox-ui/site_topology/4/

Django Version: 3.1.3
Python Version: 3.6.8
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'cacheops',
'corsheaders',
'debug_toolbar',
'django_filters',
'django_tables2',
'django_prometheus',
'mptt',
'rest_framework',
'taggit',
'timezone_field',
'circuits',
'dcim',
'ipam',
'extras',
'secrets',
'tenancy',
'users',
'utilities',
'virtualization',
'django_rq',
'drf_yasg',
'nextbox_ui_plugin.NextBoxUIConfig']
Installed Middleware:
['debug_toolbar.middleware.DebugToolbarMiddleware',
'django_prometheus.middleware.PrometheusBeforeMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'netbox.middleware.ExceptionHandlingMiddleware',
'netbox.middleware.RemoteUserMiddleware',
'netbox.middleware.LoginRequiredMiddleware',
'netbox.middleware.APIVersionMiddleware',
'netbox.middleware.ObjectChangeMiddleware',
'django_prometheus.middleware.PrometheusAfterMiddleware']

Traceback (most recent call last):
File "/opt/netbox/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/opt/netbox/venv/lib64/python3.6/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/netbox/venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "/opt/netbox/venv/lib64/python3.6/site-packages/django/contrib/auth/mixins.py", line 85, in dispatch
return super().dispatch(request, *args, **kwargs)
File "/opt/netbox/venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 98, in dispatch
return handler(request, *args, **kwargs)
File "/opt/netbox/venv/lib64/python3.6/site-packages/nextbox_ui_plugin/views.py", line 334, in get
topology_dict, device_roles, multi_cable_connections, device_tags = get_site_topology(site_id)
File "/opt/netbox/venv/lib64/python3.6/site-packages/nextbox_ui_plugin/views.py", line 311, in get_site_topology
if isinstance(cable_path[0][0], Interface) and isinstance(cable_path[-1][2], Interface):

Exception Type: TypeError at /plugins/nextbox-ui/site_topology/4/
Exception Value: 'Interface' object does not support indexing

[Docker on K8s] ModuleNotFoundError: No module named 'nextbox_ui_plugin'

Im using the provided Dockerfile to install the plugin into my container. As a base image ive tried lastest-ldap and v2.10.5, both produce the same issue for me.

šŸ§¬ loaded config '/etc/netbox/config/configuration.py'
šŸ§¬ loaded config '/etc/netbox/config/configuration.py'
šŸ§¬ loaded config '/etc/netbox/config/extra.py'
Traceback (most recent call last):
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 224, in fetch_command
    app_name = commands[subcommand]
KeyError: 'rqworker'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/netbox/netbox/netbox/settings.py", line 592, in <module>
    plugin = importlib.import_module(plugin_name)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nextbox_ui_plugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/netbox/netbox/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 231, in fetch_command
    settings.INSTALLED_APPS
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 83, in __getattr__
    self._setup(name)
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 70, in _setup
    self._wrapped = Settings(settings_module)
  File "/opt/netbox/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 177, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/opt/netbox/netbox/netbox/settings.py", line 595, in <module>
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Unable to import plugin nextbox_ui_plugin: Module not found. Check that the plugin module has been installed within the correct Python environment.

ive tried forcing the venv with "RUN source /opt/netbox/venv/bin/activate" to no avail
The plugin config is set to "['nextbox_ui_plugin',] ", as documented
Im not overwriting any dir in the venv or overwriting env vars

Thus im basically out if ideas why it isnt working.

Error in view

Hello, since I updated to 2.8.7, I have this error on one of my sites,

"GET /plugins/nextbox-ui/site_topology/2/ HTTP/1.1" 500 1748 Internal Server Error: /plugins/nextbox-ui/site_topology/2/ Traceback (most recent call last): File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/django/views/generic/base.py", line 71, in view return self.dispatch(request, *args, **kwargs) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/django/contrib/auth/mixins.py", line 85, in dispatch return super().dispatch(request, *args, **kwargs) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/django/views/generic/base.py", line 97, in dispatch return handler(request, *args, **kwargs) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/nextbox_ui_plugin/views.py", line 331, in get topology_dict, device_roles, multi_cable_connections, device_tags = get_site_topology(site_id) File "/opt/netbox-2.8.7/venv/lib/python3.6/site-packages/nextbox_ui_plugin/views.py", line 304, in get_site_topology cable_path, endpoint = link.termination_a.trace() ValueError: too many values to unpack (expected 2)

I didn't change anything and I am not sure if it is the right place to post this,

Thanks

EDIT: By changing line 304 of view.py by this :
cable_path = link.termination_a.trace()
I don't have anymore issues

Netbox 2.10 compatibility?

Looks like font-awesome needs to be migrated to material design icons and jquery needs to move from 3.4.1 to 3.5.1. The plugin won't load from the site page, but loads from the direct URL but is a little out of sorts because of the missing jquery I believe from looking at it this evening.

Want a PR or are you planning on updating it?

Thanks for the plugin!

Missing connections and wrong port labels when passive devices are hidden

It seems that hiding passive devices also hide some existing connection. Here is what I see with passive devices shown:

Screenshot with passive devices

But if i hide the passive devices the connection between leuchten-ap and kindergarten-sw is missing:

Screenshot without passive devices

Tracing this connection in netbox work just fine.

Also note that when hiding the passive devices the port name on the kindergarten-sw side of the connection to valentin37-sw is wrong, it should be gi1/0/1 as shown when the passive devices are enabled, and not gi1/0/8.

Possibility to save a view

Hello,

not really an issue, but would be possible to save a view once you've manually organized the devices connected together? I think at the moment it is only saved until next login into netbox.

So far I love the plugin and I am looking forward to any further improvement :).

Thx a lot for it!

Display topology for regions

Hi,

In case of big infra, display topology from a region should be nice.

I can prepare a PR for this.

Regards ;p

Error: 'Interface' object does not support indexing

Due to the change in cable tracing (netbox-community/netbox#4900), this plugin is currently incompatible with Netbox-Version 2.10.x.

When opening the Topology-View the following error get's thrown:

Internal Server Error: /plugins/nextbox-ui/site_topology/1/
Traceback (most recent call last):
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/django/contrib/auth/mixins.py", line 85, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/nextbox_ui_plugin/views.py", line 334, in get
    topology_dict, device_roles, multi_cable_connections, device_tags = get_site_topology(site_id)
  File "/home/n0emis/.nc/Documents/_unsortiert/programmieren/netbox/.venv/lib/python3.9/site-packages/nextbox_ui_plugin/views.py", line 311, in get_site_topology
    if isinstance(cable_path[0][0], Interface) and isinstance(cable_path[-1][2], Interface):
TypeError: 'Interface' object is not subscriptable

virtual-chassis support

It would be really useful if we can see device as virtual chassis master and connect them together, rather then individual stack members, if logical scheme is needed.

If we have core-sw1 with 2 physical cisco devices in stack we will import followtin objects into netbox:

  • virtual-chassis object called core-sw1
  • core-sw1 (device type core switch) - master in virtual chassis
  • core-sw1_1 (device type core switch stack)
  • core-sw1_2 (device type core switch stack)

In virtual chassis object, core-sw1 device object will be denoted as master with only virtual interfaces created on it.
Individual members (core-sw1_1 and core-sw1_2) would have interfaces 1/0/1-48 and 2/0/1-48, respectively.

Logic could be something in line:

nb_devices = nb.dcim.devices.filter(site_id=site.id)

masters_checked = []
for device in nb_devices:
    if device.virtual_chassis:
        vc = nb.dcim.virtual_chassis.get(device.virtual_chassis.id)
        if vc.master.name not in masters_imported:
            masters_checked.append(vc.master.name)
            device_for_connection = nb.dcim.devices.get(vc.master.id)
     else:
         # as usual :)

Afterwards all interfaces will be present on device_for_connection. We just need to keep track of already connected device, so we don't check twice for all stack members.

virtual_chassis

undisplayed_device_role_slugs -> still displayed

I set the following settings in configuration.py:

        'undisplayed_device_role_slugs': (
           'blindpanel',
           'cable-holder',
           'placeholder',
           'pdu'

Although in the select layers menu, there UNchecked, when I open topology view, the objects with that role are still on the map. I have to check and uncheck again in the layer-menu in order to get them invisible.

image

Nextbox ui plugin view

Hi
Netbox 2.9.9
python 3.8.5
Nextbox ui plugin: v0.8.0

Observed behavior: In the topology viewer screen. when there are multiple interconnected interfaces between devices the text appears to lose clarity
Also when I launch it in Firefox the full screen mode dont work but it works in Google chrome (browser dependent?)
the search form that appears on the right , is it possible to hide it from the topology view area
How to save current view, currently when I try save it through the save current view button it doesnt work? Please help
As per documentation, I collected static files and cleared browser cache
Thanks for this awesome work

Support for permissions

Netbox: 2.10.8
Nextbox-ui-plugin: 0.8.0

This is more a feature request, than an actual issue. Since netbox 2.9, it's possible to set certain permissions for users that restrict them to list only a subset of devices. Nextbox-ui-plugin is showing every device, including those the user is not able to list. It would be great if you could comply with the permissions framework. Thanks.

[Feature request] Option to filter by tags

Hi,

Will it be possible to add a 'tag layer' to filter out devices drawn by the plugin?

The idea is to be able to restrict the topology by site but also by tag so you can get a nice topology on very large sites.

too many values to unpack (expected 2) error

after open the module i see error

There was a problem with your request. Please contact an administrator.

The complete exception is provided below:

<class 'ValueError'>

too many values to unpack (expected 2)
image

netbox (v2.8.7)

Reference to old js-libraries in pop-up Topology modal

Netbox version: 2.10.4
Plugin version: 0.7.1

To reproduce:

  • Go to site
  • Choose Topology
  • Look in your web developer console

In my install I get 404 on the following:
https://mynetbox-install/static/font-awesome-4.7.0/css/font-awesome.min.css
https://mynetbox-install/static/jquery/jquery-3.4.1.min.js

It seems the plugin uses some of Netbox' js libraries, and when Netbox update these the reference does not work properly. From what I can tell with the font-awesome library, this was changed to material design. And the current jquery is 3.5.1 in the Netbox install 2.10.4. Not sure if there's a way to reference these resources in a generic way to make them work between version?

Anyway, the plugin works great otherwise, thanks for sharing it!

Feature Request - Group child devices to the parent device

Overview: We have multiple chassis-based devices, where the interfaces exist on the line cards, these being child devices they do not display correctly when included on the diagram.

Suggestions:

  • Option to enable the parent name for the displayed child device to be displayed. The child device would appear within the parent device and be labelled as the Bay Name.
  • Option to group child device interface with a parent device, interfaces would start with the Bay name, such as "If 8."

Nummerous errors in Browser when using Topology Viewer

This happens when I open topology view. Netbox v.2.11.4.
image
There seems to be an issue with hide / unhide functionality. When I click "Hide" I get some more connections visible. When I click again on the button, nothing changes anymore, even when clicking multiple times.

Display topology in plugin directory, but not in Site directory

Hi. I've installed a plugin on Netbox 2.8.5, followed your guidance, make collect static, etc. I can see topology in plugins/nextbox-ui/site_topology/{site_id}/ but then I pressed Topology button in the site property - I see loading status permanently and see the following errors in the browser logs
Object
links: (2)Ā []
nodes: (40)Ā []
DevTools failed to load SourceMap: Could not load content for https:///static/nextbox_ui_plugin/bootstrap.bundle.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

Blank page in topo view

Hi,

I installed everything according to the docs. But when I open the topo view of my test site, it is empty.

I have two switches with a distribution and an access role. In the view I see both roles displayed, but not device itself. Ideas?

Netbox 2.10.2 AttributeError: 'zipimporter' object has no attribute 'exec_module'

Python 3.8.5
Netbox 2.10.2

As per netbox-community/netbox#5254 setup.py should now have "zip_safe=False,". This change is required as of NetBox 2.10.2 to avoid installation failure.
It should be backward compatible with older NetBox versions as there are no changes to the code itself.

Before adding zip_safe=False,, I was getting the following error:
(venv) username@hostname:/opt/netbox/netbox# python manage.py collectstatic Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/opt/netbox-2.10.2/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/opt/netbox-2.10.2/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute django.setup() File "/opt/netbox-2.10.2/venv/lib/python3.8/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/opt/netbox-2.10.2/venv/lib/python3.8/site-packages/django/apps/registry.py", line 122, in populate app_config.ready() File "/opt/netbox-2.10.2/netbox/extras/plugins/__init__.py", line 63, in ready template_extensions = import_object(f"{self.__module__}.{self.template_extensions}") File "/opt/netbox-2.10.2/netbox/extras/plugins/utils.py", line 31, in import_object spec.loader.exec_module(module) AttributeError: 'zipimporter' object has no attribute 'exec_module'

Topology & Graphs Buttons

After installing the plugin (0.8.1 / 2.11 with docker), I am missing one Button (Graphs) that should appear on the site page, visible on this image:
https://github.com/iDebugAll/nextbox-ui-plugin/raw/master/samples/sample_topology_button.png

On the new Location Page, I have neither of these Buttons.

Also, the Site Topology View is quite useless for us unless we can break this much more down:
image

Wouldn't it be possible to trigger topology view from a cable trace?

Thanks,
R.

nextbox-ui does not honor browser window size

Although there's some code in next_app.js the ui ignores the browser window size.

Actually, document.body.clientWidth (and ...Height) is always 0. Maybe the body to be measured is not rendered at this time? If I type document.body.clientWidth in the javascript console manually I get proper values.

Configurable Styles

Hi!
Thanks for making this plugin. I've always thought UI was under-utilized and was excited to see this happen!

One suggestion I'd like to make is to make options for more configurable control over the style of the diagram.

For whatever reason, the labels are HUGE on my diagrams, and I'd like to be able to control the font size as well as the colors.

Attached is a picture of what's happening:
Screenshot

Is this something you are interested in implementing, or would you prefer a PR? Whatever works best for you.
Thanks!

Feature Request: Publish to PyPi

Feature Request: Publish to PyPi

Reason:

Publishing to PyPi would allow users to update this plugin using pip & automatically via the NetBox upgrade process when it is added to the local-requirements.txt file in the NetBox directory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.