Amisha's latest changes to tenant view
diff --git a/planetstack/core/plus/sites.py b/planetstack/core/plus/sites.py
index c5dde52..f51fc1b 100644
--- a/planetstack/core/plus/sites.py
+++ b/planetstack/core/plus/sites.py
@@ -12,7 +12,7 @@
     def get_urls(self):
         """Add our dashboard view to the admin urlconf. Deleted the default index."""
         from django.conf.urls import patterns, url
-        from views import DashboardWelcomeView, DashboardAjaxView, SimulatorView, DashboardSummaryAjaxView, DashboardAddOrRemoveSliverView, DashboardUserSiteView, DashboardAnalyticsAjaxView, TenantViewData,TenantCreateSlice
+        from views import DashboardWelcomeView, DashboardAjaxView, SimulatorView, DashboardSummaryAjaxView, DashboardAddOrRemoveSliverView, DashboardUserSiteView, DashboardAnalyticsAjaxView, TenantViewData,TenantCreateSlice, TenantAddOrRemoveSliverView
 
         urls = super(AdminMixin, self).get_urls()
         del urls[0]
@@ -33,6 +33,8 @@
                     name="analytics"),
                url(r'^dashboardaddorremsliver/$', self.admin_view(DashboardAddOrRemoveSliverView.as_view()),
                     name="addorremsliver"),
+               url(r'^tenantaddorremsliver/$', self.admin_view(TenantAddOrRemoveSliverView.as_view()),
+                    name="tenantaddorremsliver"),
                url(r'^tenantview/$', self.admin_view(TenantViewData.as_view()),
                     name="tenantview"),
                url(r'^createnewslice/$', self.admin_view(TenantCreateSlice.as_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')