Просмотр исходного кода

Fix support for tracing across bridge relationships

jeremystretch 3 лет назад
Родитель
Сommit
d444aa1110
2 измененных файлов с 5 добавлено и 5 удалено
  1. 1 1
      netbox/dcim/api/views.py
  2. 4 4
      netbox/dcim/models/device_components.py

+ 1 - 1
netbox/dcim/api/views.py

@@ -59,7 +59,7 @@ class PathEndpointMixin(object):
                 width = int(request.GET.get('width', CABLE_TRACE_SVG_DEFAULT_WIDTH))
             except (ValueError, TypeError):
                 width = CABLE_TRACE_SVG_DEFAULT_WIDTH
-            drawing = CableTraceSVG(self, base_url=request.build_absolute_uri('/'), width=width)
+            drawing = CableTraceSVG(obj, base_url=request.build_absolute_uri('/'), width=width)
             return HttpResponse(drawing.render().tostring(), content_type='image/svg+xml')
 
         # Serialize path objects, iterating over each three-tuple in the path

+ 4 - 4
netbox/dcim/models/device_components.py

@@ -211,10 +211,10 @@ class PathEndpoint(models.Model):
                 # by inserting empty entries immediately prior to the path's destination node(s)
                 path.append([])
 
-            # TODO: Add bridging support
-            # # Check for bridge interface to continue the trace
-            # origin = getattr(origin._path.destination, 'bridge', None)
-            origin = None
+            # Check for a bridged relationship to continue the trace
+            destinations = origin._path.destinations
+            if len(destinations) == 1:
+                origin = getattr(destinations[0], 'bridge', None)
 
         # Return the path as a list of three-tuples (A termination(s), cable(s), B termination(s))
         return list(zip(*[iter(path)] * 3))