X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fxoslib%2Fobjects%2Fsliceplus.py;h=e35f4d17528bc31e054110c2d260ebd29ac0ce8f;hb=88e34372ea9c9981f3cae8ca794cede084f55293;hp=a68602d174fc6c8044dac679070b7275e57309b0;hpb=5f4770d9c1d4e573ae71d6d96948695d7ecbc7fa;p=plstackapi.git diff --git a/planetstack/core/xoslib/objects/sliceplus.py b/planetstack/core/xoslib/objects/sliceplus.py index a68602d..e35f4d1 100644 --- a/planetstack/core/xoslib/objects/sliceplus.py +++ b/planetstack/core/xoslib/objects/sliceplus.py @@ -1,15 +1,19 @@ from core.models.slice import Slice class SlicePlus(Slice): + class Meta: + proxy = True + def getSliceInfo(self, user=None): - used_sites = [] - used_deployments = [] + used_sites = {} + used_deployments = {} sliverCount = 0 for sliver in self.slivers.all(): site = sliver.node.site deployment = sliver.node.deployment - used_sites[site.name] = used.sites.get(site.name, 0) + 1 + used_sites[site.name] = used_sites.get(site.name, 0) + 1 used_deployments[deployment.name] = used_deployments.get(deployment.name, 0) + 1 + sliverCount = sliverCount + 1 roles = [] if (user!=None): @@ -17,6 +21,18 @@ class SlicePlus(Slice): return {"sitesUsed": used_sites, "deploymentsUsed": used_deployments, - "sliverCount": sliceCount, + "sliverCount": sliverCount, "siteCount": len(used_sites.keys()), "roles": roles} + + @staticmethod + def select_by_user(user): + print "XX" + if user.is_admin: + qs = SlicePlus.objects.all() + else: + slice_ids = [sp.slice.id for sp in SlicePrivilege.objects.filter(user=user)] + qs = SlicePlus.objects.filter(id__in=slice_ids) + print qs + print qs.all() + return qs