Merge "Add Tasks, Records and Plays to Playbook serializer"
This commit is contained in:
commit
d29209dc17
|
@ -151,6 +151,54 @@ class LabelSerializer(serializers.ModelSerializer):
|
|||
)
|
||||
|
||||
|
||||
class TaskSerializer(DurationSerializer):
|
||||
class Meta:
|
||||
model = models.Task
|
||||
fields = "__all__"
|
||||
|
||||
tags = CompressedObjectField(
|
||||
default=zlib.compress(json.dumps([]).encode("utf8")), help_text="A JSON list containing Ansible tags"
|
||||
)
|
||||
|
||||
|
||||
class SimpleTaskSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Task
|
||||
fields = ("id", "name")
|
||||
|
||||
|
||||
class RecordSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Record
|
||||
fields = "__all__"
|
||||
|
||||
value = CompressedObjectField(
|
||||
default=zlib.compress(json.dumps("").encode("utf8")),
|
||||
help_text="A string, list, dict, json or other formatted data",
|
||||
)
|
||||
|
||||
|
||||
class PlaySerializer(DurationSerializer):
|
||||
class Meta:
|
||||
model = models.Play
|
||||
fields = "__all__"
|
||||
|
||||
hosts = HostSerializer(read_only=True, many=True)
|
||||
results = ResultSerializer(read_only=True, many=True)
|
||||
|
||||
|
||||
class SimplePlaySerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Play
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class StatsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Stats
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class PlaybookSerializer(DurationSerializer):
|
||||
class Meta:
|
||||
model = models.Playbook
|
||||
|
@ -160,6 +208,9 @@ class PlaybookSerializer(DurationSerializer):
|
|||
files = FileSerializer(many=True, default=[])
|
||||
hosts = HostSerializer(many=True, default=[])
|
||||
labels = LabelSerializer(many=True, default=[])
|
||||
tasks = SimpleTaskSerializer(many=True, read_only=True, default=[])
|
||||
plays = SimplePlaySerializer(many=True, read_only=True, default=[])
|
||||
records = RecordSerializer(many=True, read_only=True, default=[])
|
||||
|
||||
def create(self, validated_data):
|
||||
# Create the playbook without the file and label references for now
|
||||
|
@ -177,39 +228,3 @@ class PlaybookSerializer(DurationSerializer):
|
|||
playbook.labels.add(models.Label.objects.create(**label))
|
||||
|
||||
return playbook
|
||||
|
||||
|
||||
class PlaySerializer(DurationSerializer):
|
||||
class Meta:
|
||||
model = models.Play
|
||||
fields = "__all__"
|
||||
|
||||
hosts = HostSerializer(read_only=True, many=True)
|
||||
results = ResultSerializer(read_only=True, many=True)
|
||||
|
||||
|
||||
class TaskSerializer(DurationSerializer):
|
||||
class Meta:
|
||||
model = models.Task
|
||||
fields = "__all__"
|
||||
|
||||
tags = CompressedObjectField(
|
||||
default=zlib.compress(json.dumps([]).encode("utf8")), help_text="A JSON list containing Ansible tags"
|
||||
)
|
||||
|
||||
|
||||
class RecordSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Record
|
||||
fields = "__all__"
|
||||
|
||||
value = CompressedObjectField(
|
||||
default=zlib.compress(json.dumps("").encode("utf8")),
|
||||
help_text="A string, list, dict, json or other formatted data",
|
||||
)
|
||||
|
||||
|
||||
class StatsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Stats
|
||||
fields = "__all__"
|
||||
|
|
|
@ -59,10 +59,17 @@ class PlaybookTestCase(APITestCase):
|
|||
self.assertEqual(0, len(request.data["results"]))
|
||||
|
||||
def test_get_playbooks(self):
|
||||
playbook = factories.PlaybookFactory()
|
||||
expected_playbook = factories.PlaybookFactory()
|
||||
request = self.client.get("/api/v1/playbooks")
|
||||
self.assertEqual(1, len(request.data["results"]))
|
||||
self.assertEqual(playbook.ansible_version, request.data["results"][0]["ansible_version"])
|
||||
self.assertEqual(1, request.data["count"])
|
||||
playbook = request.data["results"][0]
|
||||
self.assertEqual(playbook["ansible_version"], expected_playbook.ansible_version)
|
||||
self.assertEqual(len(playbook["files"]), 0)
|
||||
self.assertEqual(len(playbook["hosts"]), 0)
|
||||
self.assertEqual(len(playbook["tasks"]), 0)
|
||||
self.assertEqual(len(playbook["records"]), 0)
|
||||
self.assertEqual(len(playbook["plays"]), 0)
|
||||
|
||||
def test_delete_playbook(self):
|
||||
playbook = factories.PlaybookFactory()
|
||||
|
|
Loading…
Reference in New Issue