Retrieve database disk resource usage
This commit is contained in:
parent
0695099980
commit
52ec1660f6
|
@ -8,7 +8,6 @@ from django.utils.translation import gettext_lazy as _
|
|||
from . import settings as musician_settings
|
||||
from .utils import get_bootstraped_percent
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -176,7 +175,7 @@ class DatabaseService(OrchestraModel):
|
|||
break
|
||||
|
||||
details = {
|
||||
'usage': float(resource_disk['used']),
|
||||
'used': float(resource_disk['used']),
|
||||
'total': resource_disk['allocated'],
|
||||
'unit': resource_disk['unit'],
|
||||
}
|
||||
|
@ -185,7 +184,7 @@ class DatabaseService(OrchestraModel):
|
|||
|
||||
|
||||
percent = get_bootstraped_percent(
|
||||
details['usage'],
|
||||
details['used'],
|
||||
details['total']
|
||||
)
|
||||
details['percent'] = percent
|
||||
|
@ -291,7 +290,7 @@ class Address(OrchestraModel):
|
|||
break
|
||||
|
||||
mailbox_details = {
|
||||
'usage': float(resource_disk['used']),
|
||||
'used': float(resource_disk['used']),
|
||||
'total': resource_disk['allocated'],
|
||||
'unit': resource_disk['unit'],
|
||||
}
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
{% comment %}
|
||||
Resource usage rendered as bootstrap progress bar
|
||||
Resource used rendered as bootstrap progress bar
|
||||
|
||||
Expected parameter: detail
|
||||
Expected structure: dictionary or object with attributes:
|
||||
- usage (int): 125
|
||||
- used (int): 125
|
||||
- total (int): 200
|
||||
- unit (string): 'MB'
|
||||
- percent (int: [0, 25, 50, 75, 100]: 75
|
||||
{% endcomment %}
|
||||
|
||||
<div class="text-center">
|
||||
{% if detail %}
|
||||
{{ detail.usage }} {{ detail.unit }}
|
||||
{% if detail and detail.used %}
|
||||
{{ detail.used|floatformat }} {{ detail.unit }}
|
||||
{% else %}
|
||||
N/A
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-secondary w-{{ detail.percent }}" role="progressbar" aria-valuenow="{{ detail.usage }}"
|
||||
<div class="progress-bar bg-secondary w-{{ detail.percent }}" role="progressbar" aria-valuenow="{{ detail.used }}"
|
||||
aria-valuemin="0" aria-valuemax="{{ detail.total }}"></div>
|
||||
</div>
|
||||
|
|
|
@ -99,7 +99,7 @@ class DashboardView(CustomContextMixin, UserTokenRequiredMixin, TemplateView):
|
|||
return {
|
||||
'verbose_name': _('Mailbox usage'),
|
||||
'data': {
|
||||
'usage': total_mailboxes,
|
||||
'used': total_mailboxes,
|
||||
'total': allowed_mailboxes,
|
||||
'alert': alert,
|
||||
'unit': 'mailboxes',
|
||||
|
@ -424,6 +424,21 @@ class DatabasesView(ServiceListView):
|
|||
'title': _('Databases'),
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super().get_queryset()
|
||||
# TODO(@slamora): optimize query
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from orchestra.contrib.resources.models import Resource, ResourceData
|
||||
ctype = ContentType.objects.get_for_model(self.model)
|
||||
disk_resource = Resource.objects.get(name='disk', content_type=ctype)
|
||||
for db in qs:
|
||||
try:
|
||||
db.usage = db.resource_set.get(resource=disk_resource)
|
||||
except ResourceData.DoesNotExist:
|
||||
db.usage = ResourceData(resource=disk_resource)
|
||||
return qs
|
||||
|
||||
|
||||
class SaasListView(ServiceListView):
|
||||
service_class = SaasService
|
||||
|
|
Loading…
Reference in a new issue