diff --git a/gracedb/ligoauth/migrations/0011_update_virgo_detchar_cert.py b/gracedb/ligoauth/migrations/0011_update_virgo_detchar_cert.py new file mode 100644 index 0000000000000000000000000000000000000000..9ac5a1e6c9b5d74d5a8539a3012945f46a6715fd --- /dev/null +++ b/gracedb/ligoauth/migrations/0011_update_virgo_detchar_cert.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.16 on 2018-10-01 16:50 +from __future__ import unicode_literals + +from django.db import migrations + +ACCOUNT = { + 'username': 'virgo_detchar', + 'old_cert': '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=Virgodetchar/lscgw.virgo.infn.it', + 'new_cert': '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=virgodetchar/virgo.infn.it', +} + +def update_certs(apps, schema_editor): + LocalUser = apps.get_model('ligoauth', 'LocalUser') + X509Cert = apps.get_model('ligoauth', 'X509Cert') + + # Get user + user = LocalUser.objects.get(username=ACCOUNT['username']) + + # Delete old certificate + old_cert = X509Cert.objects.get(subject=ACCOUNT['old_cert']) + old_cert.delete() + + # Create new cert and associate with user + new_cert = X509Cert.objects.create(subject=ACCOUNT['new_cert']) + user.x509cert_set.add(new_cert) + + +def revert_certs(apps, schema_editor): + LocalUser = apps.get_model('ligoauth', 'LocalUser') + X509Cert = apps.get_model('ligoauth', 'X509Cert') + + # Get user + user = LocalUser.objects.get(username=ACCOUNT['username']) + + # Delete new certificate + new_cert = X509Cert.objects.get(subject=ACCOUNT['new_cert']) + new_cert.delete() + + # Create new cert and associate with user + old_cert = X509Cert.objects.create(subject=ACCOUNT['old_cert']) + user.x509cert_set.add(old_cert) + + +class Migration(migrations.Migration): + + dependencies = [ + ('ligoauth', '0010_update_pycbc_cert'), + ] + + operations = [ + migrations.RunPython(update_certs, revert_certs), + ]