You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
4.7 KiB

12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
  1. from django.shortcuts import render_to_response
  2. from django.http import HttpResponse, HttpResponseRedirect
  3. from django.template import RequestContext
  4. from django.utils import simplejson
  5. from main.views import *
  6. from pydash.settings import TIME_JS_REFRESH
  7. time_refresh = TIME_JS_REFRESH
  8. def uptime(request):
  9. """
  10. Return uptime
  11. """
  12. if not request.user.is_authenticated():
  13. return HttpResponseRedirect('/login')
  14. try:
  15. up_time = get_uptime()
  16. except Exception:
  17. up_time = None
  18. data = simplejson.dumps(up_time)
  19. response = HttpResponse()
  20. response['Content-Type'] = "text/javascript"
  21. response.write(data)
  22. return response
  23. def getusers(request):
  24. """
  25. Return uptime
  26. """
  27. if not request.user.is_authenticated():
  28. return HttpResponseRedirect('/login')
  29. try:
  30. online_users = get_users()
  31. except Exception:
  32. online_users = None
  33. data = simplejson.dumps(online_users)
  34. response = HttpResponse()
  35. response['Content-Type'] = "text/javascript"
  36. response.write(data)
  37. return response
  38. def cpuusage(request):
  39. """
  40. Return CPU Usage in %
  41. """
  42. if not request.user.is_authenticated():
  43. return HttpResponseRedirect('/login')
  44. try:
  45. cpu_usage = get_cpu_usage()
  46. except Exception:
  47. cpu_usage = 0
  48. cpu = [
  49. {
  50. "value": cpu_usage['free'],
  51. "color": "#0AD11B"
  52. },
  53. {
  54. "value": cpu_usage['used'],
  55. "color": "#F7464A"
  56. }
  57. ]
  58. data = simplejson.dumps(cpu)
  59. response = HttpResponse()
  60. response['Content-Type'] = "text/javascript"
  61. response.write(data)
  62. return response
  63. def memusage(request):
  64. """
  65. Return Memory Usage in % and numeric
  66. """
  67. if not request.user.is_authenticated():
  68. return HttpResponseRedirect('/login')
  69. datasets = []
  70. try:
  71. mem_usage = get_mem()
  72. except Exception:
  73. mem_usage = 0
  74. try:
  75. cookies = request._cookies['memory_usage']
  76. except Exception:
  77. cookies = None
  78. if not cookies:
  79. datasets.append(0)
  80. else:
  81. datasets = eval(cookies)
  82. if len(datasets) > 10:
  83. while datasets:
  84. del datasets[0]
  85. if len(datasets) == 10:
  86. break
  87. if len(datasets) <= 9:
  88. datasets.append(int(mem_usage['usage']))
  89. if len(datasets) == 10:
  90. datasets.append(int(mem_usage['usage']))
  91. del datasets[0]
  92. # Some fix division by 0 Chart.js
  93. if len(datasets) == 10:
  94. if sum(datasets) == 0:
  95. datasets[9] += 0.1
  96. if sum(datasets) / 10 == datasets[0]:
  97. datasets[9] += 0.1
  98. memory = {
  99. 'labels': [""] * 10,
  100. 'datasets': [
  101. {
  102. "fillColor": "rgba(249,134,33,0.5)",
  103. "strokeColor": "rgba(249,134,33,1)",
  104. "pointColor": "rgba(249,134,33,1)",
  105. "pointStrokeColor": "#fff",
  106. "data": datasets
  107. }
  108. ]
  109. }
  110. data = simplejson.dumps(memory)
  111. response = HttpResponse()
  112. response['Content-Type'] = "text/javascript"
  113. response.cookies['memory_usage'] = datasets
  114. response.write(data)
  115. return response
  116. def loadaverage(request):
  117. """
  118. Return Load Average numeric
  119. """
  120. if not request.user.is_authenticated():
  121. return HttpResponseRedirect('/login')
  122. datasets = []
  123. try:
  124. load_average = get_load()
  125. except Exception:
  126. load_average = 0
  127. try:
  128. cookies = request._cookies['load_average']
  129. except Exception:
  130. cookies = None
  131. if not cookies:
  132. datasets.append(0)
  133. else:
  134. datasets = eval(cookies)
  135. if len(datasets) > 10:
  136. while datasets:
  137. del datasets[0]
  138. if len(datasets) == 10:
  139. break
  140. if len(datasets) <= 9:
  141. datasets.append(int(load_average))
  142. if len(datasets) == 10:
  143. datasets.append(int(load_average))
  144. del datasets[0]
  145. # Some fix division by 0 Chart.js
  146. if len(datasets) == 10:
  147. if sum(datasets) == 0:
  148. datasets[9] += 0.1
  149. if sum(datasets) / 10 == datasets[0]:
  150. datasets[9] += 0.1
  151. load = {
  152. 'labels': [""] * 10,
  153. 'datasets': [
  154. {
  155. "fillColor" : "rgba(151,187,205,0.5)",
  156. "strokeColor" : "rgba(151,187,205,1)",
  157. "pointColor" : "rgba(151,187,205,1)",
  158. "pointStrokeColor": "#fff",
  159. "data": datasets
  160. }
  161. ]
  162. }
  163. data = simplejson.dumps(load)
  164. response = HttpResponse()
  165. response['Content-Type'] = "text/javascript"
  166. response.cookies['load_average'] = datasets
  167. response.write(data)
  168. return response