robertcsapo / ciscodnacnetbox

Cisco DNA Center Integration with NetBox
Other
34 stars 14 forks source link

plugin not working on netbox 3.5.1 and DNAC 2.3.3.6 #16

Closed KoenVanbelle-Howest closed 8 months ago

KoenVanbelle-Howest commented 1 year ago

Anyone got this working on the latest netbox release? I was obligated to upgrade to the latest release for another plugin, now this one doesn't load anymore.

KoenVanbelle-Howest commented 1 year ago

additional info: # python3 manage.py migrate Traceback (most recent call last): File "/opt/netbox/netbox/manage.py", line 10, in execute_from_command_line(sys.argv) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/init.py", line 446, in execute_from_command_line utility.execute() File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/init.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv self.execute(*args, cmd_options) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute output = self.handle(*args, *options) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 96, in wrapped res = handle_func(args, kwargs) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 97, in handle self.check(databases=[database]) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 475, in check all_issues = checks.run_checks( File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/checks/registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 14, in check_url_config return check_resolver(resolver) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 24, in check_resolver return check_method() File "/opt/netbox/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 494, in check for pattern in self.url_patterns: File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in get res = instance.dict[self.name] = self.func(instance) File "/opt/netbox/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 715, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in get res = instance.dict[self.name] = self.func(instance) File "/opt/netbox/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 708, in urlconf_module return import_module(self.urlconf_name) File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1050, in _gcd_import File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "", line 883, in exec_module File "", line 241, in _call_with_frames_removed File "/opt/netbox/netbox/netbox/urls.py", line 8, in from extras.plugins.urls import plugin_admin_patterns, plugin_patterns, plugin_api_patterns File "/opt/netbox/netbox/extras/plugins/urls.py", line 31, in urlpatterns = import_string(f"{plugin_path}.urls.urlpatterns") File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/module_loading.py", line 30, in import_string return cached_import(module_path, class_name) File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/module_loading.py", line 15, in cached_import module = import_module(module_path) File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/opt/netbox/venv/lib/python3.10/site-packages/ciscodnacnetbox/urls.py", line 3, in from . import views File "/opt/netbox/venv/lib/python3.10/site-packages/ciscodnacnetbox/views.py", line 13, in from .forms import SettingsForm File "/opt/netbox/venv/lib/python3.10/site-packages/ciscodnacnetbox/forms.py", line 1, in from utilities.forms import StaticSelect ImportError: cannot import name 'StaticSelect' from 'utilities.forms' (/opt/netbox/netbox/utilities/forms/init.py)

dfooksman commented 1 year ago

Running into the same issue -

Adding it to local_requirements.txt fails - # (venv) ✘ ⚡ root@XPL  /opt/netbox  cat local_requirements.txt napalm django-storages django-auth-ldap xmlsec django3_auth_saml2 netbox-plugin-auth-saml2 ciscodnacnetbox

(venv) ✘ ⚡ root@XPL  /opt/netbox  ./upgrade.sh Using Python 3.10.6 Creating a new virtual environment at /opt/netbox/venv... Updating pip (pip install --upgrade pip)... ......... Installing collected packages: pyserial, netbox-plugin-auth-saml2, fastjsonschema, yamlordereddictloader, ttp, transitions, tenacity, pyparsing, pyeapi, pyasn1-modules, netutils, lxml, importlib-resources, future, elementpath, bcrypt, xmlsec, xmlschema, ttp-templates, textfsm, requests-toolbelt, python-ldap, pynacl, pyOpenSSL, paramiko, ntc-templates, dnacentersdk, django-storages, django-auth-ldap, scp, pysaml2, ncclient, ciscodnacnetbox, netmiko, junos-eznc, django3_auth_saml2, napalm Successfully installed bcrypt-4.0.1 ciscodnacnetbox-3.2.3 django-auth-ldap-4.3.0 django-storages-1.13.2 django3_auth_saml2-0.6.0 dnacentersdk-2.0.2 elementpath-4.1.2 fastjsonschema-2.17.1 future-0.18.3 importlib-resources-5.12.0 junos-eznc-2.6.7 lxml-4.9.2 napalm-4.0.0 ncclient-0.6.13 netbox-plugin-auth-saml2-2.4 netmiko-4.1.2 netutils-1.4.1 ntc-templates-3.3.0 paramiko-3.1.0 pyOpenSSL-23.1.1 pyasn1-modules-0.3.0 pyeapi-0.8.4 pynacl-1.5.0 pyparsing-3.0.9 pysaml2-6.5.0 pyserial-3.5 python-ldap-3.4.3 requests-toolbelt-0.9.1 scp-0.14.5 tenacity-8.2.2 textfsm-1.1.2 transitions-0.9.0 ttp-0.9.4 ttp-templates-0.3.5 xmlschema-2.3.0 xmlsec-1.3.13 yamlordereddictloader-0.4.0 Applying database migrations (python3 netbox/manage.py migrate)... 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.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line utility.execute() File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv self.execute(*args, **cmd_options) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute output = self.handle(*args, **options) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 96, in wrapped res = handle_func(*args, **kwargs) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 97, in handle self.check(databases=[database]) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/management/base.py", line 475, in check all_issues = checks.run_checks( File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/checks/registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 14, in check_url_config return check_resolver(resolver) File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 24, in check_resolver return check_method() File "/opt/netbox/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 494, in check for pattern in self.url_patterns: File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/opt/netbox/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 715, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/opt/netbox/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 708, in urlconf_module return import_module(self.urlconf_name) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/opt/netbox/netbox/netbox/urls.py", line 8, in <module> from extras.plugins.urls import plugin_admin_patterns, plugin_patterns, plugin_api_patterns File "/opt/netbox/netbox/extras/plugins/urls.py", line 31, in <module> urlpatterns = import_string(f"{plugin_path}.urls.urlpatterns") File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/module_loading.py", line 30, in import_string return cached_import(module_path, class_name) File "/opt/netbox/venv/lib/python3.10/site-packages/django/utils/module_loading.py", line 15, in cached_import module = import_module(module_path) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/opt/netbox/venv/lib/python3.10/site-packages/ciscodnacnetbox/urls.py", line 3, in <module> from . import views File "/opt/netbox/venv/lib/python3.10/site-packages/ciscodnacnetbox/views.py", line 13, in <module> from .forms import SettingsForm File "/opt/netbox/venv/lib/python3.10/site-packages/ciscodnacnetbox/forms.py", line 1, in <module> from utilities.forms import StaticSelect ImportError: cannot import name 'StaticSelect' from 'utilities.forms' (/opt/netbox/netbox/utilities/forms/__init__.py)

robertcsapo commented 1 year ago

This requires an update to the plugin to support this change, since release 3.5 of NetBox

KoenVanbelle-Howest commented 1 year ago

Is that something you're willing to do? ---puppy eyes ;-)---

robertcsapo commented 10 months ago

Patched in the latest release pip install ciscodnacnetbox==3.5.0 @dfooksman , @KoenVanbelle-Howest