# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-06-03 20:10
from __future__ import unicode_literals

from django.db import migrations

# The new cert and subject line came as a result of gstlalcbc's old 
# certificate expiring on Oct 1, 2019. The new cert was generated 
# on Oct 7, 2019 and expires Oct 7, 2020. So this one should get 
# through O3b.

ACCOUNT = {
    'name': 'gstlalcbc',
    'new_cert': '/DC=org/DC=cilogon/C=US/O=LIGO/OU=Robots/CN=cbc.ligo.caltech.edu/CN=gstlalcbc/CN=Chad Hanna/CN=UID:chad.hanna.robot',
}


def add_cert(apps, schema_editor):
    RobotUser = apps.get_model('auth', 'User')

    # Get user
    user = RobotUser.objects.get(username=ACCOUNT['name'])

    # Create new certificate
    user.x509cert_set.create(subject=ACCOUNT['new_cert'])


def delete_cert(apps, schema_editor):
    RobotUser = apps.get_model('ligoauth', 'RobotUser')

    # Get user
    user = RobotUser.objects.get(username=ACCOUNT['name'])

    # Delete new certificate
    cert = user.x509cert_set.get(subject=ACCOUNT['new_cert'])
    cert.delete()


class Migration(migrations.Migration):

    dependencies = [
        ('ligoauth', '0051_populate_grb_managers_authgroup'),
    ]

    operations = [
        migrations.RunPython(add_cert, delete_cert),
    ]