From ac56aa62ea5c8976cae31d09518b71e85bd9cbae Mon Sep 17 00:00:00 2001
From: Branson Stephens <branson.stephens@ligo.org>
Date: Wed, 9 Nov 2016 12:34:29 -0600
Subject: [PATCH] adding old migrations which haven't been included

---
 ligoauth/migrations/0004_add_grdinj.py        | 67 ++++++++++++++++++
 ligoauth/migrations/0005_add_robot_grdinj.py  | 69 ++++++++++++++++++
 .../migrations/0006_readd_gstlalcbc_test.py   | 69 ++++++++++++++++++
 .../migrations/0007_add_pycbclive_robot.py    | 70 +++++++++++++++++++
 ligoauth/migrations/0008_add_exttrig.py       | 68 ++++++++++++++++++
 .../0009_add_pankow_robot_and_cert.py         | 57 +++++++++++++++
 6 files changed, 400 insertions(+)
 create mode 100644 ligoauth/migrations/0004_add_grdinj.py
 create mode 100644 ligoauth/migrations/0005_add_robot_grdinj.py
 create mode 100644 ligoauth/migrations/0006_readd_gstlalcbc_test.py
 create mode 100644 ligoauth/migrations/0007_add_pycbclive_robot.py
 create mode 100644 ligoauth/migrations/0008_add_exttrig.py
 create mode 100644 ligoauth/migrations/0009_add_pankow_robot_and_cert.py

diff --git a/ligoauth/migrations/0004_add_grdinj.py b/ligoauth/migrations/0004_add_grdinj.py
new file mode 100644
index 000000000..f3cc60320
--- /dev/null
+++ b/ligoauth/migrations/0004_add_grdinj.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+
+ROBOTS = [
+        {
+            'username' : 'GRDINJ',
+            'first_name' : '',
+            'last_name' : 'GRDINJ',  # Note that the last_name acts as a display
+            'email' : 'cmbiwer@syr.edu',
+            'dns' : [
+                "/DC=org/DC=ligo/O=LIGO/OU=Services/CN=GRD_INJ/h1guardian0.cds.ligo-wa.caltech.edu",
+            ]
+        },
+]
+
+def create_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+    Group = apps.get_model('auth', 'Group')
+    lvc_group = Group.objects.get(name=settings.LVC_GROUP)
+
+    for entry in ROBOTS:
+        user, created = LocalUser.objects.get_or_create(username=entry['username'])
+        if created:
+            user.first_name = entry['first_name']
+            user.last_name = entry['last_name']
+            user.email = entry['email']
+            user.is_active = True
+            user.is_staff = False
+            user.is_superuser = False
+            user.save()
+
+        # Create the cert objects and link them to our user.
+        for dn in entry['dns']:
+            cert, created = X509Cert.objects.get_or_create(subject=dn)
+            if created:
+                cert.save()
+            cert.users.add(user)
+
+        # Add our user to the LVC group. This permission is required to
+        # do most things, but may *NOT* always be appropriate. It may
+        # also be necessary to give the robotic user permission to populate
+        # a particular pipeline.
+        lvc_group.user_set.add(user)
+
+def delete_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    for entry in ROBOTS:
+        for dn in entry['dns']:
+            X509Cert.objects.get(subject=dn).delete()
+        LocalUser.objects.get(username=entry['username']).delete()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0003_auto_20150819_1201'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_robots)
+    ]
diff --git a/ligoauth/migrations/0005_add_robot_grdinj.py b/ligoauth/migrations/0005_add_robot_grdinj.py
new file mode 100644
index 000000000..6e4b4af43
--- /dev/null
+++ b/ligoauth/migrations/0005_add_robot_grdinj.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+
+ROBOTS = [
+        {
+            'username' : 'GRD_INJ',
+            'first_name' : '',
+            'last_name' : 'GRD Injection',  # Note that the last_name acts as a display
+            'email' : 'cmbiwer@syr.edu',
+            'dns' : [
+                "/DC=org/DC=ligo/O=LIGO/OU=Services/CN=GRD_INJ/h1guardian0.cds.ligo-wa.caltech.edu",
+            ]
+        },
+]
+
+def create_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+    Group = apps.get_model('auth', 'Group')
+    lvc_group = Group.objects.get(name=settings.LVC_GROUP)
+
+    for entry in ROBOTS:
+        user, created = LocalUser.objects.get_or_create(username=entry['username'])
+        if created:
+            user.first_name = entry['first_name']
+            user.last_name = entry['last_name']
+            user.email = entry['email']
+            user.is_active = True
+            user.is_staff = False
+            user.is_superuser = False
+            user.save()
+
+        # Create the cert objects and link them to our user.
+        for dn in entry['dns']:
+            cert, created = X509Cert.objects.get_or_create(subject=dn)
+            if created:
+                cert.save()
+            cert.users.add(user)
+
+        # Add our user to the LVC group. This permission is required to
+        # do most things, but may *NOT* always be appropriate. It may
+        # also be necessary to give the robotic user permission to populate
+        # a particular pipeline.
+        lvc_group.user_set.add(user)
+        print "Added User GRD_INJ"
+
+def delete_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    for entry in ROBOTS:
+        for dn in entry['dns']:
+            X509Cert.objects.get(subject=dn).delete()
+        LocalUser.objects.get(username=entry['username']).delete()
+
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0004_add_grdinj'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_robots)
+    ]
diff --git a/ligoauth/migrations/0006_readd_gstlalcbc_test.py b/ligoauth/migrations/0006_readd_gstlalcbc_test.py
new file mode 100644
index 000000000..6e36f12d7
--- /dev/null
+++ b/ligoauth/migrations/0006_readd_gstlalcbc_test.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+
+
+ROBOTS = [
+        {
+            'username' : 'gstlalcbc',
+            'first_name' : '',
+            'last_name' : 'gstlalcbc',  # Note that the last_name acts as a display
+            'email' : 'crh184@psu.edu',
+            'dns' : [
+                "/DC=org/DC=ligo/O=LIGO/OU=Services/CN=gstlalcbc/cbc.ligo.caltech.edu",
+            ]
+        },
+]
+
+def create_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+    Group = apps.get_model('auth', 'Group')
+    lvc_group = Group.objects.get(name=settings.LVC_GROUP)
+
+    for entry in ROBOTS:
+        user, created = LocalUser.objects.get_or_create(username=entry['username'])
+        if created:
+            user.first_name = entry['first_name']
+            user.last_name = entry['last_name']
+            user.email = entry['email']
+            user.is_active = True
+            user.is_staff = False
+            user.is_superuser = False
+            user.save()
+
+        # Create the cert objects and link them to our user.
+        for dn in entry['dns']:
+            cert, created = X509Cert.objects.get_or_create(subject=dn)
+            if created:
+                cert.save()
+            cert.users.add(user)
+
+        # Add our user to the LVC group. This permission is required to
+        # do most things, but may *NOT* always be appropriate. It may
+        # also be necessary to give the robotic user permission to populate
+        # a particular pipeline.
+        lvc_group.user_set.add(user)
+        print "Added User gstlalcbc!"
+
+def delete_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    for entry in ROBOTS:
+        for dn in entry['dns']:
+            X509Cert.objects.get(subject=dn).delete()
+        LocalUser.objects.get(username=entry['username']).delete()
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0005_add_robot_grdinj'),
+    ]
+
+
+    operations = [
+            migrations.RunPython(create_robots)
+    ]
diff --git a/ligoauth/migrations/0007_add_pycbclive_robot.py b/ligoauth/migrations/0007_add_pycbclive_robot.py
new file mode 100644
index 000000000..91389fd9f
--- /dev/null
+++ b/ligoauth/migrations/0007_add_pycbclive_robot.py
@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+
+ROBOTS = [
+        {
+            'username' : 'pycbclive',
+            'first_name' : '',
+            'last_name' : 'PyCBC Live',  # Note that the last_name acts as a display
+            'email' : 'alex.nitz@aei.mpg.de',
+            'dns' : [
+                "/DC=org/DC=ligo/O=LIGO/OU=Services/CN=pycbclive/pycbclive.atlas.aei.uni-hannover.de",
+            ]
+        },
+]
+
+
+def create_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+    Group = apps.get_model('auth', 'Group')
+    lvc_group = Group.objects.get(name=settings.LVC_GROUP)
+
+    for entry in ROBOTS:
+        user, created = LocalUser.objects.get_or_create(username=entry['username'])
+        if created:
+            user.first_name = entry['first_name']
+            user.last_name = entry['last_name']
+            user.email = entry['email']
+            user.is_active = True
+            user.is_staff = False
+            user.is_superuser = False
+            user.save()
+
+        # Create the cert objects and link them to our user.
+        for dn in entry['dns']:
+            cert, created = X509Cert.objects.get_or_create(subject=dn)
+            if created:
+                cert.save()
+            cert.users.add(user)
+
+        # Add our user to the LVC group. This permission is required to
+        # do most things, but may *NOT* always be appropriate. It may
+        # also be necessary to give the robotic user permission to populate
+        # a particular pipeline.
+        lvc_group.user_set.add(user)
+
+
+def delete_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    for entry in ROBOTS:
+        for dn in entry['dns']:
+            X509Cert.objects.get(subject=dn).delete()
+        LocalUser.objects.get(username=entry['username']).delete()
+
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0006_readd_gstlalcbc_test'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_robots),
+    ]
diff --git a/ligoauth/migrations/0008_add_exttrig.py b/ligoauth/migrations/0008_add_exttrig.py
new file mode 100644
index 000000000..f225d5744
--- /dev/null
+++ b/ligoauth/migrations/0008_add_exttrig.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+
+ROBOTS = [
+        {
+            'username' : 'exttrig',
+            'first_name' : '',
+            'last_name' : 'exttrig',  # Note that the last_name acts as a display
+            'email' : 'kthorne@ligo-la.caltech.edu',
+            'dns' : [
+                "/DC=org/DC=ligo/O=LIGO/OU=Services/CN=exttrig/cds-output.ligo-la.caltech.edu",
+            ]
+        },
+]
+
+
+def create_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+    Group = apps.get_model('auth', 'Group')
+    lvc_group = Group.objects.get(name=settings.LVC_GROUP)
+
+    for entry in ROBOTS:
+        user, created = LocalUser.objects.get_or_create(username=entry['username'])
+        if created:
+            user.first_name = entry['first_name']
+            user.last_name = entry['last_name']
+            user.email = entry['email']
+            user.is_active = True
+            user.is_staff = False
+            user.is_superuser = False
+            user.save()
+
+        # Create the cert objects and link them to our user.
+        for dn in entry['dns']:
+            cert, created = X509Cert.objects.get_or_create(subject=dn)
+            if created:
+                cert.save()
+            cert.users.add(user)
+
+        # Add our user to the LVC group. This permission is required to
+        # do most things, but may *NOT* always be appropriate. It may
+        # also be necessary to give the robotic user permission to populate
+        # a particular pipeline.
+        lvc_group.user_set.add(user)
+
+
+def delete_robots(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    for entry in ROBOTS:
+        for dn in entry['dns']:
+            X509Cert.objects.get(subject=dn).delete()
+        LocalUser.objects.get(username=entry['username']).delete()
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0007_add_pycbclive_robot'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_robots),
+    ]
diff --git a/ligoauth/migrations/0009_add_pankow_robot_and_cert.py b/ligoauth/migrations/0009_add_pankow_robot_and_cert.py
new file mode 100644
index 000000000..89cb35435
--- /dev/null
+++ b/ligoauth/migrations/0009_add_pankow_robot_and_cert.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+# Default imports
+from __future__ import unicode_literals
+from django.db import migrations, models
+from django.conf import settings
+
+ROBOT = {'username': 'pankow',
+         'first_name': '',
+         'last_name': 'Pankow Robot',
+         'email': 'pankow@gravity.phys.uwm.edu',
+         'is_active': True,
+         'is_staff': False,
+         'is_superuser': False
+}
+CERT_SUBJ = '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=pankow/pcdev2.cgca.uwm.edu'
+
+def create_robot(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth','LocalUser')
+    X509Cert = apps.get_model('ligoauth','X509Cert')
+    Group = apps.get_model('auth','Group')
+    lvc_group = Group.objects.get(name=settings.LVC_GROUP)
+
+    # get or create user
+    user, created = LocalUser.objects.get_or_create(username=ROBOT['username'])
+    if created:
+        for key in ROBOT.keys():
+            setattr(user, key, ROBOT[key])
+        user.save()
+
+    # Add user to LVC group.
+    lvc_group.user_set.add(user)
+    lvc_group.save()
+
+    # get or create certificate, add user
+    cert, c_created = X509Cert.objects.get_or_create(subject=CERT_SUBJ)
+    cert.users.add(user)
+    cert.save()
+
+def delete_robot(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth','LocalUser')
+    X509Cert = apps.get_model('ligoauth','X509Cert')
+
+    # Delete user.
+    LocalUser.objects.get(username=ROBOT['username']).delete()
+
+    # Delete cert.
+    X509Cert.objects.get(subject=CERT_SUBJ).delete()
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0008_add_exttrig'),
+    ]
+
+    operations = [
+        migrations.RunPython(create_robot, delete_robot)
+    ]
-- 
GitLab