From ce8985ebd83c7369db286336c53c223a1101c545 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 18 Aug 2021 22:08:36 +0200 Subject: [PATCH] #9 - new route for manually triggering the cleanup --- src/logic/database/Schemas.py | 6 ++++++ src/logic/routers/GeneralRouter.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/logic/database/Schemas.py b/src/logic/database/Schemas.py index 78bc9c8..5137f72 100644 --- a/src/logic/database/Schemas.py +++ b/src/logic/database/Schemas.py @@ -38,6 +38,12 @@ class DatabaseInfo(BaseModel): } +class DatabaseCleanupInfo(BaseModel): + before: DatabaseInfo + after: DatabaseInfo + difference: DatabaseInfo + + class MinMax(BaseModel): min: float = None max: float = None diff --git a/src/logic/routers/GeneralRouter.py b/src/logic/routers/GeneralRouter.py index 81938bc..43b7478 100644 --- a/src/logic/routers/GeneralRouter.py +++ b/src/logic/routers/GeneralRouter.py @@ -23,3 +23,21 @@ async def version(): response_model=Schemas.DatabaseInfo) async def databaseInfo(db: Session = Depends(get_database)): return DatabaseInfoProvider.get_database_info(db) + + +@router.get('/databaseCleanup', + summary='Cleans up the database by enforcing the configured retention policies', + response_model=Schemas.DatabaseCleanupInfo) +async def databaseCleanup(db: Session = Depends(get_database)): + infoBefore = DatabaseInfoProvider.get_database_info(db) + + # TODO + + infoAfter = DatabaseInfoProvider.get_database_info(db) + + deletedMeasurements = infoBefore.number_of_measurements - infoAfter.number_of_measurements + sizeFreed = infoBefore.size_on_disk_in_mb - infoAfter.size_on_disk_in_mb + infoDifference = Schemas.DatabaseInfo(number_of_measurements=deletedMeasurements, size_on_disk_in_mb=sizeFreed) + + return Schemas.DatabaseCleanupInfo(before=infoBefore, after=infoAfter, difference=infoDifference) + -- GitLab