Add Tasks, Records and Plays to Playbook serializer
Change-Id: Ic2456f021107d9397ea561fbc9a60661c34b5f2c
This commit is contained in:
parent
6519a91289
commit
ca5c065b18
|
@ -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 PlaybookSerializer(DurationSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Playbook
|
model = models.Playbook
|
||||||
|
@ -160,6 +208,9 @@ class PlaybookSerializer(DurationSerializer):
|
||||||
files = FileSerializer(many=True, default=[])
|
files = FileSerializer(many=True, default=[])
|
||||||
hosts = HostSerializer(many=True, default=[])
|
hosts = HostSerializer(many=True, default=[])
|
||||||
labels = LabelSerializer(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):
|
def create(self, validated_data):
|
||||||
# Create the playbook without the file and label references for now
|
# 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))
|
playbook.labels.add(models.Label.objects.create(**label))
|
||||||
|
|
||||||
return playbook
|
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"]))
|
self.assertEqual(0, len(request.data["results"]))
|
||||||
|
|
||||||
def test_get_playbooks(self):
|
def test_get_playbooks(self):
|
||||||
playbook = factories.PlaybookFactory()
|
expected_playbook = factories.PlaybookFactory()
|
||||||
request = self.client.get("/api/v1/playbooks")
|
request = self.client.get("/api/v1/playbooks")
|
||||||
self.assertEqual(1, len(request.data["results"]))
|
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):
|
def test_delete_playbook(self):
|
||||||
playbook = factories.PlaybookFactory()
|
playbook = factories.PlaybookFactory()
|
||||||
|
|
Loading…
Reference in New Issue