1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Cleaned up logic for calculating power draw

This commit is contained in:
Jeremy Stretch
2019-06-19 10:51:53 -04:00
parent ce9f7a8ddc
commit 1a5aaf54dd
7 changed files with 108 additions and 88 deletions

View File

@@ -349,24 +349,36 @@
<tr>
<th>Input</th>
<th>Outlets</th>
<th>Allocated/Max (W)</th>
<th>Available (VA)</th>
<th>Utilization (Allocated)</th>
<th>Allocated</th>
<th>Available</th>
<th>Utilization</th>
</tr>
{% for pp in power_ports %}
{% for leg in pp.get_power_stats %}
{% with utilization=pp.get_power_draw powerfeed=pp.connected_endpoint %}
<tr>
{% if leg.name %}
<td style="padding-left: 20px">{{ leg.name }}</td>
<td>{{ pp }}</td>
<td>{{ utilization.outlet_count }}</td>
<td>{{ utilization.allocated }}VA</td>
{% if powerfeed %}
<td>{{ powerfeed.available_power }}VA</td>
<td>{% utilization_graph utilization.allocated|percentage:powerfeed.available_power %}</td>
{% else %}
<td>{{ pp }}</td>
<td class="text-muted">&mdash;</td>
<td class="text-muted">&mdash;</td>
{% endif %}
<td>{{ leg.outlets|placeholder }}</td>
<td>{{ leg.allocated_draw_total }} / {{ leg.maximum_draw_total }}</td>
<td>{{ leg.available_power }}</td>
<td>{% utilization_graph leg.allocated_utilization %}</td>
</tr>
{% endfor %}
{% for leg in utilization.legs %}
<tr>
<td style="padding-left: 20px">Leg {{ leg.name }}</td>
<td>{{ leg.outlet_count }}</td>
<td>{{ leg.allocated }}</td>
<td>{{ powerfeed.available_power|divide:3 }}VA</td>
{% with phase_available=powerfeed.available_power|divide:3 %}
<td>{% utilization_graph leg.allocated|percentage:phase_available %}</td>
{% endwith %}
</tr>
{% endfor %}
{% endwith %}
{% endfor %}
</table>
</div>

View File

@@ -106,6 +106,19 @@
{% endif %}
</td>
</tr>
<tr>
<td>Utilization (Allocated)</td>
{% with utilization=powerfeed.connected_endpoint.get_power_draw %}
{% if utilization %}
<td>
{{ utilization.allocated }}VA / {{ powerfeed.available_power }}VA
{% utilization_graph utilization.allocated|percentage:powerfeed.available_power %}
</td>
{% else %}
<td class="text-muted">N/A</td>
{% endif %}
{% endwith %}
</tr>
</table>
</div>
</div>
@@ -138,30 +151,5 @@
</table>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<strong>Power Utilization</strong>
</div>
<table class="table table-hover panel-body">
<tr>
<th>Outlets</th>
<th>Allocated/Max (W)</th>
<th>Available (VA)</th>
<th>Utilization (Allocated)</th>
</tr>
{% for leg in powerfeed.get_power_stats %}
<tr>
<td>{{ leg.outlets|placeholder }}</td>
<td>{{ leg.allocated_draw_total }} / {{ leg.maximum_draw_total }}</td>
<td>{{ leg.available_power }}</td>
<td>{% utilization_graph leg.allocated_utilization %}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="col-md-5">
</div>
</div>
{% endblock %}

View File

@@ -223,7 +223,13 @@
<td>
<span class="label label-{{ powerfeed.get_type_class }}">{{ powerfeed.get_type_display }}</span>
</td>
<td>{% utilization_graph powerfeed.get_power_stats.0.allocated_utilization %}</td>
{% with power_port=powerfeed.connected_endpoint %}
{% if power_port %}
<td>{% utilization_graph power_port.get_power_draw.allocated|percentage:powerfeed.available_power %}</td>
{% else %}
<td class="text-muted">N/A</td>
{% endif %}
{% endwith %}
</tr>
{% endfor %}
</table>