Amisha's latest changes to tenant view
diff --git a/planetstack/core/plus/views.py b/planetstack/core/plus/views.py
index 0078d91..4211a30 100644
--- a/planetstack/core/plus/views.py
+++ b/planetstack/core/plus/views.py
@@ -9,6 +9,7 @@
from django.http import HttpResponse
from django.core import urlresolvers
import traceback
+import socket
if os.path.exists("/home/smbaker/projects/vicci/cdn/bigquery"):
sys.path.append("/home/smbaker/projects/vicci/cdn/bigquery")
@@ -213,6 +214,91 @@
def get(self, request, **kwargs):
return HttpResponse(json.dumps(getTenantSliceInfo(request.user, True)), mimetype='application/javascript')
+def tenant_increase_slivers(user, siteName, slice, count):
+ site = Site.objects.filter(name=siteName)
+ nodes = Node.objects.filter(site=site)
+ print nodes
+ site.usedNodes = []
+ site.freeNodes = []
+ sliceName = Slice.objects.get(name=slice)
+ for node in nodes:
+ usedNode = False
+ for sliver in node.slivers.all():
+ if sliver in Sliver.objects.filter(slice=sliceName):
+ usedNode = True
+ if usedNode:
+ site.usedNodes.append(node)
+ print site.usedNodes
+ else:
+ site.freeNodes.append(node)
+ print site
+ slices =Slice.objects.all()
+ sliceName = Slice.objects.get(name=slice)
+ test = Sliver.objects.filter(slice=sliceName)
+ while (len(site.freeNodes) > 0) and (count > 0):
+ node = site.freeNodes.pop()
+ hostname = node.name
+ sliver = Sliver(name=node.name,
+ slice=sliceName,
+ node=node,
+ image = Image.objects.all()[0],
+ creator = User.objects.get(email=user),
+ deploymentNetwork=node.deployment,
+ numberCores =1 )
+ sliver.save()
+
+ print "created sliver", sliver
+ print sliver.node
+ print sliver.numberCores
+ site.usedNodes.append(node)
+ count = int(count) - 1
+
+def tenant_decrease_slivers(user, siteName, slice, count):
+ site = Site.objects.filter(name=siteName)
+ nodes = Node.objects.filter(site=site)
+ slices = Slice.objects.all()
+ site.usedNodes = []
+ site.freeNodes = []
+ sliceName = Slice.objects.get(name=slice)
+
+ for node in nodes:
+ usedNode = False
+ for sliver in node.slivers.all():
+ if sliver in Sliver.objects.filter(slice=sliceName):
+ usedNode = True
+ if usedNode:
+ site.usedNodes.append(node)
+ else:
+ site.freeNodes.append(node)
+ print "used nodes", site.usedNodes
+ slices =Slice.objects.all()
+ sliceName = Slice.objects.get(name=slice)
+ test = Sliver.objects.filter(slice=sliceName)
+ while (count > 0):
+ node = site.usedNodes.pop()
+ print node
+ print count
+ for sliver in node.slivers.all():
+ if sliver.slice in slices:
+ print "deleting sliver", sliver.slice
+ sliver.delete()
+ site.freeNodes.append(node)
+ count = int(count) - 1
+ print "deleted sliver", sliver
+
+class TenantAddOrRemoveSliverView(View):
+ def post(self, request, *args, **kwargs):
+ siteName = request.POST.get("siteName", "0")
+ actionToDo = request.POST.get("actionToDo", "0")
+ count = request.POST.get("count","0")
+ slice = request.POST.get("slice","0")
+
+ if (actionToDo == "add"):
+ tenant_increase_slivers(request.user, siteName,slice, count)
+ elif (actionToDo == "rem"):
+ tenant_decrease_slivers(request.user,siteName,slice, count)
+ return HttpResponse('This is POST request ')
+
class DashboardSummaryAjaxView(View):
def get(self, request, **kwargs):
return HttpResponse(json.dumps(hpc_wizard.get_hpc_wizard().get_summary_for_view()), mimetype='application/javascript')