Compare commits
No commits in common. "5e527ef10d0230ab8c54df01755f31a5839b92d1" and "4b74f5d04b67961ca39932f6185fe3c17200a88f" have entirely different histories.
5e527ef10d
...
4b74f5d04b
4 changed files with 6 additions and 22 deletions
|
|
@ -1,9 +1,6 @@
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
* :release:`0.15.1 <2023-07-23>
|
|
||||||
* :bug:`-` remove stale disk usage stats older than 30 minutes
|
|
||||||
|
|
||||||
* :release:`0.15.0 <2023-07-23>
|
* :release:`0.15.0 <2023-07-23>
|
||||||
* :feature:`10` add disk usage details for mail and web
|
* :feature:`10` add disk usage details for mail and web
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# import celery_app to initialize it
|
# import celery_app to initialize it
|
||||||
from gnuviechadmin.celery import app as celery_app # NOQA
|
from gnuviechadmin.celery import app as celery_app # NOQA
|
||||||
|
|
||||||
__version__ = "0.15.1"
|
__version__ = "0.15.0"
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ from __future__ import absolute_import
|
||||||
|
|
||||||
import http
|
import http
|
||||||
import logging
|
import logging
|
||||||
from datetime import timedelta
|
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
|
@ -14,7 +13,6 @@ from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.mixins import PermissionRequiredMixin, UserPassesTestMixin
|
from django.contrib.auth.mixins import PermissionRequiredMixin, UserPassesTestMixin
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404, redirect
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
from django.utils import timezone
|
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views.generic import DetailView, ListView
|
from django.views.generic import DetailView, ListView
|
||||||
from django.views.generic.edit import CreateView, FormView
|
from django.views.generic.edit import CreateView, FormView
|
||||||
|
|
@ -294,15 +292,12 @@ class UploadCustomerPackageDiskUsage(APIView):
|
||||||
if request.content_type != "application/json":
|
if request.content_type != "application/json":
|
||||||
return Response("Unacceptable", status=http.HTTPStatus.BAD_REQUEST)
|
return Response("Unacceptable", status=http.HTTPStatus.BAD_REQUEST)
|
||||||
|
|
||||||
submitted_sources = set()
|
|
||||||
|
|
||||||
for row in request.data:
|
for row in request.data:
|
||||||
user = row["user"]
|
user = row["user"]
|
||||||
for key in row:
|
for key in row:
|
||||||
if key == "user":
|
if key == "user":
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
submitted_sources.add(key)
|
|
||||||
for item, size in row[key].items():
|
for item, size in row[key].items():
|
||||||
try:
|
try:
|
||||||
package = CustomerHostingPackage.objects.get(
|
package = CustomerHostingPackage.objects.get(
|
||||||
|
|
@ -320,9 +315,7 @@ class UploadCustomerPackageDiskUsage(APIView):
|
||||||
|
|
||||||
if key == "mail":
|
if key == "mail":
|
||||||
try:
|
try:
|
||||||
ma_mb = package.mailboxes.get(
|
ma_mb = package.mailboxes.get(username=item).mailaddressmailbox_set.first()
|
||||||
username=item
|
|
||||||
).mailaddressmailbox_set.first()
|
|
||||||
if ma_mb:
|
if ma_mb:
|
||||||
metric.email_address_id = ma_mb.mailaddress_id
|
metric.email_address_id = ma_mb.mailaddress_id
|
||||||
except Mailbox.DoesNotExist:
|
except Mailbox.DoesNotExist:
|
||||||
|
|
@ -334,12 +327,6 @@ class UploadCustomerPackageDiskUsage(APIView):
|
||||||
"hosting package for user %s does not exist", user
|
"hosting package for user %s does not exist", user
|
||||||
)
|
)
|
||||||
|
|
||||||
if submitted_sources:
|
|
||||||
CustomerPackageDiskUsage.objects.filter(
|
|
||||||
source__in=submitted_sources,
|
|
||||||
modified__lt=timezone.now() - timedelta(minutes=30),
|
|
||||||
).delete()
|
|
||||||
|
|
||||||
logger.info("usage data submitted by %s", request.user)
|
logger.info("usage data submitted by %s", request.user)
|
||||||
|
|
||||||
return Response("Accepted", status=http.HTTPStatus.ACCEPTED)
|
return Response("Accepted", status=http.HTTPStatus.ACCEPTED)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "gva"
|
name = "gva"
|
||||||
version = "0.15.1"
|
version = "0.15.0"
|
||||||
description = "gnuviechadmin web interface"
|
description = "gnuviechadmin web interface"
|
||||||
authors = ["Jan Dittberner <jan@dittberner.info>"]
|
authors = ["Jan Dittberner <jan@dittberner.info>"]
|
||||||
license = "AGPL-3+"
|
license = "AGPL-3+"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue