83 lines
2.7 KiB
Python
83 lines
2.7 KiB
Python
import random
|
|
import logging
|
|
|
|
from django.db import migrations, models
|
|
from django.utils.timezone import now, timedelta
|
|
|
|
logger = logging.getLogger('awx.main.migrations')
|
|
|
|
__all__ = ['create_collection_jt', 'create_clearsessions_jt', 'create_cleartokens_jt']
|
|
|
|
'''
|
|
These methods are called by migrations to create various system job templates
|
|
|
|
Create default system job templates if not present. Create default schedules
|
|
only if new system job templates were created (i.e. new database).
|
|
'''
|
|
|
|
|
|
def create_clearsessions_jt(apps, schema_editor):
|
|
|
|
SystemJobTemplate = apps.get_model('main', 'SystemJobTemplate')
|
|
Schedule = apps.get_model('main', 'Schedule')
|
|
ContentType = apps.get_model('contenttypes', 'ContentType')
|
|
sjt_ct = ContentType.objects.get_for_model(SystemJobTemplate)
|
|
now_dt = now()
|
|
schedule_time = now_dt.strftime('%Y%m%dT%H%M%SZ')
|
|
|
|
sjt, created = SystemJobTemplate.objects.get_or_create(
|
|
job_type='cleanup_sessions',
|
|
defaults=dict(
|
|
name='Cleanup Expired Sessions',
|
|
description='Cleans out expired browser sessions',
|
|
polymorphic_ctype=sjt_ct,
|
|
created=now_dt,
|
|
modified=now_dt,
|
|
),
|
|
)
|
|
if created:
|
|
sched = Schedule(
|
|
name='Cleanup Expired Sessions',
|
|
rrule='DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=1' % schedule_time,
|
|
description='Cleans out expired browser sessions',
|
|
enabled=True,
|
|
created=now_dt,
|
|
modified=now_dt,
|
|
extra_data={},
|
|
)
|
|
sched.unified_job_template = sjt
|
|
sched.save()
|
|
|
|
|
|
def create_cleartokens_jt(apps, schema_editor):
|
|
|
|
SystemJobTemplate = apps.get_model('main', 'SystemJobTemplate')
|
|
Schedule = apps.get_model('main', 'Schedule')
|
|
ContentType = apps.get_model('contenttypes', 'ContentType')
|
|
sjt_ct = ContentType.objects.get_for_model(SystemJobTemplate)
|
|
now_dt = now()
|
|
schedule_time = now_dt.strftime('%Y%m%dT%H%M%SZ')
|
|
|
|
sjt, created = SystemJobTemplate.objects.get_or_create(
|
|
job_type='cleanup_tokens',
|
|
defaults=dict(
|
|
name='Cleanup Expired OAuth 2 Tokens',
|
|
description='Cleanup expired OAuth 2 access and refresh tokens',
|
|
polymorphic_ctype=sjt_ct,
|
|
created=now_dt,
|
|
modified=now_dt,
|
|
),
|
|
)
|
|
if created:
|
|
sched = Schedule(
|
|
name='Cleanup Expired OAuth 2 Tokens',
|
|
rrule='DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;COUNT=1' % schedule_time,
|
|
description='Removes expired OAuth 2 access and refresh tokens',
|
|
enabled=True,
|
|
created=now_dt,
|
|
modified=now_dt,
|
|
extra_data={},
|
|
)
|
|
sched.unified_job_template = sjt
|
|
sched.save()
|