diff --git a/ara/api/tests/tests_host.py b/ara/api/tests/tests_host.py index 87704d7..4c5d77e 100644 --- a/ara/api/tests/tests_host.py +++ b/ara/api/tests/tests_host.py @@ -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"]) diff --git a/ara/api/views.py b/ara/api/views.py index b8c2d97..e2e6a8f 100644 --- a/ara/api/views.py +++ b/ara/api/views.py @@ -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):