Skip to content

Error when creating non-racked device in branch #447

@PaulR282

Description

@PaulR282

Plugin Version

0.8.1

NetBox Version

4.5.3

Python Version

3.12

Steps to Reproduce

  1. Create a non-racked device

Expected Behavior

Non-racked device should be created

Observed Behavior

Traceback (most recent call last):
  File "/opt/netbox/netbox/netbox/middleware.py", line 128, in __call__
    username = request.META[self.header]
               ^^^^^^^^^^^^^^^^^^^^^^^^^

During handling of the above exception ('HTTP_REMOTE_USER'), another exception occurred:
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/backends/base/base.py", line 303, in _commit
    return self.connection.commit()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/connection.py", line 304, in commit
    self.wait(self._commit_gen())
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/connection.py", line 483, in wait
    return waiting.wait(gen, self.pgconn.socket, interval=interval)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "psycopg_c/_psycopg/waiting.pyx", line 241, in psycopg_c._psycopg.wait_c
    <source code not available>
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/_connection_base.py", line 585, in _commit_gen
    yield from self._exec_command(b"COMMIT")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/_connection_base.py", line 483, in _exec_command
    raise e.error_from_result(result, encoding=self.pgconn._encoding)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The above exception (insert or update on table "dcim_portmapping" violates foreign key constraint "dcim_portmapping_device_id_eb86e378_fk_dcim_device_id"
DETAIL:  Key (device_id)=(5171) is not present in table "dcim_device".) was the direct cause of the following exception:
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 192, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/utilities/views.py", line 148, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/utilities/views.py", line 47, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 299, in post
    obj = form.save()
          ^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/forms/models.py", line 554, in save
    self.instance.save()
    ^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/dcim/models/devices.py", line 1022, in save
    create_port_mappings(self, self.device_type)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/dcim/utils.py", line 118, in create_port_mappings
    PortMapping.objects.bulk_create(mappings)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/models/query.py", line 805, in bulk_create
    with transaction.atomic(using=self.db, savepoint=False):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/transaction.py", line 263, in __exit__
    connection.commit()
    ^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/backends/base/base.py", line 327, in commit
    self._commit()
    ^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/backends/base/base.py", line 302, in _commit
    with debug_transaction(self, "COMMIT"), self.wrap_database_errors:
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/django/db/backends/base/base.py", line 303, in _commit
    return self.connection.commit()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/connection.py", line 304, in commit
    self.wait(self._commit_gen())
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/connection.py", line 483, in wait
    return waiting.wait(gen, self.pgconn.socket, interval=interval)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "psycopg_c/_psycopg/waiting.pyx", line 241, in psycopg_c._psycopg.wait_c
    <source code not available>
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/_connection_base.py", line 585, in _commit_gen
    yield from self._exec_command(b"COMMIT")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.5.3/venv/lib/python3.12/site-packages/psycopg/_connection_base.py", line 483, in _exec_command
    raise e.error_from_result(result, encoding=self.pgconn._encoding)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: IntegrityError at /dcim/devices/add/
Exception Value: insert or update on table "dcim_portmapping" violates foreign key constraint "dcim_portmapping_device_id_eb86e378_fk_dcim_device_id"
DETAIL:  Key (device_id)=(5171) is not present in table "dcim_device".

Metadata

Metadata

Assignees

No one assigned

    Labels

    app: branchingstatus: needs triageThis issue is awaiting triage by a maintainertype: bugA confirmed report of unexpected behavior in the application

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions