Use "GiB" and "gibibyte" labels in share panels
Data storage sizes are typically measured in gibibytes (GiB). To avoid confusion, Manila-ui panels should use these terms instead of gigabytes and GB. Change-Id: I98a0be1397fbf937c26fa033b96c2e8bcf5d4e27 Closes-bug: #1516839
This commit is contained in:
parent
3ee0ed698d
commit
fae7cf312d
@ -28,7 +28,7 @@ from manila_ui.dashboards.project.shares.snapshots \
|
|||||||
|
|
||||||
|
|
||||||
def get_size(share):
|
def get_size(share):
|
||||||
return _("%sGB") % share.size
|
return _("%sGiB") % share.size
|
||||||
|
|
||||||
|
|
||||||
class CreateShareType(tables.LinkAction):
|
class CreateShareType(tables.LinkAction):
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
<hr class="header_rule">
|
<hr class="header_rule">
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{% trans "Size" %}</dt>
|
<dt>{% trans "Size" %}</dt>
|
||||||
<dd>{{ snapshot.size }} {% trans "GB" %}</dd>
|
<dd>{{ snapshot.size }} {% trans "GiB" %}</dd>
|
||||||
<dt>{% trans "Created" %}</dt>
|
<dt>{% trans "Created" %}</dt>
|
||||||
<dd>{{ snapshot.created_at|parse_date }}</dd>
|
<dd>{{ snapshot.created_at|parse_date }}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
@ -40,7 +40,7 @@ class CreateForm(forms.SelfHandlingForm):
|
|||||||
label=_("Description"), required=False,
|
label=_("Description"), required=False,
|
||||||
widget=forms.Textarea(attrs={'rows': 3}))
|
widget=forms.Textarea(attrs={'rows': 3}))
|
||||||
share_proto = forms.ChoiceField(label=_("Share Protocol"), required=True)
|
share_proto = forms.ChoiceField(label=_("Share Protocol"), required=True)
|
||||||
size = forms.IntegerField(min_value=1, label=_("Size (GB)"))
|
size = forms.IntegerField(min_value=1, label=_("Size (GiB)"))
|
||||||
share_type = forms.ChoiceField(
|
share_type = forms.ChoiceField(
|
||||||
label=_("Share Type"), required=True,
|
label=_("Share Type"), required=True,
|
||||||
widget=forms.Select(
|
widget=forms.Select(
|
||||||
@ -94,7 +94,7 @@ class CreateForm(forms.SelfHandlingForm):
|
|||||||
'data-switch-on': 'source',
|
'data-switch-on': 'source',
|
||||||
'data-source-snapshot': _('Snapshot')},
|
'data-source-snapshot': _('Snapshot')},
|
||||||
data_attrs=('size', 'name'),
|
data_attrs=('size', 'name'),
|
||||||
transform=lambda x: "%s (%sGB)" % (x.name, x.size)),
|
transform=lambda x: "%s (%sGiB)" % (x.name, x.size)),
|
||||||
required=False)
|
required=False)
|
||||||
self.fields['metadata'] = forms.CharField(
|
self.fields['metadata'] = forms.CharField(
|
||||||
label=_("Metadata"), required=False,
|
label=_("Metadata"), required=False,
|
||||||
@ -120,7 +120,7 @@ class CreateForm(forms.SelfHandlingForm):
|
|||||||
pass
|
pass
|
||||||
self.fields['size'].help_text = _(
|
self.fields['size'].help_text = _(
|
||||||
'Share size must be equal to or greater than the snapshot '
|
'Share size must be equal to or greater than the snapshot '
|
||||||
'size (%sGB)') % snapshot.size
|
'size (%sGiB)') % snapshot.size
|
||||||
del self.fields['share_source_type']
|
del self.fields['share_source_type']
|
||||||
except Exception:
|
except Exception:
|
||||||
exceptions.handle(request,
|
exceptions.handle(request,
|
||||||
@ -191,7 +191,7 @@ class CreateForm(forms.SelfHandlingForm):
|
|||||||
snapshot_id = snapshot.id
|
snapshot_id = snapshot.id
|
||||||
if (data['size'] < snapshot.size):
|
if (data['size'] < snapshot.size):
|
||||||
error_message = _('The share size cannot be less than the '
|
error_message = _('The share size cannot be less than the '
|
||||||
'snapshot size (%sGB)') % snapshot.size
|
'snapshot size (%sGiB)') % snapshot.size
|
||||||
raise ValidationError(error_message)
|
raise ValidationError(error_message)
|
||||||
else:
|
else:
|
||||||
if type(data['size']) is str:
|
if type(data['size']) is str:
|
||||||
@ -345,13 +345,13 @@ class ExtendForm(forms.SelfHandlingForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
orig_size = forms.IntegerField(
|
orig_size = forms.IntegerField(
|
||||||
label=_("Current Size (GB)"),
|
label=_("Current Size (GiB)"),
|
||||||
widget=forms.TextInput(attrs={'readonly': 'readonly'}),
|
widget=forms.TextInput(attrs={'readonly': 'readonly'}),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
new_size = forms.IntegerField(
|
new_size = forms.IntegerField(
|
||||||
label=_("New Size (GB)"),
|
label=_("New Size (GiB)"),
|
||||||
)
|
)
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
@ -368,8 +368,8 @@ class ExtendForm(forms.SelfHandlingForm):
|
|||||||
availableGB = (usages['maxTotalShareGigabytes'] -
|
availableGB = (usages['maxTotalShareGigabytes'] -
|
||||||
usages['totalShareGigabytesUsed'])
|
usages['totalShareGigabytesUsed'])
|
||||||
if availableGB < (new_size - orig_size):
|
if availableGB < (new_size - orig_size):
|
||||||
message = _('Share cannot be extended to %(req)iGB as '
|
message = _('Share cannot be extended to %(req)iGiB as '
|
||||||
'you only have %(avail)iGB of your quota '
|
'you only have %(avail)iGiB of your quota '
|
||||||
'available.')
|
'available.')
|
||||||
params = {'req': new_size, 'avail': availableGB + orig_size}
|
params = {'req': new_size, 'avail': availableGB + orig_size}
|
||||||
self._errors["new_size"] = self.error_class([message % params])
|
self._errors["new_size"] = self.error_class([message % params])
|
||||||
|
@ -157,7 +157,7 @@ class UpdateRow(tables.Row):
|
|||||||
|
|
||||||
|
|
||||||
def get_size(share):
|
def get_size(share):
|
||||||
return _("%sGB") % share.size
|
return _("%sGiB") % share.size
|
||||||
|
|
||||||
|
|
||||||
class SharesTableBase(tables.DataTable):
|
class SharesTableBase(tables.DataTable):
|
||||||
|
@ -153,7 +153,7 @@ class ShareViewTests(test.TestCase):
|
|||||||
|
|
||||||
self.assertContains(res, "<dd>%s</dd>" % share.name, 1, 200)
|
self.assertContains(res, "<dd>%s</dd>" % share.name, 1, 200)
|
||||||
self.assertContains(res, "<dd>%s</dd>" % share.id, 1, 200)
|
self.assertContains(res, "<dd>%s</dd>" % share.id, 1, 200)
|
||||||
self.assertContains(res, "<dd>%s GB</dd>" % share.size, 1, 200)
|
self.assertContains(res, "<dd>%s GiB</dd>" % share.size, 1, 200)
|
||||||
self.assertContains(res, "<dd>%s</dd>" % share.share_proto, 1, 200)
|
self.assertContains(res, "<dd>%s</dd>" % share.share_proto, 1, 200)
|
||||||
self.assertContains(res, "<dd>%s</dd>" % share.availability_zone, 1,
|
self.assertContains(res, "<dd>%s</dd>" % share.availability_zone, 1,
|
||||||
200)
|
200)
|
||||||
|
@ -43,7 +43,7 @@ class UpdateRow(tables.Row):
|
|||||||
|
|
||||||
|
|
||||||
def get_size(snapshot):
|
def get_size(snapshot):
|
||||||
return _("%sGB") % snapshot.size
|
return _("%sGiB") % snapshot.size
|
||||||
|
|
||||||
|
|
||||||
class CreateSnapshot(tables.LinkAction):
|
class CreateSnapshot(tables.LinkAction):
|
||||||
|
@ -82,7 +82,7 @@ class SnapshotSnapshotViewTests(test.TestCase):
|
|||||||
self.assertContains(res,
|
self.assertContains(res,
|
||||||
"<dd><a href=\"/admin/shares/%s/\">%s</a></dd>" %
|
"<dd><a href=\"/admin/shares/%s/\">%s</a></dd>" %
|
||||||
(snapshot.share_id, share.name), 1, 200)
|
(snapshot.share_id, share.name), 1, 200)
|
||||||
self.assertContains(res, "<dd>%s GB</dd>" % snapshot.size, 1, 200)
|
self.assertContains(res, "<dd>%s GiB</dd>" % snapshot.size, 1, 200)
|
||||||
|
|
||||||
self.assertNoMessages()
|
self.assertNoMessages()
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
<hr class="header_rule">
|
<hr class="header_rule">
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{% trans "Size" %}</dt>
|
<dt>{% trans "Size" %}</dt>
|
||||||
<dd>{{ share.size }} {% trans "GB" %}</dd>
|
<dd>{{ share.size }} {% trans "GiB" %}</dd>
|
||||||
<dt>{% trans "Protocol" %}</dt>
|
<dt>{% trans "Protocol" %}</dt>
|
||||||
<dd>{{ share.share_proto }}</dd>
|
<dd>{{ share.share_proto }}</dd>
|
||||||
{% if share.share_type %}
|
{% if share.share_type %}
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
<h3>{% trans "Share Limits" %}</h3>
|
<h3>{% trans "Share Limits" %}</h3>
|
||||||
|
|
||||||
<div class="quota_title clearfix">
|
<div class="quota_title clearfix">
|
||||||
<strong>{% trans "Total Gigabytes" %} <span>({{ usages.totalShareGigabytesUsed|intcomma }} {% trans "GB" %})</span></strong>
|
<strong>{% trans "Total Gibibytes" %} <span>({{ usages.totalShareGigabytesUsed|intcomma }} {% trans "GiB" %})</span></strong>
|
||||||
<p>{{ usages.maxTotalShareGigabytes|quota:_("GB")|intcomma }}</p>
|
<p>{{ usages.maxTotalShareGigabytes|quota:_("GiB")|intcomma }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="quota_size" data-progress-indicator-for="id_size" data-quota-limit="{{ usages.maxTotalShareGigabytes }}" data-quota-used="{{ usages.totalShareGigabytesUsed }}" class="quota_bar">
|
<div id="quota_size" data-progress-indicator-for="id_size" data-quota-limit="{{ usages.maxTotalShareGigabytes }}" data-quota-used="{{ usages.totalShareGigabytesUsed }}" class="quota_bar">
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
<h3>{% trans "Share Limits" %}</h3>
|
<h3>{% trans "Share Limits" %}</h3>
|
||||||
|
|
||||||
<div class="quota_title clearfix">
|
<div class="quota_title clearfix">
|
||||||
<strong>{% trans "Total Gigabytes" %} <span>({{ usages.totalGigabytesUsed|intcomma }} {% trans "GB" %})</span></strong>
|
<strong>{% trans "Total Gibibytes" %} <span>({{ usages.totalGigabytesUsed|intcomma }} {% trans "GiB" %})</span></strong>
|
||||||
<p>{{ usages.maxTotalShareGigabytes|quota:_("GB")|intcomma }}</p>
|
<p>{{ usages.maxTotalShareGigabytes|quota:_("GiB")|intcomma }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="quota_size" data-progress-indicator-for="id_size" data-quota-limit="{{ usages.maxTotalShareGigabytes }}" data-quota-used="{{ usages.totalGigabytesUsed }}" class="quota_bar">
|
<div id="quota_size" data-progress-indicator-for="id_size" data-quota-limit="{{ usages.maxTotalShareGigabytes }}" data-quota-used="{{ usages.totalGigabytesUsed }}" class="quota_bar">
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
<h3>{% trans "Share Limits" %}</h3>
|
<h3>{% trans "Share Limits" %}</h3>
|
||||||
|
|
||||||
<div class="quota_title clearfix">
|
<div class="quota_title clearfix">
|
||||||
<strong>{% trans "Total Gigabytes" %} <span>({{ usages.totalShareGigabytesUsed|intcomma }} {% trans "GB" %})</span></strong>
|
<strong>{% trans "Total Gibibytes" %} <span>({{ usages.totalShareGigabytesUsed|intcomma }} {% trans "GiB" %})</span></strong>
|
||||||
<p>{{ usages.maxTotalShareGigabytes|quota:_("GB")|intcomma }}</p>
|
<p>{{ usages.maxTotalShareGigabytes|quota:_("GiB")|intcomma }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="quota_size" data-progress-indicator-for="id_size" data-quota-limit="{{ usages.maxTotalShareGigabytes }}" data-quota-used="{{ usages.totalShareGigabytesUsed }}" class="quota_bar">
|
<div id="quota_size" data-progress-indicator-for="id_size" data-quota-limit="{{ usages.maxTotalShareGigabytes }}" data-quota-used="{{ usages.totalShareGigabytesUsed }}" class="quota_bar">
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
<hr class="header_rule">
|
<hr class="header_rule">
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{% trans "Size" %}</dt>
|
<dt>{% trans "Size" %}</dt>
|
||||||
<dd>{{ snapshot.size }} {% trans "GB" %}</dd>
|
<dd>{{ snapshot.size }} {% trans "GiB" %}</dd>
|
||||||
<dt>{% trans "Created" %}</dt>
|
<dt>{% trans "Created" %}</dt>
|
||||||
<dd>{{ snapshot.created_at|parse_date }}</dd>
|
<dd>{{ snapshot.created_at|parse_date }}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
Loading…
Reference in New Issue
Block a user