views.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. from django.shortcuts import render
  2. from django.http import HttpResponse
  3. from django.template import loader
  4. from django.shortcuts import redirect
  5. import pprint
  6. import vyos
  7. from .models import Instance
  8. def index(request):
  9. #interfaces = vyos.get_interfaces()
  10. all_instances = vyos.instance_getall()
  11. hostname_default = vyos.get_hostname_prefered(request)
  12. template = loader.get_template('config/instance.html')
  13. context = {
  14. #'interfaces': interfaces,
  15. 'instances': all_instances,
  16. 'hostname_default': hostname_default,
  17. }
  18. return HttpResponse(template.render(context, request))
  19. def instances(request):
  20. all_instances = vyos.instance_getall()
  21. hostname_default = vyos.get_hostname_prefered(request)
  22. print(all_instances)
  23. if hostname_default == None:
  24. if all_instances.count() > 0:
  25. for i in all_instances:
  26. pprint.pprint(i.hostname)
  27. instance_default(request, i.hostname)
  28. else:
  29. return redirect('config:instance-add')
  30. template = loader.get_template('config/instances.html')
  31. context = {
  32. 'instances': all_instances,
  33. 'hostname_default': hostname_default,
  34. }
  35. return HttpResponse(template.render(context, request))
  36. def instance_add(request):
  37. #interfaces = vyos.get_interfaces()
  38. all_instances = vyos.instance_getall()
  39. hostname_default = vyos.get_hostname_prefered(request)
  40. if len(request.POST) > 0:
  41. instance = Instance()
  42. instance.alias = request.POST['alias']
  43. instance.hostname = request.POST['hostname']
  44. instance.port = request.POST['port']
  45. instance.key = request.POST['key']
  46. if 'https' in request.POST:
  47. instance.https = request.POST['https']
  48. else:
  49. instance.https = False
  50. instance_id = instance.save()
  51. else:
  52. instance_id = 0
  53. template = loader.get_template('config/instance_add.html')
  54. context = {
  55. 'hostname_default': hostname_default,
  56. 'instance_id': instance_id,
  57. 'instances': all_instances,
  58. }
  59. return HttpResponse(template.render(context, request))
  60. def instance_conntry(request, hostname):
  61. all_instances = vyos.instance_getall()
  62. hostname_default = vyos.get_hostname_prefered(request)
  63. # permcheck
  64. instance = Instance.objects.get(hostname=hostname)
  65. connected = vyos.conntry(hostname)
  66. if connected == True:
  67. request.session['hostname'] = hostname
  68. template = loader.get_template('config/instance_conntry.html')
  69. context = {
  70. 'instance': instance,
  71. "connected": connected,
  72. 'instances': all_instances,
  73. 'hostname_default': hostname_default,
  74. }
  75. return HttpResponse(template.render(context, request))
  76. def instance_default(request, hostname):
  77. all_instances = vyos.instance_getall()
  78. # permcheck
  79. instance = Instance.objects.get(hostname=hostname)
  80. connected = vyos.conntry(hostname)
  81. # show some error when not connected
  82. if connected == True:
  83. request.session['hostname'] = hostname
  84. instance.main = True
  85. instance.save()
  86. return redirect('config:instances')
  87. def instance_remove(request, hostname):
  88. all_instances = vyos.instance_getall()
  89. # permcheck
  90. instance = Instance.objects.get(hostname=hostname)
  91. hostname_default = vyos.get_hostname_prefered(request)
  92. #if hostname_default != hostname:
  93. instance.delete()
  94. return redirect('config:instances')