HostMetric task param check

This commit is contained in:
Martin Slemr 2023-04-05 09:54:36 +02:00 committed by Hao Liu
parent 2b63b55b34
commit 20817789bd

View File

@ -892,13 +892,20 @@ class HostMetric(models.Model):
@classmethod
def cleanup_task(cls, months_ago):
last_automation_before = now() - dateutil.relativedelta.relativedelta(months=months_ago)
try:
months_ago = int(months_ago)
if months_ago <= 0:
raise ValueError()
logger.info(f'Cleanup [HostMetric]: soft-deleting records last automated before {last_automation_before}')
HostMetric.objects.filter(last_automation__lt=last_automation_before).update(
deleted=True, deleted_counter=models.F('deleted_counter') + 1, last_deleted=now()
)
settings.CLEANUP_HOST_METRICS_LAST_TS = now()
last_automation_before = now() - dateutil.relativedelta.relativedelta(months=months_ago)
logger.info(f'Cleanup [HostMetric]: soft-deleting records last automated before {last_automation_before}')
HostMetric.active_objects.filter(last_automation__lt=last_automation_before).update(
deleted=True, deleted_counter=models.F('deleted_counter') + 1, last_deleted=now()
)
settings.CLEANUP_HOST_METRICS_LAST_TS = now()
except (TypeError, ValueError):
logger.error(f"Cleanup [HostMetric]: months_ago({months_ago}) has to be a positive integer value")
class HostMetricSummaryMonthly(models.Model):