Added FK to playbook to the Task and Result models.
Change-Id: I7c40239cac40a41f120df9c7adcd434765518813
This commit is contained in:
parent
6158d79b34
commit
031e757979
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 2.1.1 on 2018-10-14 16:18
|
||||
# Generated by Django 2.1.1 on 2018-10-15 14:51
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
@ -127,6 +127,7 @@ class Migration(migrations.Migration):
|
|||
('status', models.CharField(choices=[('ok', 'ok'), ('failed', 'failed'), ('skipped', 'skipped'), ('unreachable', 'unreachable'), ('changed', 'changed'), ('ignored', 'ignored'), ('unknown', 'unknown')], default='unknown', max_length=25)),
|
||||
('content', models.BinaryField(max_length=4294967295)),
|
||||
('host', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Host')),
|
||||
('playbook', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Playbook')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'results',
|
||||
|
@ -166,6 +167,7 @@ class Migration(migrations.Migration):
|
|||
('completed', models.BooleanField(default=False)),
|
||||
('file', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='api.File')),
|
||||
('play', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='api.Play')),
|
||||
('playbook', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to='api.Playbook')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'tasks',
|
||||
|
|
|
@ -173,6 +173,7 @@ class Task(Duration):
|
|||
|
||||
play = models.ForeignKey(Play, on_delete=models.CASCADE, related_name="tasks")
|
||||
file = models.ForeignKey(File, on_delete=models.CASCADE, related_name="tasks")
|
||||
playbook = models.ForeignKey(Playbook, on_delete=models.CASCADE, related_name="tasks")
|
||||
|
||||
def __str__(self):
|
||||
return "<Task %s:%s>" % (self.name, self.id)
|
||||
|
@ -262,6 +263,7 @@ class Result(Duration):
|
|||
content = models.BinaryField(max_length=(2 ** 32) - 1)
|
||||
host = models.ForeignKey(Host, on_delete=models.CASCADE, related_name="results")
|
||||
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name="results")
|
||||
playbook = models.ForeignKey(Playbook, on_delete=models.CASCADE, related_name="results")
|
||||
|
||||
def __str__(self):
|
||||
return "<Result %s, %s>" % (self.id, self.status)
|
||||
|
|
|
@ -86,6 +86,7 @@ class TaskFactory(factory.DjangoModelFactory):
|
|||
tags = utils.compressed_obj(TASK_TAGS)
|
||||
play = factory.SubFactory(PlayFactory)
|
||||
file = factory.SubFactory(FileFactory)
|
||||
playbook = factory.SubFactory(PlaybookFactory)
|
||||
|
||||
|
||||
class HostFactory(factory.DjangoModelFactory):
|
||||
|
@ -106,6 +107,7 @@ class ResultFactory(factory.DjangoModelFactory):
|
|||
status = "ok"
|
||||
host = factory.SubFactory(HostFactory)
|
||||
task = factory.SubFactory(TaskFactory)
|
||||
playbook = factory.SubFactory(PlaybookFactory)
|
||||
|
||||
|
||||
class RecordFactory(factory.DjangoModelFactory):
|
||||
|
|
|
@ -29,7 +29,9 @@ class ResultTestCase(APITestCase):
|
|||
def test_result_serializer(self):
|
||||
host = factories.HostFactory()
|
||||
task = factories.TaskFactory()
|
||||
serializer = serializers.ResultSerializer(data={"status": "skipped", "host": host.id, "task": task.id})
|
||||
serializer = serializers.ResultSerializer(
|
||||
data={"status": "skipped", "host": host.id, "task": task.id, "playbook": task.playbook.id}
|
||||
)
|
||||
serializer.is_valid()
|
||||
result = serializer.save()
|
||||
result.refresh_from_db()
|
||||
|
@ -41,7 +43,7 @@ class ResultTestCase(APITestCase):
|
|||
host = factories.HostFactory()
|
||||
task = factories.TaskFactory()
|
||||
serializer = serializers.ResultSerializer(
|
||||
data={"host": host.id, "task": task.id, "content": factories.RESULT_CONTENTS}
|
||||
data={"host": host.id, "task": task.id, "content": factories.RESULT_CONTENTS, "playbook": task.playbook.id}
|
||||
)
|
||||
serializer.is_valid()
|
||||
result = serializer.save()
|
||||
|
@ -75,7 +77,14 @@ class ResultTestCase(APITestCase):
|
|||
task = factories.TaskFactory()
|
||||
self.assertEqual(0, models.Result.objects.count())
|
||||
request = self.client.post(
|
||||
"/api/v1/results", {"status": "ok", "host": host.id, "task": task.id, "content": factories.RESULT_CONTENTS}
|
||||
"/api/v1/results",
|
||||
{
|
||||
"status": "ok",
|
||||
"host": host.id,
|
||||
"task": task.id,
|
||||
"content": factories.RESULT_CONTENTS,
|
||||
"playbook": task.playbook.id,
|
||||
},
|
||||
)
|
||||
self.assertEqual(201, request.status_code)
|
||||
self.assertEqual(1, models.Result.objects.count())
|
||||
|
|
|
@ -41,6 +41,7 @@ class TaskTestCase(APITestCase):
|
|||
"handler": False,
|
||||
"play": play.id,
|
||||
"file": file.id,
|
||||
"playbook": play.playbook.id,
|
||||
}
|
||||
)
|
||||
serializer.is_valid()
|
||||
|
@ -61,6 +62,7 @@ class TaskTestCase(APITestCase):
|
|||
"play": play.id,
|
||||
"file": file.id,
|
||||
"tags": factories.TASK_TAGS,
|
||||
"playbook": play.playbook.id,
|
||||
}
|
||||
)
|
||||
serializer.is_valid()
|
||||
|
@ -104,6 +106,7 @@ class TaskTestCase(APITestCase):
|
|||
"completed": True,
|
||||
"play": play.id,
|
||||
"file": file.id,
|
||||
"playbook": play.playbook.id,
|
||||
},
|
||||
)
|
||||
self.assertEqual(201, request.status_code)
|
||||
|
|
Loading…
Reference in New Issue