-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Labels
status: acceptedThis issue has been accepted for implementationThis issue has been accepted for implementationtype: bugA confirmed report of unexpected behavior in the applicationA confirmed report of unexpected behavior in the application
Description
NetBox version
v3.3.0
Python version
3.9
Steps to Reproduce
- upgraded netbox to v3.3.0
- click at an affected pdu (device)
Expected Behavior
I expect that the pdu device is displayed.
Observed Behavior
An error page with "TypeError" is thrown. Not every pdu is affected although of same device type.
If deleting the cable of an affected pdu to the power feed, the pdu device is opened correctly. If I create the cable again, the type error page is present instead of the device page.
With option "DEBUG = True" in configuration.py the type error page displays some helpful information (attached at bottom). I think there is something wrong at the power utilization graph because of type mismatch.
Template error:
In template /opt/netbox/netbox/templates/dcim/device.html, error at line 252
unsupported operand type(s) for /: 'str' and 'int'
242 : {% else %}
243 : <td class="text-muted">—</td>
244 : <td class="text-muted">—</td>
245 : {% endif %}
246 : </tr>
247 : {% for leg in utilization.legs %}
248 : <tr>
249 : <td style="padding-left: 20px">Leg {{ leg.name }}</td>
250 : <td>{{ leg.outlet_count }}</td>
251 : <td>{{ leg.allocated }}</td>
252 : <td> {{ powerfeed.available_power|divide:3 }} VA</td>
253 : {% with phase_available=powerfeed.available_power|divide:3 %}
254 : <td>{% utilization_graph leg.allocated|percentage:phase_available %}</td>
255 : {% endwith %}
256 : </tr>
257 : {% endfor %}
258 : {% endwith %}
259 : {% endfor %}
260 : </table>
261 : </div>
262 : </div>
Traceback (most recent call last):
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 84, in view
return self.dispatch(request, *args, **kwargs)
File "/opt/netbox/netbox/utilities/views.py", line 90, in dispatch
return super().dispatch(request, *args, **kwargs)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 119, in dispatch
return handler(request, *args, **kwargs)
File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 67, in get
return render(request, self.get_template_name(), {
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/shortcuts.py", line 24, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
return self.template.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 175, in render
return self._render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/defaulttags.py", line 322, in render
return nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/defaulttags.py", line 238, in render
nodelist.append(node.render_annotated(context))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/defaulttags.py", line 542, in render
return self.nodelist.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1000, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/defaulttags.py", line 238, in render
nodelist.append(node.render_annotated(context))
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 958, in render_annotated
return self.render(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 1059, in render
output = self.filter_expression.resolve(context)
File "/opt/netbox-3.3.0/venv/lib/python3.9/site-packages/django/template/base.py", line 739, in resolve
new_obj = func(obj, *arg_vals)
File "/opt/netbox/netbox/utilities/templatetags/helpers.py", line 131, in divide
return round(x / y)
Exception Type: TypeError at /dcim/devices/79/
Exception Value: unsupported operand type(s) for /: 'str' and 'int'
rarsenault, eriktm, frictionlessDevelopments and fggec
Metadata
Metadata
Assignees
Labels
status: acceptedThis issue has been accepted for implementationThis issue has been accepted for implementationtype: bugA confirmed report of unexpected behavior in the applicationA confirmed report of unexpected behavior in the application