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.

211 lines
5.2 KiB

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