Merge "Change the Health status piechart to Power status"

This commit is contained in:
Jenkins 2014-07-15 15:44:23 +00:00 committed by Gerrit Code Review
commit 685190a437
3 changed files with 24 additions and 4 deletions

View File

@ -512,7 +512,7 @@ class Node(base.APIResourceWrapper):
return _("Free") return _("Free")
def filter_nodes(nodes, healthy=None): def filter_nodes(nodes, healthy=None, power_state=None):
"""Filters the list of Nodes and returns the filtered list. """Filters the list of Nodes and returns the filtered list.
:param nodes: list of tuskar_ui.api.node.Node objects to filter :param nodes: list of tuskar_ui.api.node.Node objects to filter
@ -521,6 +521,10 @@ def filter_nodes(nodes, healthy=None):
only the healthly ones (healthy=True), only the healthly ones (healthy=True),
or only those in an error state (healthy=False) or only those in an error state (healthy=False)
:type healthy: None or bool :type healthy: None or bool
:param power_state: retrieve all Nodes (power_state=None),
only those that are running (power_state=True),
or only those that are stopped (power_state=False)
:type power_state: None or bool
:return: list of filtered tuskar_ui.api.node.Node objects :return: list of filtered tuskar_ui.api.node.Node objects
:rtype: list :rtype: list
""" """
@ -533,4 +537,11 @@ def filter_nodes(nodes, healthy=None):
else: else:
nodes = [node for node in nodes nodes = [node for node in nodes
if node.power_state in error_states] if node.power_state in error_states]
if power_state is not None:
if power_state:
nodes = [node for node in nodes if node.power_state == 'on']
else:
nodes = [node for node in nodes if node.power_state != 'on']
return nodes return nodes

View File

@ -32,18 +32,27 @@ class OverviewTab(tabs.Tab):
free_nodes = api.node.Node.list(request, associated=False) free_nodes = api.node.Node.list(request, associated=False)
deployed_nodes_error = api.node.filter_nodes( deployed_nodes_error = api.node.filter_nodes(
deployed_nodes, healthy=False) deployed_nodes, healthy=False)
deployed_nodes_down = api.node.filter_nodes(
deployed_nodes, power_state=False)
free_nodes_error = api.node.filter_nodes(free_nodes, healthy=False) free_nodes_error = api.node.filter_nodes(free_nodes, healthy=False)
free_nodes_down = api.node.filter_nodes(free_nodes, power_state=False)
total_nodes = deployed_nodes + free_nodes total_nodes = deployed_nodes + free_nodes
total_nodes_error = deployed_nodes_error + free_nodes_error total_nodes_error = deployed_nodes_error + free_nodes_error
total_nodes_down = deployed_nodes_down + free_nodes_down
total_nodes_healthy = api.node.filter_nodes(total_nodes, healthy=True) total_nodes_healthy = api.node.filter_nodes(total_nodes, healthy=True)
total_nodes_up = api.node.filter_nodes(total_nodes, power_state=True)
return { return {
'total_nodes_healthy': total_nodes_healthy, 'total_nodes_healthy': total_nodes_healthy,
'total_nodes_up': total_nodes_up,
'total_nodes_error': total_nodes_error, 'total_nodes_error': total_nodes_error,
'total_nodes_down': total_nodes_down,
'deployed_nodes': deployed_nodes, 'deployed_nodes': deployed_nodes,
'deployed_nodes_error': deployed_nodes_error, 'deployed_nodes_error': deployed_nodes_error,
'deployed_nodes_down': deployed_nodes_down,
'free_nodes': free_nodes, 'free_nodes': free_nodes,
'free_nodes_error': free_nodes_error, 'free_nodes_error': free_nodes_error,
'free_nodes_down': free_nodes_down,
} }

View File

@ -71,13 +71,13 @@
</div> </div>
<div class="span4"> <div class="span4">
<div class="widget"> <div class="widget">
<h2>{% trans 'Provisioning Status' %}</h2> <h2>{% trans 'Free Nodes' %}</h2>
<div class="d3_pie_chart_distribution" data-used="Deployed={{ deployed_nodes|length }}|Free={{ free_nodes|length }}"></div> <div class="d3_pie_chart_distribution" data-used="Deployed={{ deployed_nodes|length }}|Free={{ free_nodes|length }}"></div>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<div class="widget"> <div class="widget">
<h2>{% trans 'Health Status' %}</h2> <h2>{% trans 'Power Status' %}</h2>
<div class="d3_pie_chart_distribution" data-used="Healthy={{ total_nodes_healthy|length }}|Defective={{ total_nodes_error|length }}"></div> <div class="d3_pie_chart_distribution" data-used="Running={{ total_nodes_up|length }}|Stopped={{ total_nodes_down|length }}"></div>
</div> </div>
</div> </div>
</div> </div>