Browse Source

Example of downloader nagios config via api hash.

And protect 2 api views.
devel
bashmak 8 years ago
parent
commit
0d05b336b3
  1. 6
      abonapp/views.py
  2. 25
      agent/downloader.py

6
abonapp/views.py

@ -1083,6 +1083,8 @@ class EditSibscriberMarkers(UpdateView):
# API's
@login_required
@mydefs.only_admins
@json_view
def abons(request):
ablist = [{
@ -1106,9 +1108,13 @@ def abons(request):
return data
@login_required
@mydefs.only_admins
@json_view
def search_abon(request):
word = request.GET.get('s')
if not word:
return None
results = models.Abon.objects.filter(fio__icontains=word)[:8]
results = [{'id': usr.pk, 'text': "%s: %s" % (usr.username, usr.fio)} for usr in results]
return results

25
agent/downloader.py

@ -0,0 +1,25 @@
#!/usr/bin/env python3
from urllib import request
from hashlib import sha256
API_AUTH_SECRET = 'Your api hash'
FILE_LINK = 'http://localhost:8000/dev/nagios/hosts/'
"""
Example script that downloads config
file from web via api hash.
"""
def calc_hash(data):
if type(data) is str:
result_data = data.encode('utf-8')
else:
result_data = bytes(data)
return sha256(result_data).hexdigest()
if __name__ == '__main__':
sign = calc_hash(API_AUTH_SECRET)
request.urlretrieve("%s?sign=%s" % (FILE_LINK, sign), 'nagios_objects.cfg')
Loading…
Cancel
Save