From 136cb502be45f69ccaf190f20570014f241034e6 Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Fri, 4 Jan 2019 12:49:58 -0600 Subject: [PATCH] Add acct and certs for deepclean (ML noise cleaning) --- ...0021_create_deepclean_account_and_certs.py | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 gracedb/ligoauth/migrations/0021_create_deepclean_account_and_certs.py diff --git a/gracedb/ligoauth/migrations/0021_create_deepclean_account_and_certs.py b/gracedb/ligoauth/migrations/0021_create_deepclean_account_and_certs.py new file mode 100644 index 000000000..172d0102d --- /dev/null +++ b/gracedb/ligoauth/migrations/0021_create_deepclean_account_and_certs.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.16 on 2019-01-04 18:39 +from __future__ import unicode_literals + +from django.db import migrations + +ACCOUNT = { + 'username': 'deepclean', + 'email': 'michael.coughlin@ligo.org', + 'first_name': '', + 'last_name': 'LIGO/Virgo ML Noise Cleaning', +} + +CERTS = [ + '/DC=org/DC=cilogon/C=US/O=LIGO/OU=Robots/CN=ldas-pcdev2.ligo-wa.caltech.edu/CN=deepclean_lho/CN=Michael Coughlin/CN=UID:michael.coughlin.robot', + '/DC=org/DC=cilogon/C=US/O=LIGO/OU=Robots/CN=ldas-pcdev2.ligo-la.caltech.edu/CN=deepclean_llo/CN=Michael Coughlin/CN=UID:michael.coughlin.robot', +] + + +def create_account_and_certs(apps, schema_editor): + RobotUser = apps.get_model('ligoauth', 'RobotUser') + X509Cert = apps.get_model('ligoauth', 'X509Cert') + + # Create user + user = RobotUser.objects.create(**ACCOUNT) + + # Create X509 certificates + for subject in CERTS: + user.x509cert_set.create(subject=subject) + + +def delete_account_and_certs(apps, schema_editor): + RobotUser = apps.get_model('ligoauth', 'RobotUser') + X509Cert = apps.get_model('ligoauth', 'X509Cert') + + # Get user + user = RobotUser.objects.get(username=ACCOUNT['username']) + + # Delete certs + for cert in user.x509cert_set.filter(subject__in=CERTS): + cert.delete() + + # Delete full User object + user.user_ptr.delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('ligoauth', '0020_remove_old_dashboard_certs'), + ] + + operations = [ + migrations.RunPython(create_account_and_certs, + delete_account_and_certs), + ] -- GitLab