From dd39dd4421285fceaf2eeb967744ba9356bc4ba4 Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Tue, 14 May 2019 13:45:26 -0500
Subject: [PATCH] Create robot account and cert for gweventlistener

---
 ...32_create_gweventlistener_acct_and_cert.py | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 gracedb/ligoauth/migrations/0032_create_gweventlistener_acct_and_cert.py

diff --git a/gracedb/ligoauth/migrations/0032_create_gweventlistener_acct_and_cert.py b/gracedb/ligoauth/migrations/0032_create_gweventlistener_acct_and_cert.py
new file mode 100644
index 000000000..d4a54c91b
--- /dev/null
+++ b/gracedb/ligoauth/migrations/0032_create_gweventlistener_acct_and_cert.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-14 17:48
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations
+
+ACCOUNT = {
+    'username': 'gweventlistener',
+    'email': 'rachel.scrandis@ligo.org',
+    'first_name': '',
+    'last_name': 'GwEventListener',
+}
+CERT = '/DC=org/DC=cilogon/C=US/O=LIGO/OU=Robots/CN=ldas-pcdev2.ligo.caltech.edu/CN=gweventlistener/CN=Rachel Scrandis/CN=UID:rachel.scrandis.robot'
+
+
+def create_acct_and_cert(apps, schema_editor):
+    RobotUser = apps.get_model('ligoauth', 'RobotUser')
+    Group = apps.get_model('auth', 'Group')
+
+    # Create user
+    user = RobotUser.objects.create(**ACCOUNT)
+
+    # Add user to LVC group
+    group = Group.objects.get(name=settings.LVC_GROUP)
+    group.user_set.add(user)
+
+    # Create new certificate
+    user.x509cert_set.create(subject=CERT)
+
+
+def delete_acct_and_cert(apps, schema_editor):
+    RobotUser = apps.get_model('ligoauth', 'RobotUser')
+
+    # Get user
+    user = RobotUser.objects.get(username=ACCOUNT['username'])
+
+    # Delete new certificate
+    cert = user.x509cert_set.get(subject=CERT)
+    cert.delete()
+
+    # Delete full User object
+    user.user_ptr.delete()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0031_add_cwb_cert'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_acct_and_cert, delete_acct_and_cert),
+    ]
-- 
GitLab