X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fdashboard%2Fviews%2Fview_common.py;h=f05d40a6c7df1c35c5dd19134910c1c16f7a4c2f;hb=a5800d37ffca30e7c9231045dd553f68b7191906;hp=4efb8c274dd2803773e196375e6bffe2954d1373;hpb=4879fca25cb8949c3fa4ff865053cf5fe9747e30;p=plstackapi.git diff --git a/planetstack/core/dashboard/views/view_common.py b/planetstack/core/dashboard/views/view_common.py index 4efb8c2..f05d40a 100644 --- a/planetstack/core/dashboard/views/view_common.py +++ b/planetstack/core/dashboard/views/view_common.py @@ -4,7 +4,7 @@ from django.views.generic import TemplateView, View import datetime from pprint import pprint import json -from syndicate.models import * +from syndicate_storage.models import * from core.models import * from hpc.models import ContentProvider from operator import attrgetter @@ -61,14 +61,19 @@ def getSliceInfo(user): userSliceInfo = [] for entry in slicePrivs: - slicename = Slice.objects.get(id=entry.slice.id).name - slice = Slice.objects.get(name=Slice.objects.get(id=entry.slice.id).name) + slice = Slice.objects.filter(id=entry.slice.id) + if not slice: + # the privilege is to a slice that doesn't exist + print "data model consistency problem, slice %s doesn't exist" % entry.slice.id + continue + slice = slice[0] + slicename = slice.name sliverList=Sliver.objects.all() sites_used = {} for sliver in slice.slivers.all(): #sites_used['deploymentSites'] = sliver.node.deployment.name # sites_used[sliver.image.name] = sliver.image.name - sites_used[sliver.node.site.name] = sliver.numberCores + sites_used[sliver.node.site.name] = 1 #sliver.numberCores sliceid = Slice.objects.get(id=entry.slice.id).id try: sliverList = Sliver.objects.filter(slice=entry.slice.id) @@ -141,12 +146,18 @@ def getCDNOperatorData(randomizeData = False, wait=True): cpu=float(max_cpu)/100.0 hotness = max(0.0, ((cpu*RED_LOAD) - BLUE_LOAD)/(RED_LOAD-BLUE_LOAD)) + try: + lat=float(site.location.latitude) + long=float(site.location.longitude) + except: + lat=0 + long=0 + # format it to what that CDN Operations View is expecting - new_row = {"lat": float(site.location.longitude), - "long": float(site.location.longitude), - "lat": float(site.location.latitude), + new_row = {"lat": lat, + "long": long, "health": 0, - "numNodes": int(site.nodes.count()), + #"numNodes": int(site.nodes.count()), "activeHPCSlivers": int(stats_row.get("count_hostname", 0)), # measured number of slivers, from bigquery statistics "numHPCSlivers": allocated_slivers, # allocated number of slivers, from data model "siteUrl": str(site.site_url), @@ -169,7 +180,7 @@ def getCDNOperatorData(randomizeData = False, wait=True): return new_rows -def slice_increase_slivers(user, user_ip, siteList, slice, count, noAct=False): +def slice_increase_slivers(user, user_ip, siteList, slice, image, count, noAct=False): sitesChanged = {} # let's compute how many slivers are in use in each node of each site @@ -196,10 +207,9 @@ def slice_increase_slivers(user, user_ip, siteList, slice, count, noAct=False): sliver = Sliver(name=node.name, slice=slice, node=node, - image = Image.objects.all()[0], + image = image, creator = User.objects.get(email=user), - deploymentNetwork=node.deployment, - numberCores =1 ) + deploymentNetwork=node.deployment) sliver.save() node.sliverCount = node.sliverCount + 1 @@ -212,24 +222,18 @@ def slice_increase_slivers(user, user_ip, siteList, slice, count, noAct=False): def slice_decrease_slivers(user, siteList, slice, count, noAct=False): sitesChanged = {} - sliverList ={} if siteList: siteNames = [site.name for site in siteList] else: siteNames = None - for sliver in slice.slivers.all(): - if(not siteNames) or (sliver.node.site.name in siteNames): - node = sliver.node - sliverList[sliver.name]=node.name - - for key in sliverList: + for sliver in list(slice.slivers.all()): if count>0: - sliver = Sliver.objects.filter(name=key)[0] - sliver.delete() - print "deleting sliver",sliverList[key],"at node",sliver.node.name - count=count-1 - sitesChanged[sliver.node.site.name] = sitesChanged.get(sliver.node.site.name,0) - 1 + if(not siteNames) or (sliver.node.site.name in siteNames): + sliver.delete() + print "deleting sliver",sliver.name,"at node",sliver.node.name + count=count-1 + sitesChanged[sliver.node.site.name] = sitesChanged.get(sliver.node.site.name,0) - 1 return sitesChanged