from view_common import * class DashboardSummaryAjaxView(View): def get(self, request, **kwargs): def avg(x): if len(x)==0: return 0 return float(sum(x))/len(x) sites = getCDNOperatorData().values() sites = [site for site in sites if site["numHPCSlivers"]>0] total_slivers = sum( [site["numHPCSlivers"] for site in sites] ) total_bandwidth = sum( [site["bandwidth"] for site in sites] ) average_cpu = int(avg( [site["load"] for site in sites] )) result= {"total_slivers": total_slivers, "total_bandwidth": total_bandwidth, "average_cpu": average_cpu} return HttpResponse(json.dumps(result), content_type='application/javascript') class DashboardAddOrRemoveSliverView(View): # TODO: deprecate this view in favor of using TenantAddOrRemoveSliverView def post(self, request, *args, **kwargs): siteName = request.POST.get("site", None) actionToDo = request.POST.get("actionToDo", "0") siteList = [Site.objects.get(name=siteName)] slice = Slice.objects.get(name="HyperCache") if request.user.isReadOnlyUser(): return HttpResponseForbidden("User is in read-only mode") if (actionToDo == "add"): user_ip = request.GET.get("ip", get_ip(request)) slice_increase_slivers(request.user, user_ip, siteList, slice, image.objects.all()[0], 1) elif (actionToDo == "rem"): slice_decrease_slivers(request.user, siteList, slice, 1) print '*' * 50 print 'Ask for site: ' + siteName + ' to ' + actionToDo + ' another HPC Sliver' return HttpResponse(json.dumps("Success"), content_type='application/javascript') class DashboardAjaxView(View): def get(self, request, **kwargs): return HttpResponse(json.dumps(getCDNOperatorData(True)), content_type='application/javascript')