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.

229 lines
5.6 KiB

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