diff --git a/src/biomon/urls.py b/src/biomon/urls.py index 25955ae..cb687f6 100644 --- a/src/biomon/urls.py +++ b/src/biomon/urls.py @@ -53,6 +53,7 @@ urlpatterns += ( urlpatterns += ( url(r'^readers/$', login_required(views.ReaderList.as_view()), name='reader_list'), + url(r'^readers/(?P\d+)/$', login_required(views.ReaderConfig.as_view()), name='reader_config'), url(r'^reader/add/$', login_required(views.ReaderCreate.as_view()), name='reader_add'), url(r'^reader/(?P\d+)/$', login_required(views.ReaderUpdate.as_view()), name='reader_update'), url(r'^reader/(?P\d+)/delete/$', login_required(views.ReaderDelete.as_view()), name='reader_delete'), diff --git a/src/biomon/views.py b/src/biomon/views.py index e175fba..971b1f4 100644 --- a/src/biomon/views.py +++ b/src/biomon/views.py @@ -349,3 +349,22 @@ class ReaderDelete(DeleteView): except: pass return context + + +class ReaderConfig(View): + def get(self, request, *args, **kwargs): + reader = get_object_or_404(models.Reader, + id=kwargs.get('pk', None)) + infos = {'status' : 'unknown'} + target = "http://{}:{}/config".format(reader.ip_address, + reader.management_port) + response = None + try: + response = requests.get(target) + except requests.ConnectionError: + infos['status'] = 'disconnected' + else: + infos['status'] = 'connected' + if response.status_code != 404: + infos['config'] = response.json() + return JsonResponse(infos)