Back-to-back Circuit Termination throws Attribute exception #4359

Closed
opened 2025-12-29 18:35:09 +01:00 by adam · 1 comment
Owner

Originally created by @DanSheps on GitHub (Dec 15, 2020).

Environment

  • Python version: 3.6.6
  • NetBox version: 2.10.0

Steps to Reproduce

  1. Create a site "Site"
  2. Create a Circuit Provider "Provider"
  3. Create a Circuit Type "Circuit Type"
  4. Create a circuit "C1"
  5. Place Z side in "Site"
  6. Create a circuit "C2"
  7. Place "Z" side in "Site"
  8. Connect C1:Z to C2:Z

Expected Behavior

No error

Observed Behavior

AttributeError Exception thrown

Originally created by @DanSheps on GitHub (Dec 15, 2020). ### Environment * Python version: 3.6.6 * NetBox version: 2.10.0 ### Steps to Reproduce 1. Create a site "Site" 2. Create a Circuit Provider "Provider" 3. Create a Circuit Type "Circuit Type" 4. Create a circuit "C1" 5. Place Z side in "Site" 6. Create a circuit "C2" 7. Place "Z" side in "Site" 8. Connect C1:Z to C2:Z ### Expected Behavior No error ### Observed Behavior AttributeError Exception thrown
adam closed this issue 2025-12-29 18:35:09 +01:00
Author
Owner

@DanSheps commented on GitHub (Dec 15, 2020):

Environment:


Request Method: GET
Request URL: https://develop.netbox.dev/circuits/circuits/2/

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']
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 "/usr/local/netbox/master/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/netbox/master/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 "/usr/local/netbox/master/venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/netbox/develop/netbox/utilities/views.py", line 91, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/usr/local/netbox/master/venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/local/netbox/develop/netbox/netbox/views/generic.py", line 70, in get
    **self.get_extra_context(request, instance),
  File "/usr/local/netbox/develop/netbox/circuits/views.py", line 152, in get_extra_context
    termination_z.ip_addresses = termination_z.connected_endpoint.ip_addresses.restrict(request.user, 'view')

Exception Type: AttributeError at /circuits/circuits/2/
Exception Value: 'CircuitTermination' object has no attribute 'ip_addresses'
@DanSheps commented on GitHub (Dec 15, 2020): ``` Environment: Request Method: GET Request URL: https://develop.netbox.dev/circuits/circuits/2/ 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'] 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 "/usr/local/netbox/master/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/usr/local/netbox/master/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 "/usr/local/netbox/master/venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 70, in view return self.dispatch(request, *args, **kwargs) File "/usr/local/netbox/develop/netbox/utilities/views.py", line 91, in dispatch return super().dispatch(request, *args, **kwargs) File "/usr/local/netbox/master/venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 98, in dispatch return handler(request, *args, **kwargs) File "/usr/local/netbox/develop/netbox/netbox/views/generic.py", line 70, in get **self.get_extra_context(request, instance), File "/usr/local/netbox/develop/netbox/circuits/views.py", line 152, in get_extra_context termination_z.ip_addresses = termination_z.connected_endpoint.ip_addresses.restrict(request.user, 'view') Exception Type: AttributeError at /circuits/circuits/2/ Exception Value: 'CircuitTermination' object has no attribute 'ip_addresses' ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#4359