From f7b0ea1a5e8338bdcf794966ae32459dcd5d0053 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Thu, 22 Nov 2018 17:54:37 -0500 Subject: [PATCH] Add a new column to display available volume group size Currently there is no easy way for user to know the available space in each logical volume group. This commit adds a new column for each logical volume group to show the size of available space. Change-Id: Iba4c22587ba962596cf50e75cbc9cdd548301acc Closes-Bug: 1804711 Depends-On: https://review.openstack.org/#/c/619656 Signed-off-by: Wei Zhou --- .../starlingx_dashboard/api/sysinv.py | 11 +++++++++++ .../dashboards/admin/inventory/storages/tables.py | 11 ++++++----- .../_detail_local_volume_group_overview.html | 4 +++- 3 files changed, 20 insertions(+), 6 deletions(-) mode change 100755 => 100644 starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/api/sysinv.py mode change 100755 => 100644 starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/storages/tables.py diff --git a/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/api/sysinv.py b/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/api/sysinv.py old mode 100755 new mode 100644 index ef1b2ab2..4bbc1c64 --- a/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/api/sysinv.py +++ b/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/api/sysinv.py @@ -394,6 +394,7 @@ class LocalVolumeGroup(base.APIResourceWrapper): 'lvm_max_pv', 'lvm_cur_pv', 'lvm_vg_size', + 'lvm_vg_avail_size', 'lvm_vg_total_pe', 'lvm_vg_free_pe', 'created_at', @@ -402,6 +403,16 @@ class LocalVolumeGroup(base.APIResourceWrapper): def __init__(self, apiresource): super(LocalVolumeGroup, self).__init__(apiresource) + @property + def lvm_vg_size_gib(self): + return math.floor(float( + self.lvm_vg_size) / (1024 ** 3) * 1000) / 1000.0 + + @property + def lvm_vg_avail_size_gib(self): + return math.floor(float( + self.lvm_vg_avail_size) / (1024 ** 3) * 1000) / 1000.0 + class LocalVolumeGroupParam(object): def __init__(self, lvg_id, key, val): diff --git a/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/storages/tables.py b/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/storages/tables.py old mode 100755 new mode 100644 index 301aad9c..f37ac4c4 --- a/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/storages/tables.py +++ b/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/storages/tables.py @@ -9,7 +9,6 @@ import re from django.core.urlresolvers import reverse # noqa from django import template -from django.template import defaultfilters as filters from django.utils.translation import string_concat # noqa from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ungettext_lazy @@ -463,9 +462,10 @@ class LocalVolumeGroupsTable(tables.DataTable): verbose_name=('State')) access = tables.Column('lvm_vg_access', verbose_name=('Access')) - size = tables.Column('lvm_vg_size', - verbose_name=('Size'), - filters=(filters.filesizeformat,)) + size = tables.Column('lvm_vg_size_gib', + verbose_name=('Size (GiB)')) + avail_size = tables.Column('lvm_vg_avail_size_gib', + verbose_name=('Avail Size (GiB)')) pvs = tables.Column('lvm_cur_pv', verbose_name=('Current Physical Volumes')) lvs = tables.Column('lvm_cur_lv', @@ -483,7 +483,8 @@ class LocalVolumeGroupsTable(tables.DataTable): class Meta(object): name = "localvolumegroups" verbose_name = ("Local Volume Groups") - columns = ('name', 'state', 'access', 'size', 'pvs', 'lvs',) + columns = ('name', 'state', 'access', 'size', 'avail_size', + 'pvs', 'lvs',) multi_select = False row_actions = (RemoveLocalVolumeGroup,) table_actions = (AddLocalVolumeGroup, CreateDiskProfile) diff --git a/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/templates/inventory/_detail_local_volume_group_overview.html b/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/templates/inventory/_detail_local_volume_group_overview.html index cf7eca9e..2ca02d1b 100755 --- a/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/templates/inventory/_detail_local_volume_group_overview.html +++ b/starlingx-dashboard/starlingx-dashboard/starlingx_dashboard/dashboards/admin/inventory/templates/inventory/_detail_local_volume_group_overview.html @@ -17,7 +17,9 @@
{% trans "Size" %}
-
{{ lvg.lvm_vg_size | filesizeformat }}
+
{{ lvg.lvm_vg_size_gib }}
+
{% trans "Available Size" %}
+
{{ lvg.lvm_vg_avail_size_gib }}
{% trans "Max Local Volumes" %}
{{ lvg.lvm_max_lv }}
{% trans "Current Local Volumes" %}