Onemind-Services-LLC / netbox-metatype-importer

Easy import Device and Module types from GitHub repo
Apache License 2.0
43 stars 7 forks source link

Syntax Issue #48

Closed moon62a closed 5 months ago

moon62a commented 5 months ago

NetBox Version

v.3.7.4

NetBox Plugin Version

v.0.3.2

Steps to Reproduce

Follow install procedure for a clean install of netbox 3.7.4. Launch into application no issues. Create github personal access token (classic) with public_repo, read:packages and read:org

Update configuration.py

PLUGINS = ['netbox_metatype_importer']
PLUGINS_CONFIG = {
    'netbox_metaype_importer': {
        'branch': 'master'
        'github_token': 'NotMyRealTokenHere'
        'repo': 'devicetype-library'
        'repo_owner': 'netbox-community'
    }
}

then ran sudo ./venv/bin/python netbox/manage.py migrate with a user that has full sudo rights Error code returned in observed behavior area:

Expected Behavior

Not a syntax error that looks like it's preventing things from completing and thus not installing at all

Observed Behavior

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/lib64/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/__init__.py", line 382, in execute
    settings.INSTALLED_APPS
  File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/__init__.py", line 102, in __getattr__
    self._setup(name)
  File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/__init__.py", line 89, in _setup
    self._wrapped = Settings(settings_module)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/__init__.py", line 217, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/opt/netbox/netbox/netbox/settings.py", line 52, in <module>
    configuration = importlib.import_module(config_path)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 936, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1074, in get_code
  File "<frozen importlib._bootstrap_external>", line 1004, in source_to_code
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/opt/netbox/netbox/netbox/configuration.py", line 197
    'github_token': 'NotMyRealTokenHere'
                  ^
SyntaxError: invalid syntax
moon62a commented 5 months ago

Found I may have hit a small stupid ....... but it doesn't resolve things in the PLUGINS_CONFIG I added comma's at the end of each key pair so it look like ''' PLUGINS_CONFIG = { 'netbox_metaype_importer': { 'branch': 'master', 'github_token': 'NotMyRealTokenHere', 'repo': 'devicetype-library', 'repo_owner': 'netbox-community' } } '''

Then I commented out the PLUGINS and PLUGINS_CONFIG and ran the migrate. Everything worked fine. Uncommented the PLUGINS and PLUGINS_CONFIG and ran the 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/lib64/python3.11/site-packages/django/core/management/init.py", line 442, in execute_from_command_line utility.execute() File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/init.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/base.py", line 412, in run_from_argv self.execute(*args, cmd_options) File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, *options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/base.py", line 103, in wrapper saved_locale = translation.get_language() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/utils/translation/init.py", line 210, in get_language return _trans.get_language() ^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/utils/translation/init.py", line 65, in getattr if settings.USE_I18N: ^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/init.py", line 102, in getattr self._setup(name) File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/init.py", line 89, in _setup self._wrapped = Settings(settings_module) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/init.py", line 217, in init mod = importlib.import_module(self.SETTINGS_MODULE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1204, in _gcd_import File "", line 1176, in _find_and_load File "", line 1147, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "/opt/netbox/netbox/netbox/settings.py", line 798, in plugin_config.validate(PLUGINS_CONFIG[plugin_name], VERSION) File "/opt/netbox/netbox/netbox/plugins/init.py", line 148, in validate raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Plugin netbox_metatype_importer requires 'github_token' to be present in the PLUGINS_CONFIG section of configuration.py. (venv) [root@termcentosmd1000 netbox]# sudo /opt/netbox/venv/bin/python /opt/netbox/netbox/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/lib64/python3.11/site-packages/django/core/management/init.py", line 442, in execute_from_command_line utility.execute() File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/init.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/base.py", line 412, in run_from_argv self.execute(args, cmd_options) File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/core/management/base.py", line 103, in wrapper saved_locale = translation.get_language() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/utils/translation/init.py", line 210, in get_language return _trans.get_language() ^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/utils/translation/init.py", line 65, in getattr if settings.USE_I18N: ^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/init.py", line 102, in getattr self._setup(name) File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/init.py", line 89, in _setup self._wrapped = Settings(settings_module) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib64/python3.11/site-packages/django/conf/init.py", line 217, in init mod = importlib.import_module(self.SETTINGS_MODULE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1204, in _gcd_import File "", line 1176, in _find_and_load File "", line 1147, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "/opt/netbox/netbox/netbox/settings.py", line 798, in plugin_config.validate(PLUGINS_CONFIG[plugin_name], VERSION) File "/opt/netbox/netbox/netbox/plugins/init.py", line 148, in validate raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Plugin netbox_metatype_importer requires 'github_token' to be present in the PLUGINS_CONFIG section of configuration.py. ''' But if we look up above we'll see that 'github_token' is there. So I'm stumped

abhi1693 commented 5 months ago

You are missing comma after the key:value. The dictionary is of invalid format

moon62a commented 5 months ago

Yeah. Sorry. I updated the ticket having fixed the syntax. Slightly new problem same root