From 99ec0e70e7443f5cdfc69ef53328722bc4b3f45c Mon Sep 17 00:00:00 2001
From: tinytmy
Date: Mon, 2 Feb 2015 15:06:42 +0800
Subject: [PATCH] Add ram-hours in overview page
In the admin and project overview page, there has cpu-hours,
disk-hours, but has no ram-hours. This patch add ram-hours for
overview page.
Change-Id: I4eaf7cd7639de570058bdb793a95045a0be5d224
Closes-bug:#1415775
---
horizon/templates/horizon/common/_usage_summary.html | 1 +
openstack_dashboard/api/nova.py | 7 ++++++-
.../admin/overview/templates/overview/usage.csv | 1 +
openstack_dashboard/dashboards/admin/overview/tests.py | 8 ++++++--
.../project/overview/templates/overview/usage.csv | 1 +
openstack_dashboard/usage/tables.py | 7 ++++++-
6 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/horizon/templates/horizon/common/_usage_summary.html b/horizon/templates/horizon/common/_usage_summary.html
index dd4a6a5b1d..9b4ec6dde3 100644
--- a/horizon/templates/horizon/common/_usage_summary.html
+++ b/horizon/templates/horizon/common/_usage_summary.html
@@ -21,5 +21,6 @@
{% trans "Active RAM:" %} {{ usage.summary.memory_mb|mb_float_format|default:'0' }}
{% trans "This Period's VCPU-Hours:" %} {{ usage.summary.vcpus|floatformat:2|default:'0' }}
{% trans "This Period's GB-Hours:" %} {{ usage.summary.disk_gb_hours|floatformat:2|default:'0' }}
+ {% trans "This Period's RAM-Hours:" %} {{ usage.summary.memory_mb_hours|floatformat:2|default:'0' }}
diff --git a/openstack_dashboard/api/nova.py b/openstack_dashboard/api/nova.py
index 71dfd03d23..45c8d4068a 100644
--- a/openstack_dashboard/api/nova.py
+++ b/openstack_dashboard/api/nova.py
@@ -155,7 +155,8 @@ class NovaUsage(base.APIResourceWrapper):
'vcpus': getattr(self, "total_vcpus_usage", 0),
'vcpu_hours': self.vcpu_hours,
'local_gb': self.local_gb,
- 'disk_gb_hours': self.disk_gb_hours}
+ 'disk_gb_hours': self.disk_gb_hours,
+ 'memory_mb_hours': self.memory_mb_hours}
@property
def total_active_instances(self):
@@ -184,6 +185,10 @@ class NovaUsage(base.APIResourceWrapper):
def disk_gb_hours(self):
return getattr(self, "total_local_gb_usage", 0)
+ @property
+ def memory_mb_hours(self):
+ return getattr(self, "total_memory_mb_usage", 0)
+
class SecurityGroup(base.APIResourceWrapper):
"""Wrapper around novaclient.security_groups.SecurityGroup.
diff --git a/openstack_dashboard/dashboards/admin/overview/templates/overview/usage.csv b/openstack_dashboard/dashboards/admin/overview/templates/overview/usage.csv
index 533ad61d45..5a54e1271f 100644
--- a/openstack_dashboard/dashboards/admin/overview/templates/overview/usage.csv
+++ b/openstack_dashboard/dashboards/admin/overview/templates/overview/usage.csv
@@ -2,5 +2,6 @@
{% trans "Active Instances" %}:,{{ usage.summary.instances }}
{% trans "Total VCPU Usage (Hours)" %}:,{{ usage.summary.vcpu_hours|floatformat:2 }}
{% trans "Total Active RAM (MB)" %}:,{{ usage.summary.memory_mb }}
+{% trans "Total Memory Usage (Hours)" %}:,{{ usage.summary.memory_mb_hours|floatformat:2 }}
{% trans "Total Disk Size (GB)" %}:,{{ usage.summary.local_gb }}
{% trans "Total Disk Usage (Hours)" %}:,{{ usage.summary.disk_gb_hours|floatformat:2 }}
diff --git a/openstack_dashboard/dashboards/admin/overview/tests.py b/openstack_dashboard/dashboards/admin/overview/tests.py
index 6dc3e151fb..7873d65b7a 100644
--- a/openstack_dashboard/dashboards/admin/overview/tests.py
+++ b/openstack_dashboard/dashboards/admin/overview/tests.py
@@ -112,12 +112,14 @@ class UsageViewTests(test.BaseAdminViewTests):
%s |
%.2f |
%.2f |
+ %.2f |
''' % (usage_list[0].vcpus,
sizeformat.diskgbformat(usage_list[0].disk_gb_hours),
sizeformat.mb_float_format(usage_list[0].memory_mb),
usage_list[0].vcpu_hours,
- usage_list[0].total_local_gb_usage)
+ usage_list[0].total_local_gb_usage,
+ usage_list[0].memory_mb_hours)
)
# test for deleted project
@@ -129,12 +131,14 @@ class UsageViewTests(test.BaseAdminViewTests):
%s |
%.2f |
%.2f |
+ %.2f |
''' % (usage_list[1].vcpus,
sizeformat.diskgbformat(usage_list[1].disk_gb_hours),
sizeformat.mb_float_format(usage_list[1].memory_mb),
usage_list[1].vcpu_hours,
- usage_list[1].total_local_gb_usage)
+ usage_list[1].total_local_gb_usage,
+ usage_list[1].memory_mb_hours)
)
if nova_stu_enabled:
diff --git a/openstack_dashboard/dashboards/project/overview/templates/overview/usage.csv b/openstack_dashboard/dashboards/project/overview/templates/overview/usage.csv
index d97be50cf4..1253bb3911 100644
--- a/openstack_dashboard/dashboards/project/overview/templates/overview/usage.csv
+++ b/openstack_dashboard/dashboards/project/overview/templates/overview/usage.csv
@@ -3,5 +3,6 @@
{% trans "Active Instances" %}:,{{ usage.summary.instances }}
{% trans "Total VCPU Usage (Hours)" %}:,{{ usage.summary.vcpu_hours|floatformat:2 }}
{% trans "Total Active RAM (MB)" %}:,{{ usage.summary.memory_mb }}
+{% trans "Total Memory Usage (Hours)" %}:,{{ usage.summary.memory_mb_hours|floatformat:2 }}
{% trans "Total Disk Size (GB)" %}:,{{ usage.summary.local_gb }}
{% trans "Total Disk Usage (Hours)" %}:,{{ usage.summary.disk_gb_hours|floatformat:2 }}
diff --git a/openstack_dashboard/usage/tables.py b/openstack_dashboard/usage/tables.py
index 5db4e9e232..298911a038 100644
--- a/openstack_dashboard/usage/tables.py
+++ b/openstack_dashboard/usage/tables.py
@@ -48,6 +48,11 @@ class GlobalUsageTable(BaseUsageTable):
help_text=_("Total disk usage (GB * "
"Hours Used) for the project"),
filters=(lambda v: floatformat(v, 2),))
+ memory_hours = tables.Column('memory_mb_hours',
+ verbose_name=_("Memory MB Hours"),
+ help_text=_("Total memory usage (MB * "
+ "Hours Used) for the project"),
+ filters=(lambda v: floatformat(v, 2),))
def get_object_id(self, datum):
return datum.tenant_id
@@ -57,7 +62,7 @@ class GlobalUsageTable(BaseUsageTable):
hidden_title = False
verbose_name = _("Usage")
columns = ("project", "vcpus", "disk", "memory",
- "hours", "disk_hours")
+ "hours", "disk_hours", "memory_hours")
table_actions = (CSVSummary,)
multi_select = False