Add clearsessions and cleartokens system jobs

* add system job for gathering insights analytics
* enforce schedule enablement with analytics setting
* remove celery beat analytics job
* keep analytics schedule & setting enablement in sync in API
* handles updating schedules for multiple sys job schedules
* add analytics setting & schedule test
* rm ui modal from collection sys job
This commit is contained in:
Christian Adams
2019-05-01 12:16:15 -04:00
parent 2addf20907
commit 8ca0c1b992
9 changed files with 247 additions and 60 deletions

View File

@@ -59,7 +59,7 @@ class Command(BaseCommand):
if len(pks_to_delete):
ActivityStream.objects.filter(pk__in=pks_to_delete).delete()
n_deleted_items += len(pks_to_delete)
self.logger.log(99, "Removed %d items", n_deleted_items)
self.logger.info("Removed {} items".format(n_deleted_items))
def handle(self, *args, **options):
self.verbosity = int(options.get('verbosity', 1))

View File

@@ -0,0 +1,25 @@
import logging
from django.core import management
from django.core.management.base import BaseCommand
from django.contrib.sessions.models import Session
class Command(BaseCommand):
def init_logging(self):
log_levels = dict(enumerate([logging.ERROR, logging.INFO,
logging.DEBUG, 0]))
self.logger = logging.getLogger('awx.main.commands.cleanup_sessions')
self.logger.setLevel(log_levels.get(self.verbosity, 0))
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(message)s'))
self.logger.addHandler(handler)
self.logger.propagate = False
def execute(self, *args, **options):
self.verbosity = int(options.get('verbosity', 1))
self.init_logging()
total_sessions = Session.objects.all().count()
management.call_command('clearsessions')
self.logger.info("Expired Sessions deleted {}".format(total_sessions - Session.objects.all().count()))

View File

@@ -0,0 +1,28 @@
import logging
from django.core import management
from django.core.management.base import BaseCommand
from awx.main.models import OAuth2AccessToken
from oauth2_provider.models import RefreshToken
class Command(BaseCommand):
def init_logging(self):
log_levels = dict(enumerate([logging.ERROR, logging.INFO,
logging.DEBUG, 0]))
self.logger = logging.getLogger('awx.main.commands.cleanup_tokens')
self.logger.setLevel(log_levels.get(self.verbosity, 0))
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(message)s'))
self.logger.addHandler(handler)
self.logger.propagate = False
def execute(self, *args, **options):
self.verbosity = int(options.get('verbosity', 1))
self.init_logging()
total_accesstokens = OAuth2AccessToken.objects.all().count()
total_refreshtokens = RefreshToken.objects.all().count()
management.call_command('cleartokens')
self.logger.info("Expired OAuth 2 Access Tokens deleted: {}".format(total_accesstokens - OAuth2AccessToken.objects.all().count()))
self.logger.info("Expired OAuth 2 Refresh Tokens deleted: {}".format(total_refreshtokens - RefreshToken.objects.all().count()))