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.

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