Merge "model: change playbook.completed to playbook.status"
This commit is contained in:
commit
fd9ebc2795
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 2.1.1 on 2018-10-15 14:51
|
||||
# Generated by Django 2.1.2 on 2018-10-16 00:43
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
@ -91,7 +91,7 @@ class Migration(migrations.Migration):
|
|||
('ended', models.DateTimeField(blank=True, null=True)),
|
||||
('name', models.CharField(max_length=255, null=True)),
|
||||
('ansible_version', models.CharField(max_length=255)),
|
||||
('completed', models.BooleanField(default=False)),
|
||||
('status', models.CharField(choices=[('unknown', 'unknown'), ('running', 'running'), ('completed', 'completed'), ('failed', 'failed')], default='unknown', max_length=25)),
|
||||
('arguments', models.BinaryField(max_length=4294967295)),
|
||||
('file', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='playbooks', to='api.File')),
|
||||
('files', models.ManyToManyField(to='api.File')),
|
||||
|
|
|
@ -109,9 +109,16 @@ class Playbook(Duration):
|
|||
class Meta:
|
||||
db_table = "playbooks"
|
||||
|
||||
# A playbook in ARA can be running (in progress), completed (succeeded) or failed.
|
||||
UNKNOWN = "unknown"
|
||||
RUNNING = "running"
|
||||
COMPLETED = "completed"
|
||||
FAILED = "failed"
|
||||
STATUS = ((UNKNOWN, "unknown"), (RUNNING, "running"), (COMPLETED, "completed"), (FAILED, "failed"))
|
||||
|
||||
name = models.CharField(max_length=255, null=True)
|
||||
ansible_version = models.CharField(max_length=255)
|
||||
completed = models.BooleanField(default=False)
|
||||
status = models.CharField(max_length=25, choices=STATUS, default=UNKNOWN)
|
||||
arguments = models.BinaryField(max_length=(2 ** 32) - 1)
|
||||
file = models.ForeignKey(File, on_delete=models.CASCADE, related_name="playbooks")
|
||||
files = models.ManyToManyField(File)
|
||||
|
|
|
@ -59,7 +59,7 @@ class PlaybookFactory(factory.DjangoModelFactory):
|
|||
model = models.Playbook
|
||||
|
||||
ansible_version = "2.4.0"
|
||||
completed = True
|
||||
status = "running"
|
||||
arguments = utils.compressed_obj(PLAYBOOK_ARGUMENTS)
|
||||
file = factory.SubFactory(FileFactory)
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ class PlaybookTestCase(APITestCase):
|
|||
playbook.refresh_from_db()
|
||||
self.assertEqual(playbook.name, "serializer-playbook")
|
||||
self.assertEqual(playbook.ansible_version, "2.4.0")
|
||||
self.assertEqual(playbook.status, "unknown")
|
||||
|
||||
def test_playbook_serializer_compress_arguments(self):
|
||||
serializer = serializers.PlaybookSerializer(
|
||||
|
@ -82,18 +83,31 @@ class PlaybookTestCase(APITestCase):
|
|||
self.assertEqual(0, models.Playbook.objects.count())
|
||||
request = self.client.post(
|
||||
"/api/v1/playbooks",
|
||||
{"ansible_version": "2.4.0", "file": {"path": "/path/playbook.yml", "content": factories.FILE_CONTENTS}},
|
||||
{
|
||||
"ansible_version": "2.4.0",
|
||||
"status": "running",
|
||||
"file": {"path": "/path/playbook.yml", "content": factories.FILE_CONTENTS},
|
||||
},
|
||||
)
|
||||
self.assertEqual(201, request.status_code)
|
||||
self.assertEqual(1, models.Playbook.objects.count())
|
||||
self.assertEqual(request.data["status"], "running")
|
||||
|
||||
def test_partial_update_playbook(self):
|
||||
playbook = factories.PlaybookFactory()
|
||||
self.assertNotEqual("2.3.0", playbook.ansible_version)
|
||||
request = self.client.patch("/api/v1/playbooks/%s" % playbook.id, {"ansible_version": "2.3.0"})
|
||||
self.assertNotEqual("completed", playbook.status)
|
||||
request = self.client.patch("/api/v1/playbooks/%s" % playbook.id, {"status": "completed"})
|
||||
self.assertEqual(200, request.status_code)
|
||||
playbook_updated = models.Playbook.objects.get(id=playbook.id)
|
||||
self.assertEqual("2.3.0", playbook_updated.ansible_version)
|
||||
self.assertEqual("completed", playbook_updated.status)
|
||||
|
||||
def test_update_wrong_playbook_status(self):
|
||||
playbook = factories.PlaybookFactory()
|
||||
self.assertNotEqual("wrong", playbook.status)
|
||||
request = self.client.patch("/api/v1/playbooks/%s" % playbook.id, {"status": "wrong"})
|
||||
self.assertEqual(400, request.status_code)
|
||||
playbook_updated = models.Playbook.objects.get(id=playbook.id)
|
||||
self.assertNotEqual("wrong", playbook_updated.status)
|
||||
|
||||
def test_get_playbook(self):
|
||||
playbook = factories.PlaybookFactory()
|
||||
|
|
Loading…
Reference in New Issue