Added endpoint exposing ara and python version.

Change-Id: Ic0fead79c0b87d87b990cc6c6526a44414a4546e
This commit is contained in:
Florian Apolloner 2018-12-20 17:52:05 +01:00
parent 2bd8c3f654
commit 39339053ec
3 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,25 @@
# Copyright (c) 2018 Red Hat, Inc.
#
# This file is part of ARA Records Ansible.
#
# ARA is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ARA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ARA. If not, see <http://www.gnu.org/licenses/>.
from rest_framework.test import APITestCase
class InfoTestCase(APITestCase):
def test_info_endpoint(self):
result = self.client.get("/api/v1/info")
self.assertEqual(set(result.data.keys()), set(["python_version", "ara_version"]))
self.assertTrue(result.data["python_version"].startswith("3."))

View File

@ -29,5 +29,6 @@ router.register("results", views.ResultViewSet, base_name="result")
router.register("files", views.FileViewSet, base_name="file")
router.register("records", views.RecordViewSet, base_name="record")
router.register("stats", views.StatsViewSet, base_name="stats")
router.register("info", views.InfoView, base_name="info")
urlpatterns = router.urls

View File

@ -14,12 +14,25 @@
#
# You should have received a copy of the GNU General Public License
# along with ARA. If not, see <http://www.gnu.org/licenses/>.
import sys
import pbr.version
from rest_framework import viewsets
from rest_framework.response import Response
from ara.api import models, serializers
class InfoView(viewsets.ViewSet):
def list(self, request):
return Response(
{
"python_version": ".".join(map(str, sys.version_info[:3])),
"ara_version": pbr.version.VersionInfo("ara-server").release_string(),
}
)
class LabelViewSet(viewsets.ModelViewSet):
queryset = models.Label.objects.all()
serializer_class = serializers.LabelSerializer