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.

235 lines
5.5 KiB

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