description=models.TextField(blank=True,help_text="High level description of the slice and expected activities", max_length=1024)
slice_url = models.URLField(blank=True, max_length=512)
site = models.ForeignKey(Site, related_name='slices', help_text="The Site this Slice belongs to")
- imagePreference = models.CharField(default="abc",null=True, blank=True, max_length=256)
+ imagePreference = models.CharField(null=True, blank=True, max_length=256)
service = models.ForeignKey(Service, related_name='service', null=True, blank=True)
- network = models.CharField(null=True, blank=True, max_length=256)
- mountDataSets = models.CharField(null=True, blank=True, max_length=256)
+ network = models.CharField(default="Private Only",null=True, blank=True, max_length=256)
+ mountDataSets = models.CharField(default="GenBank",null=True, blank=True, max_length=256)
tags = generic.GenericRelation(Tag)
serviceClass = models.ForeignKey(ServiceClass, related_name = "slices", null=True, default=ServiceClass.get_default)
if (actionToDo == "add"):
serviceClass = ServiceClass.objects.get(name=serviceClass)
site = request.user.site
- #image = Image.objects.get(name=imageName)
- newSlice = Slice(name=sliceName,serviceClass=serviceClass,site=site,imagePreference=imageName,mountDataSets=mountDataSets,network=network)
+ image = Image.objects.get(name=imageName)
+ newSlice = Slice(name=sliceName,serviceClass=serviceClass,site=site,imagePreference=image,mountDataSets=mountDataSets,network=network)
newSlice.save()
- return newSlice
+ return HttpResponse("Slice created")
class TenantUpdateSlice(View):
def post(self, request, *args, **kwargs):\r
imageName = request.POST.get("imageName", "0")\r
actionToDo = request.POST.get("actionToDo", "0")\r
network = request.POST.get("network","0")\r
- slice = Slice.objects.filter(name = sliceName)\r
- abc = ServiceClass.objects.get(name=serviceClass)\r
- if (actionToDo == "update"):\r
- # print getattr(slice,'serviceClass',abc)\r
- setattr(slice,'serviceClass',abc)\r
- #fields = {'serviceClass':ServiceClass.objects.get(name=serviceClass),\r
- # 'imagePreference':imageName,\r
- # 'network':network\r
- # }\r
- #update_slice(sliceName,**fields)\r
- return HttpResponse("Slice updated")
-
+ dataSet = request.POST.get("dataSet","0")\r
+ slice = Slice.objects.all()\r
+ for entry in slice:\r
+ serviceClass = ServiceClass.objects.get(name=serviceClass)\r
+ if(entry.name==sliceName):\r
+ if (actionToDo == "update"):\r
+ setattr(entry,'serviceClass',serviceClass)\r
+ setattr(entry,'imagePreference',imageName)\r
+ setattr(entry,'network',network)\r
+ setattr(entry,'mountDataSets',dataSet)\r
+ entry.save()\r
+ break\r
+ return HttpResponse("Slice updated")\r
+\r
def update_slice(sliceName,**fields):
slice = Slice.objects.filter(name = sliceName)\r
for (k,v) in fields.items():\r
return sliceInfo
def getImageInfo(user):
- #imageList = Image.objects.all()
- imageList = ['Fedora 16 LXC rev 1.3','Hadoop','MPI']
+ imageList = Image.objects.all()
+ #imageList = ['Fedora 16 LXC rev 1.3','Hadoop','MPI']
imageInfo = []
for imageEntry in imageList:
- #imageInfo.append({'Image':imageEntry.name})
- imageInfo.append({'Image':imageEntry})
+ imageInfo.append({'Image':imageEntry.name})
+ #imageInfo.append({'Image':imageEntry})
return imageInfo
def getMountDataSets():
return HttpResponse(json.dumps(getTenantSliceInfo(request.user, True)), mimetype='application/javascript')
def haversine(site_lat, site_lon, lat, lon):
- site_lat = float(site_lat)
- site_lon = float(site_lon)
- lat = float(lat)
- lon = float(lon)
d=0
if lat and lon and site_lat and site_lon:
+ site_lat = float(site_lat)
+ site_lon = float(site_lon)
+ lat = float(lat)
+ lon = float(lon)
R = 6378.1
a = math.sin( math.radians((lat - site_lat)/2.0) )**2 + math.cos( math.radians(lat) )*math.cos( math.radians(site_lat) )*(math.sin( math.radians((lon - site_lon)/2.0 ) )**2)
c = 2 * math.atan2( math.sqrt(a), math.sqrt(1 - a) )
print slice, slice.id\r
sliceToDel=Slice(name=sliceName, id=slice.id)\r
sliceToDel.delete()
+ return HttpResponse("Slice deleted")
class TenantAddOrRemoveSliverView(View):
""" Add or remove slivers from a Slice
<fieldset>
<div class="create-slice-row">
<label for="new-slice-name">Name</label>
- <input type="text" name="new-slice-name" id="new-slice-name" class="text tenant-create-slice">
+ <input type="text" name="new-slice-name" id="new-slice-name">
</div>
<div class="create-slice-row">
<label for="new-service-class">Service Class</label>
</div>
<div class="create-slice-row">
<label for="number-of-slivers">Number Of Slivers</label>
- <input type="text" name="number-of-slivers" id="number-of-slivers" class="text tenant-create-slice">
+ <input type="text" name="number-of-slivers" id="number-of-slivers">
</div>
<div id=tooltip>Slice Name cannot be empty</div>
</fieldset>
serviceClass: $("#adv-service-level-dropdown").val(),
imageName: $("#adv-image-dropdown").val(),
network: $("#adv-network-dropdown").val(),
+ dataSet: $("#adv-dataset-dropdown").val(),
actionToDo: "update",
csrfmiddlewaretoken: "{{ csrf_token }}", // < here
state: "inactive"
$('<div class="btn btn-high btn-info" id="download-details">Download Slice Details</div>').appendTo("#tabs-5");
$('<div class="btn btn-success" id="sliver-btn"><i class="icon-plus-sign icon-white"></i> Add/Remove Slivers</div>').appendTo("#tabs-5");
$('<div class="btn btn-high btn-info" id="save-btn">Save</div>').appendTo("#tabs-5").css("display", "none");
- $("#advanced-tenant").click(function () {
- var value = $("#advTenantSliceDropDown").val();
+ $("#advanced-tenant").unbind().click(function () {
+ var value = $("#tenantSliceDropDown").val();
advShowSliceData(data,value);
$("#tenantSliceDataWrapper").css("display","none");
$("#advancedTenantSliceDataWrapper").css("display","block");
$("#sliver-btn").toggle();
$("#save-btn").toggle();
- //$("#advTenantSliceDropDown").val(selectedValue);
- //advShowSliceData(data);
- //editSliverAdv();
});
$("#sliver-btn").click(function () {
$("#numOfSlivers").empty();
$("#dialog-form").dialog({
autoOpen: false,
height: 200,
- width: 350,
+ width: 400,
modal: true,
dialogClass: "tenantDialog",
buttons: {