Skip to content

Commit

Permalink
Merge 2030736 into 72afade
Browse files Browse the repository at this point in the history
  • Loading branch information
jnation3406 committed Jul 18, 2019
2 parents 72afade + 2030736 commit 15aad1d
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
14 changes: 14 additions & 0 deletions observation_portal/observations/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
from datetime import timedelta

from observation_portal.requestgroups.models import Request, Configuration
import logging

logger = logging.getLogger()

class Observation(models.Model):
STATE_CHOICES = (
Expand Down Expand Up @@ -72,6 +74,18 @@ def cancel(observations):

return deleted_observations.get('observations.Observation', 0) + canceled + aborted

@staticmethod
def delete_old_observations(cutoff):
observations = Observation.objects.filter(start__lt=cutoff, end__lt=cutoff, state='CANCELED').exclude(
configuration_statuses__state__in=['ATTEMPTED', 'FAILED', 'COMPLETED']
)
total_deleted, deleted_dict = observations.delete()
logger.warning('Deleted {} objects: {} observations, {} configuration_statuses, and {} summaries'.format(
total_deleted, deleted_dict.get('observations.Observation', 0),
deleted_dict.get('observations.ConfigurationStatus', 0),
deleted_dict.get('observations.Summary', 0)
))

def as_dict(self, no_request=False):
ret_dict = model_to_dict(self)
if no_request:
Expand Down
14 changes: 14 additions & 0 deletions observation_portal/observations/tasks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import dramatiq
import logging
from datetime import datetime, timedelta

from observation_portal.observations.models import Observation

logger = logging.getLogger(__name__)


@dramatiq.actor()
def delete_old_observations():
cutoff = datetime.utcnow() - timedelta(days=14)
logger.info(f'Deleting CANCELED observations before cutoff date {cutoff}')
Observation.delete_old_observations()
5 changes: 5 additions & 0 deletions observation_portal/task_scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from apscheduler.triggers.cron import CronTrigger

from observation_portal.requestgroups.tasks import expire_requests
from observation_portal.observations.tasks import delete_old_observations
from observation_portal.accounts.tasks import expire_access_tokens

def run():
Expand All @@ -10,6 +11,10 @@ def run():
expire_requests.send,
CronTrigger.from_crontab('*/5 * * * *')
)
scheduler.add_job(
delete_old_observations.send,
CronTrigger.from_crontab('0 * * * *')
)
scheduler.add_job(
expire_access_tokens.send,
CronTrigger.from_crontab('0 15 * * *')
Expand Down

0 comments on commit 15aad1d

Please sign in to comment.