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.

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