git://git.onelab.eu
/
plstackapi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bd57a43
)
add noAct argument, return list of modified sites in result
author
Scott Baker
<smbaker@gmail.com>
Mon, 14 Apr 2014 23:48:05 +0000
(16:48 -0700)
committer
Scott Baker
<smbaker@gmail.com>
Mon, 14 Apr 2014 23:48:05 +0000
(16:48 -0700)
planetstack/core/plus/views.py
patch
|
blob
|
history
diff --git
a/planetstack/core/plus/views.py
b/planetstack/core/plus/views.py
index
ff5877e
..
ac0bfd2
100644
(file)
--- a/
planetstack/core/plus/views.py
+++ b/
planetstack/core/plus/views.py
@@
-263,7
+263,9
@@
def tenant_pick_sites(user, user_ip=None, slice=None, count=None):
return sites
return sites
-def tenant_increase_slivers(user, user_ip, siteList, slice, count):
+def tenant_increase_slivers(user, user_ip, siteList, slice, count, noAct=False):
+ sitesChanged = {}
+
# let's compute how many slivers are in use in each node of each site
for site in siteList:
site.nodeList = list(site.nodes.all())
# let's compute how many slivers are in use in each node of each site
for site in siteList:
site.nodeList = list(site.nodes.all())
@@
-284,20
+286,27
@@
def tenant_increase_slivers(user, user_ip, siteList, slice, count):
print "adding sliver at node", node.name, "of site", node.site.name
print "adding sliver at node", node.name, "of site", node.site.name
- sliver = Sliver(name=node.name,
- slice=slice,
- node=node,
- image = Image.objects.all()[0],
- creator = User.objects.get(email=user),
- deploymentNetwork=node.deployment,
- numberCores =1 )
- sliver.save()
+ if not noAct:
+ sliver = Sliver(name=node.name,
+ slice=slice,
+ node=node,
+ image = Image.objects.all()[0],
+ creator = User.objects.get(email=user),
+ deploymentNetwork=node.deployment,
+ numberCores =1 )
+ sliver.save()
node.sliverCount = node.sliverCount + 1
count = count - 1
node.sliverCount = node.sliverCount + 1
count = count - 1
-def tenant_decrease_slivers(user, siteList, slice, count):
+ sitesChanged[node.site.name] = sitesChanged.get(node.site.name,0) + 1
+
+ return sitesChanged
+
+def tenant_decrease_slivers(user, siteList, slice, count, noAct=False):
+ sitesChanged = {}
+
if siteList:
siteNames = [site.name for site in siteList]
else:
if siteList:
siteNames = [site.name for site in siteList]
else:
@@
-310,15
+319,35
@@
def tenant_decrease_slivers(user, siteList, slice, count):
node = sliver.node
if (not siteNames) or (node.site.name in siteNames):
print "deleting sliver", sliver, "at node", node.name, "of site", node.site.name
node = sliver.node
if (not siteNames) or (node.site.name in siteNames):
print "deleting sliver", sliver, "at node", node.name, "of site", node.site.name
- sliver.delete()
+ if not noAct:
+ sliver.delete()
count = count -1
count = count -1
+ sitesChanged[node.site.name] = sitesChanged.get(node.site.name,0) - 1
+
+ return sitesChanged
+
class TenantAddOrRemoveSliverView(View):
class TenantAddOrRemoveSliverView(View):
+ """ Add or remove slivers from a Slice
+
+ Arguments:
+ siteName - name of site. If not specified, PlanetStack will pick the
+ best site.,
+ actionToDo - [add | rem]
+ count - number of slivers to add or remove
+ sliceName - name of slice
+ noAct - if set, no changes will be made to db
+
+ Returns:
+ Dictionary of sites that were modified, and the count of nodes
+ that were added or removed at each site.
+ """
def post(self, request, *args, **kwargs):
siteName = request.POST.get("siteName", None)
actionToDo = request.POST.get("actionToDo", None)
count = int(request.POST.get("count","0"))
sliceName = request.POST.get("slice", None)
def post(self, request, *args, **kwargs):
siteName = request.POST.get("siteName", None)
actionToDo = request.POST.get("actionToDo", None)
count = int(request.POST.get("count","0"))
sliceName = request.POST.get("slice", None)
+ noAct = request.POST.get("noAct", False)
if not sliceName:
return HttpResponseServerError("No slice name given")
if not sliceName:
return HttpResponseServerError("No slice name given")
@@
-335,13
+364,13
@@
class TenantAddOrRemoveSliverView(View):
if (siteList is None):
siteList = tenant_pick_sites(user, user_ip, slice, count)
if (siteList is None):
siteList = tenant_pick_sites(user, user_ip, slice, count)
-
tenant_increase_slivers(request.user, user_ip, siteList, slice, coun
t)
+
sitesChanged = tenant_increase_slivers(request.user, user_ip, siteList, slice, count, noAc
t)
elif (actionToDo == "rem"):
elif (actionToDo == "rem"):
-
tenant_decrease_slivers(request.user, siteList, slice, coun
t)
+
sitesChanged = tenant_decrease_slivers(request.user, siteList, slice, count, noAc
t)
else:
return HttpResponseServerError("Unknown actionToDo %s" % actionToDo)
else:
return HttpResponseServerError("Unknown actionToDo %s" % actionToDo)
- return HttpResponse(
'Operation Completed
')
+ return HttpResponse(
json.dumps(sitesChanged), mimetype='application/javascript
')
def get(self, request, *args, **kwargs):
request.POST = request.GET
def get(self, request, *args, **kwargs):
request.POST = request.GET