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.

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