merge latest Amisha changes
authorScott Baker <smbaker@gmail.com>
Wed, 23 Apr 2014 04:01:21 +0000 (21:01 -0700)
committerScott Baker <smbaker@gmail.com>
Wed, 23 Apr 2014 04:01:21 +0000 (21:01 -0700)
planetstack/core/models/slice.py
planetstack/core/plus/views.py
planetstack/core/serializers.py
planetstack/core/static/planetstack.css
planetstack/templates/admin/dashboard/tenant.html

index 86a1586..94bcd5b 100644 (file)
@@ -20,10 +20,10 @@ class Slice(PlCoreBase):
     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)
index 4e58508..246a30d 100644 (file)
@@ -68,10 +68,10 @@ class TenantCreateSlice(View):
         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
@@ -80,18 +80,20 @@ class TenantUpdateSlice(View):
         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
@@ -164,12 +166,12 @@ def getServiceClassInfo(user):
     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():
@@ -323,12 +325,12 @@ class TenantViewData(View):
         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) )
@@ -439,6 +441,7 @@ class TenantDeleteSliceView(View):
                 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
index 5bbe7aa..3fb726d 100644 (file)
@@ -125,6 +125,8 @@ class SliceSerializer(serializers.HyperlinkedModelSerializer):
                   'router_id',
                   'subnet_id',
                   'imagePreference',
+                 'network',
+                 'mountDataSets',
                   'site',
                   'slivers',
                   'updated',
index de9139b..e891a70 100644 (file)
@@ -1061,9 +1061,10 @@ margin-left: 3%;
 
 .tenantDialog.ui-widget input{
         border-radius: 0px !important;
-margin: 0 0 0 5% !important;
-height: 15px !important;
-width: 164px !important;
+       height: 12px !important;
+       width: 180px !important;
+       margin-right: 10% !important;
+       float: right;
 }
 
 .tenantDialog .ui-dialog-buttonset .ui-button{
@@ -1079,7 +1080,9 @@ background-color: grey !important;
 }
 
 .create-slice-row{
-   margin-bottom:3%;
+       margin-bottom: 4%;
+       clear: both;
+       height: 25px;
 }
 
 .create-slice-row label, .tenantDialog label{
@@ -1117,3 +1120,8 @@ display:none;
        color: #999;
        padding-bottom: 1%;
 }
+
+.create-slice-row label{
+       clear:both;
+       margin-right: 1%;
+}
index 6fedd6c..2819fe2 100644 (file)
@@ -23,7 +23,7 @@
                <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>
@@ -43,7 +43,7 @@
                         </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>&nbsp;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: {