Add host filtering by playbook id

Change-Id: I04c32d60bb87f1323dc187956c1a06301df2615c
This commit is contained in:
David Moreau Simard 2018-10-16 10:48:17 -04:00
parent 85e76d68db
commit 2e863887eb
No known key found for this signature in database
GPG Key ID: CBEB466764A9E621
2 changed files with 11 additions and 0 deletions

View File

@ -97,3 +97,12 @@ class HostTestCase(APITestCase):
host = factories.HostFactory()
request = self.client.get("/api/v1/hosts/%s" % host.id)
self.assertEqual(host.name, request.data["name"])
def test_get_hosts_by_playbook(self):
playbook = factories.PlaybookFactory()
host = factories.HostFactory(name="host1", playbook=playbook)
factories.HostFactory(name="host2", playbook=playbook)
request = self.client.get("/api/v1/hosts?playbook=%s" % playbook.id)
self.assertEqual(2, len(request.data["results"]))
self.assertEqual(host.name, request.data["results"][0]["name"])
self.assertEqual("host2", request.data["results"][1]["name"])

View File

@ -62,6 +62,8 @@ class TaskViewSet(viewsets.ModelViewSet):
class HostViewSet(viewsets.ModelViewSet):
queryset = models.Host.objects.all()
serializer_class = serializers.HostSerializer
filter_backends = (DjangoFilterBackend,)
filter_fields = ("playbook",)
class ResultViewSet(viewsets.ModelViewSet):