Add a proxy view to the json config endpoint of rfiddrivers.

This commit is contained in:
Mikaël Ates 2016-01-22 17:22:47 +01:00
parent a9b2a56973
commit 8a302b1ce6
2 changed files with 20 additions and 0 deletions

View File

@ -53,6 +53,7 @@ urlpatterns += (
urlpatterns += (
url(r'^readers/$', login_required(views.ReaderList.as_view()), name='reader_list'),
url(r'^readers/(?P<pk>\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<pk>\d+)/$', login_required(views.ReaderUpdate.as_view()), name='reader_update'),
url(r'^reader/(?P<pk>\d+)/delete/$', login_required(views.ReaderDelete.as_view()), name='reader_delete'),

View File

@ -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)