Skip to content

Commit f5d9f58

Browse files
authored
Fix circuit error (#87)
* fix 'Interface' object has no attribute 'circuit'
1 parent 3e5b28f commit f5d9f58

File tree

5 files changed

+50
-49
lines changed

5 files changed

+50
-49
lines changed

netbox_topology_views/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class TopologyViewsConfig(PluginConfig):
44
name = 'netbox_topology_views'
55
verbose_name = 'Topology views'
66
description = 'An plugin to render topology maps'
7-
version = '1.0.0'
7+
version = '1.0.1'
88
author = 'Mattijs Vanhaverbeke'
99
author_email = 'author@example.com'
1010
base_url = 'netbox_topology_views'
@@ -15,7 +15,7 @@ class TopologyViewsConfig(PluginConfig):
1515
'device_img': ['access-switch', 'core-switch', 'firewall', 'router', 'distribution-switch', 'backup', 'storage,wan-network', 'wireless-ap', 'server', 'internal-switch', 'isp-cpe-material', 'non-racked-devices', 'power-units'],
1616
'allow_coordinates_saving': False,
1717
'preselected_tags' : [],
18-
'enable_circuit_terminations': True,
18+
'enable_circuit_terminations': False,
1919
'draw_default_layout': False
2020
}
2121

netbox_topology_views/views.py

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -66,52 +66,53 @@ def get_topology_data(queryset, hide_unconnected):
6666
device_has_connections = True
6767
else:
6868
if settings.PLUGINS_CONFIG["netbox_topology_views"]["enable_circuit_terminations"]:
69-
if link_from.termination_a.circuit.id not in circuit_ids:
70-
circuit_ids.append(link_from.termination_a.circuit.id)
71-
edge_ids += 1
72-
73-
cable_b_dev_name = link_from.termination_b.device.name
74-
if cable_b_dev_name is None:
75-
cable_b_dev_name = "device B name unknown"
76-
cable_b_name = link_from.termination_b.name
77-
if cable_b_name is None:
78-
cable_b_name = "cable B name unknown"
79-
80-
edge = {}
81-
edge["id"] = edge_ids
82-
edge["to"] = link_from.termination_b.device.id
83-
edge["dashes"] = True
84-
title = ""
85-
86-
title += "Circuit provider: " + link_from.termination_a.circuit.provider.name + "<br>"
87-
title += "Termination between <br>"
88-
title += cable_b_dev_name + " [" + cable_b_name + "]<br>"
89-
90-
if link_from.termination_a.circuit.termination_a is not None and link_from.termination_a.circuit.termination_a.cable is not None and link_from.termination_a.circuit.termination_a.cable.id != link_from.id and link_from.termination_a.circuit.termination_a.cable.termination_b is not None and link_from.termination_a.circuit.termination_a.cable.termination_b.device is not None:
91-
edge["from"] = link_from.termination_a.circuit.termination_a.cable.termination_b.device.id
92-
93-
cable_a_dev_name = link_from.termination_a.circuit.termination_a.cable.termination_b.device.name
94-
if cable_a_dev_name is None:
95-
cable_a_dev_name = "device B name unknown"
96-
cable_b_name = link_from.termination_a.circuit.termination_a.cable.termination_b.name
97-
if cable_a_name is None:
98-
cable_a_name = "cable B name unknown"
99-
title += cable_a_dev_name + " [" + cable_a_name + "]<br>"
100-
edge["title"] = title
101-
edges.append(edge)
69+
if link_from.termination_a_type.name == "circuit termination":
70+
if link_from.termination_a.circuit.id not in circuit_ids:
71+
circuit_ids.append(link_from.termination_a.circuit.id)
72+
edge_ids += 1
10273

103-
if link_from.termination_a.circuit.termination_z is not None and link_from.termination_a.circuit.termination_z.cable is not None and link_from.termination_a.circuit.termination_z.cable.id != link_from.id and link_from.termination_a.circuit.termination_z.cable.termination_b is not None and link_from.termination_a.circuit.termination_z.cable.termination_b.device is not None:
104-
edge["from"] = link_from.termination_a.circuit.termination_z.cable.termination_b.device.id
74+
cable_b_dev_name = link_from.termination_b.device.name
75+
if cable_b_dev_name is None:
76+
cable_b_dev_name = "device B name unknown"
77+
cable_b_name = link_from.termination_b.name
78+
if cable_b_name is None:
79+
cable_b_name = "cable B name unknown"
10580

106-
cable_a_dev_name = link_from.termination_a.circuit.termination_z.cable.termination_b.device.name
107-
if cable_a_dev_name is None:
108-
cable_a_dev_name = "device B name unknown"
109-
cable_a_name = link_from.termination_a.circuit.termination_z.cable.termination_b.name
110-
if cable_a_name is None:
111-
cable_a_name = "cable B name unknown"
112-
title += cable_a_dev_name + " [" + cable_a_name + "]<br>"
113-
edge["title"] = title
114-
edges.append(edge)
81+
edge = {}
82+
edge["id"] = edge_ids
83+
edge["to"] = link_from.termination_b.device.id
84+
edge["dashes"] = True
85+
title = ""
86+
87+
title += "Circuit provider: " + link_from.termination_a.circuit.provider.name + "<br>"
88+
title += "Termination between <br>"
89+
title += cable_b_dev_name + " [" + cable_b_name + "]<br>"
90+
91+
if link_from.termination_a.circuit.termination_a is not None and link_from.termination_a.circuit.termination_a.cable is not None and link_from.termination_a.circuit.termination_a.cable.id != link_from.id and link_from.termination_a.circuit.termination_a.cable.termination_b is not None and link_from.termination_a.circuit.termination_a.cable.termination_b.device is not None:
92+
edge["from"] = link_from.termination_a.circuit.termination_a.cable.termination_b.device.id
93+
94+
cable_a_dev_name = link_from.termination_a.circuit.termination_a.cable.termination_b.device.name
95+
if cable_a_dev_name is None:
96+
cable_a_dev_name = "device B name unknown"
97+
cable_b_name = link_from.termination_a.circuit.termination_a.cable.termination_b.name
98+
if cable_a_name is None:
99+
cable_a_name = "cable B name unknown"
100+
title += cable_a_dev_name + " [" + cable_a_name + "]<br>"
101+
edge["title"] = title
102+
edges.append(edge)
103+
104+
if link_from.termination_a.circuit.termination_z is not None and link_from.termination_a.circuit.termination_z.cable is not None and link_from.termination_a.circuit.termination_z.cable.id != link_from.id and link_from.termination_a.circuit.termination_z.cable.termination_b is not None and link_from.termination_a.circuit.termination_z.cable.termination_b.device is not None:
105+
edge["from"] = link_from.termination_a.circuit.termination_z.cable.termination_b.device.id
106+
107+
cable_a_dev_name = link_from.termination_a.circuit.termination_z.cable.termination_b.device.name
108+
if cable_a_dev_name is None:
109+
cable_a_dev_name = "device B name unknown"
110+
cable_a_name = link_from.termination_a.circuit.termination_z.cable.termination_b.name
111+
if cable_a_name is None:
112+
cable_a_name = "cable B name unknown"
113+
title += cable_a_dev_name + " [" + cable_a_name + "]<br>"
114+
edge["title"] = title
115+
edges.append(edge)
115116

116117
if qs_device.id not in nodes_ids:
117118
if hide_unconnected == None or (hide_unconnected is True and device_has_connections is True):

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "netbox_topology_views",
4-
"version": "1.0.0",
4+
"version": "1.0.1",
55
"scripts": {
66
"resources": "gulp build",
77
"resources_dev": "gulp build_dev"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
setup(
55
name='netbox-topology-views',
6-
version='1.0.0',
6+
version='1.0.1',
77
description='An NetBox plugin to create Topology maps',
88
url='https://github.com/mattieserver/netbox-topology-views',
99
author='Mattijs Vanhaverbeke',

0 commit comments

Comments
 (0)