Add Nullable Lab Field to Resources
authorSawyer Bergeron <sbergeron@iol.unh.edu>
Wed, 10 Jan 2018 16:44:23 +0000 (11:44 -0500)
committerSawyer Bergeron <sbergeron@iol.unh.edu>
Wed, 17 Jan 2018 21:42:33 +0000 (21:42 +0000)
Jira: PHAROS-347

Resources are now possible to associate with lab instances upon creation

Change-Id: Id8abbcc448a6d840d55e4bf5130dbec22c8bc58f

src/account/migrations/0002_auto_20180110_1636.py [moved from src/account/migrations/0002_auto_20180109_2002.py with 88% similarity]
src/account/migrations/0003_auto_20180110_1639.py [new file with mode: 0644]
src/account/models.py
src/api/serializers.py
src/dashboard/migrations/0003_resource_resource_lab.py [new file with mode: 0644]
src/dashboard/models.py

@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Generated by Django 1.10 on 2018-01-09 20:02
+# Generated by Django 1.10 on 2018-01-10 16:36
 from __future__ import unicode_literals
 
 from django.conf import settings
@@ -18,7 +18,7 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='Lab',
             fields=[
-                ('id', models.AutoField(primary_key=True, serialize=False)),
+                ('id', models.CharField(max_length=200, primary_key=True, serialize=False)),
                 ('name', models.CharField(max_length=200, unique=True)),
                 ('contact_email', models.EmailField(blank=True, max_length=200, null=True)),
                 ('contact_phone', models.CharField(blank=True, max_length=20, null=True)),
diff --git a/src/account/migrations/0003_auto_20180110_1639.py b/src/account/migrations/0003_auto_20180110_1639.py
new file mode 100644 (file)
index 0000000..d0bc4d6
--- /dev/null
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10 on 2018-01-10 16:39
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0002_auto_20180110_1636'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='lab',
+            name='id',
+        ),
+        migrations.AlterField(
+            model_name='lab',
+            name='name',
+            field=models.CharField(max_length=200, primary_key=True, serialize=False, unique=True),
+        ),
+    ]
index 1e493b9..aad4c50 100644 (file)
@@ -36,9 +36,8 @@ class UserProfile(models.Model):
         return self.user.username
 
 class Lab(models.Model):
-    id = models.AutoField(primary_key=True)
     lab_user = models.OneToOneField(User, on_delete=models.CASCADE)
-    name = models.CharField(max_length=200, unique=True, null=False, blank=False)
+    name = models.CharField(max_length=200, primary_key=True, unique=True, null=False, blank=False)
     contact_email = models.EmailField(max_length=200, null=True, blank=True)
     contact_phone = models.CharField(max_length=20, null=True, blank=True)
 
index 794e139..ad9b800 100644 (file)
@@ -33,7 +33,7 @@ class ServerSerializer(serializers.ModelSerializer):
 class ResourceSerializer(serializers.ModelSerializer):
     class Meta:
         model = Resource
-        fields = ('id', 'name', 'description', 'url', 'server_set', 'dev_pod')
+        fields = ('id', 'name', 'description', 'resource_lab', 'url', 'server_set', 'dev_pod')
 
 class ResourceStatusSerializer(serializers.ModelSerializer):
     class Meta:
diff --git a/src/dashboard/migrations/0003_resource_resource_lab.py b/src/dashboard/migrations/0003_resource_resource_lab.py
new file mode 100644 (file)
index 0000000..fff93fd
--- /dev/null
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10 on 2018-01-10 16:36
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0002_auto_20180110_1636'),
+        ('dashboard', '0002_auto_20170505_0815'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='resource',
+            name='resource_lab',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lab_resource_set', to='account.Lab'),
+        ),
+    ]
index 3de7db3..ff55232 100644 (file)
@@ -15,6 +15,7 @@ from django.db import models
 from django.utils import timezone
 
 from jenkins.models import JenkinsSlave
+from account.models import Lab
 
 
 class Resource(models.Model):
@@ -22,6 +23,7 @@ class Resource(models.Model):
     name = models.CharField(max_length=100, unique=True)
     description = models.CharField(max_length=300, blank=True, null=True)
     url = models.CharField(max_length=100, blank=True, null=True)
+    resource_lab = models.ForeignKey(Lab, related_name='lab_resource_set', null=True, blank=True)
     owner = models.ForeignKey(User, related_name='user_lab_owner', null=True, blank=True)
     vpn_users = models.ManyToManyField(User, related_name='user_vpn_users', blank=True)
     slave = models.ForeignKey(JenkinsSlave, on_delete=models.DO_NOTHING, null=True, blank=True)