Merge "Remove the description field from the label model" into feature/1.0

This commit is contained in:
Zuul 2019-05-17 17:47:50 +00:00 committed by Gerrit Code Review
commit 0b9c17132e
5 changed files with 37 additions and 70 deletions

View File

@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with ARA. If not, see <http://www.gnu.org/licenses/>.
# Generated by Django 2.1.7 on 2019-03-19 00:42
# Generated by Django 2.2.1 on 2019-05-17 10:13
from django.db import migrations, models
import django.db.models.deletion
@ -81,7 +81,6 @@ class Migration(migrations.Migration):
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('name', models.CharField(max_length=255)),
('description', models.BinaryField(max_length=4294967295)),
],
options={
'db_table': 'labels',
@ -122,39 +121,6 @@ class Migration(migrations.Migration):
'db_table': 'playbooks',
},
),
migrations.CreateModel(
name='Record',
fields=[
('id', models.BigAutoField(editable=False, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('key', models.CharField(max_length=255)),
('value', models.BinaryField(max_length=4294967295)),
('type', models.CharField(max_length=255)),
('playbook', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='api.Playbook')),
],
options={
'db_table': 'records',
},
),
migrations.CreateModel(
name='Result',
fields=[
('id', models.BigAutoField(editable=False, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('started', models.DateTimeField(default=django.utils.timezone.now)),
('ended', models.DateTimeField(blank=True, null=True)),
('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')),
('play', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Play')),
('playbook', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Playbook')),
],
options={
'db_table': 'results',
},
),
migrations.CreateModel(
name='Task',
fields=[
@ -177,10 +143,24 @@ class Migration(migrations.Migration):
'db_table': 'tasks',
},
),
migrations.AddField(
model_name='result',
name='task',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Task'),
migrations.CreateModel(
name='Result',
fields=[
('id', models.BigAutoField(editable=False, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('started', models.DateTimeField(default=django.utils.timezone.now)),
('ended', models.DateTimeField(blank=True, null=True)),
('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')),
('play', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Play')),
('playbook', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Playbook')),
('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='api.Task')),
],
options={
'db_table': 'results',
},
),
migrations.AddField(
model_name='play',
@ -202,9 +182,21 @@ class Migration(migrations.Migration):
name='playbook',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='api.Playbook'),
),
migrations.AlterUniqueTogether(
name='record',
unique_together={('key', 'playbook')},
migrations.CreateModel(
name='Record',
fields=[
('id', models.BigAutoField(editable=False, primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('key', models.CharField(max_length=255)),
('value', models.BinaryField(max_length=4294967295)),
('type', models.CharField(max_length=255)),
('playbook', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='api.Playbook')),
],
options={
'db_table': 'records',
'unique_together': {('key', 'playbook')},
},
),
migrations.AlterUniqueTogether(
name='host',

View File

@ -60,7 +60,6 @@ class Label(Base):
db_table = "labels"
name = models.CharField(max_length=255)
description = models.BinaryField(max_length=(2 ** 32) - 1)
def __str__(self):
return "<Label %s: %s>" % (self.id, self.name)

View File

@ -69,7 +69,7 @@ class FileSha1Serializer(serializers.ModelSerializer):
class SimpleLabelSerializer(serializers.ModelSerializer):
class Meta:
model = models.Label
exclude = ("description", "created", "updated")
exclude = ("created", "updated")
class SimplePlaybookSerializer(DurationSerializer):
@ -186,8 +186,6 @@ class DetailedLabelSerializer(serializers.ModelSerializer):
model = models.Label
fields = "__all__"
description = ara_fields.CompressedTextField(read_only=True)
class DetailedPlaybookSerializer(DurationSerializer, ItemCountSerializer):
class Meta:
@ -273,10 +271,6 @@ class ListLabelSerializer(serializers.ModelSerializer):
model = models.Label
fields = "__all__"
description = ara_fields.CompressedTextField(
default=ara_fields.EMPTY_STRING, help_text="A text description of the label"
)
class ListPlaybookSerializer(DurationSerializer, ItemCountSerializer):
class Meta:
@ -350,10 +344,6 @@ class LabelSerializer(serializers.ModelSerializer):
model = models.Label
fields = "__all__"
description = ara_fields.CompressedTextField(
default=ara_fields.EMPTY_STRING, help_text="A text description of the label"
)
class PlaybookSerializer(DurationSerializer):
class Meta:

View File

@ -29,7 +29,6 @@ FILE_CONTENTS = "---\n# Example file"
HOST_FACTS = {"ansible_fqdn": "hostname", "ansible_distribution": "CentOS"}
PLAYBOOK_ARGUMENTS = {"ansible_version": "2.5.5", "inventory": "/etc/ansible/hosts"}
RESULT_CONTENTS = {"results": [{"msg": "something happened"}]}
LABEL_DESCRIPTION = "label description"
TASK_TAGS = ["always", "never"]
RECORD_LIST = ["one", "two", "three"]
@ -68,7 +67,6 @@ class LabelFactory(factory.DjangoModelFactory):
model = models.Label
name = "test label"
description = utils.compressed_str(LABEL_DESCRIPTION)
class PlayFactory(factory.DjangoModelFactory):

View File

@ -18,7 +18,7 @@
from rest_framework.test import APITestCase
from ara.api import models, serializers
from ara.api.tests import factories, utils
from ara.api.tests import factories
class LabelTestCase(APITestCase):
@ -33,21 +33,9 @@ class LabelTestCase(APITestCase):
label.refresh_from_db()
self.assertEqual(label.name, "serializer")
def test_label_serializer_compress_description(self):
serializer = serializers.LabelSerializer(data={"name": "compress", "description": factories.LABEL_DESCRIPTION})
serializer.is_valid()
label = serializer.save()
label.refresh_from_db()
self.assertEqual(label.description, utils.compressed_str(factories.LABEL_DESCRIPTION))
def test_label_serializer_decompress_description(self):
label = factories.LabelFactory(description=utils.compressed_str(factories.LABEL_DESCRIPTION))
serializer = serializers.LabelSerializer(instance=label)
self.assertEqual(serializer.data["description"], factories.LABEL_DESCRIPTION)
def test_create_label(self):
self.assertEqual(0, models.Label.objects.count())
request = self.client.post("/api/v1/labels", {"name": "compress", "description": factories.LABEL_DESCRIPTION})
request = self.client.post("/api/v1/labels", {"name": "compress"})
self.assertEqual(201, request.status_code)
self.assertEqual(1, models.Label.objects.count())