Amisha's latest changes to tenant view
diff --git a/planetstack/core/plus/views.py b/planetstack/core/plus/views.py
index 3c63e16..9f5d8e4 100644
--- a/planetstack/core/plus/views.py
+++ b/planetstack/core/plus/views.py
@@ -7,6 +7,7 @@
import datetime
from pprint import pprint
import json
+from syndicate.models import *
from core.models import *
from hpc.models import ContentProvider
from operator import attrgetter
@@ -59,13 +60,13 @@
serviceClass = request.POST.get("serviceClass", "0")
imageName = request.POST.get("imageName", "0")
actionToDo = request.POST.get("actionToDo", "0")
- network = request.POST.get("network","0")
+ #network = request.POST.get("network","0")
mountDataSets = request.POST.get("mountDataSets","0")
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=image,mountDataSets=mountDataSets,network=network)
+ newSlice = Slice(name=sliceName,serviceClass=serviceClass,site=site,imagePreference=image,mountDataSets=mountDataSets)
newSlice.save()
return HttpResponse("Slice created")
@@ -75,7 +76,7 @@
serviceClass = request.POST.get("serviceClass", "0")
imageName = request.POST.get("imageName", "0")
actionToDo = request.POST.get("actionToDo", "0")
- network = request.POST.get("network","0")
+ #network = request.POST.get("network","0")
dataSet = request.POST.get("dataSet","0")
slice = Slice.objects.all()
for entry in slice:
@@ -84,19 +85,12 @@
if (actionToDo == "update"):
setattr(entry,'serviceClass',serviceClass)
setattr(entry,'imagePreference',imageName)
- setattr(entry,'network',network)
+ #setattr(entry,'network',network)
setattr(entry,'mountDataSets',dataSet)
entry.save()
break
return HttpResponse("Slice updated")
-def update_slice(sliceName,**fields):
- slice = Slice.objects.filter(name = sliceName)
- for (k,v) in fields.items():
- setattr(slice, k, v)
- slice.save()
- return slice
-
def getTenantSliceInfo(user, tableFormat = False):
tenantSliceDetails = {}
tenantSliceData = getTenantInfo(user)
@@ -108,13 +102,13 @@
tenantSliceDetails['userSliceInfo'] = tenantSliceData
tenantSliceDetails['sliceServiceClass']=userSliceTableFormatter(tenantServiceClassData)
tenantSliceDetails['image']=userSliceTableFormatter(getImageInfo(user))
- tenantSliceDetails['network']=userSliceTableFormatter(getNetworkInfo(user))
+ #tenantSliceDetails['network']=userSliceTableFormatter(getNetworkInfo(user))
tenantSliceDetails['deploymentSites']=userSliceTableFormatter(getDeploymentSites())
tenantSliceDetails['sites'] = userSliceTableFormatter(getTenantSitesInfo())
tenantSliceDetails['mountDataSets'] = userSliceTableFormatter(getMountDataSets())
+ tenantSliceDetails['publicKey'] = getPublicKey(user)
return tenantSliceDetails
-
def getTenantInfo(user):
slices =Slice.objects.all()
userSliceInfo = []
@@ -124,7 +118,7 @@
sliceServiceClass = entry.serviceClass.name
preferredImage = entry.imagePreference
sliceDataSet = entry.mountDataSets
- sliceNetwork = entry.network
+ #sliceNetwork = entry.network
numSliver = 0
sliceImage=""
sliceSite = {}
@@ -137,7 +131,7 @@
sliceNode[str(sliver)] = sliver.node.name
numSliver = sum(sliceSite.values())
numSites = len(sliceSite)
- userSliceInfo.append({'sliceName': sliceName,'sliceServiceClass': sliceServiceClass,'preferredImage':preferredImage,'numOfSites':numSites, 'sliceSite':sliceSite,'sliceImage':sliceImage,'numOfSlivers':numSliver,'sliceDataSet':sliceDataSet,'sliceNetwork':sliceNetwork, 'instanceNodePair':sliceNode})
+ userSliceInfo.append({'sliceName': sliceName,'sliceServiceClass': sliceServiceClass,'preferredImage':preferredImage,'numOfSites':numSites, 'sliceSite':sliceSite,'sliceImage':sliceImage,'numOfSlivers':numSliver,'sliceDataSet':sliceDataSet,'instanceNodePair':sliceNode})
return userSliceInfo
def getTenantSitesInfo():
@@ -154,6 +148,13 @@
}
return formattedData
+def getPublicKey(user):
+ users=User.objects.all()
+ for key in users:
+ if (str(key.email)==str(user)):
+ sshKey = key.public_key
+ return sshKey
+
def getServiceClassInfo(user):
serviceClassList = ServiceClass.objects.all()
sliceInfo = []
@@ -170,11 +171,58 @@
#imageInfo.append({'Image':imageEntry})
return imageInfo
+def createPrivateVolume(user, sliceName):
+ caps = Volume.CAP_READ_DATA | Volume.CAP_WRITE_DATA | Volume.CAP_HOST_DATA
+ getattr(Volume.default_gateway_caps,"read data") | \
+ getattr(Volume.default_gateway_caps,"write data") | \
+ getattr(Volume.default_gateway_caps,"host files")
+ v = Volume(name="private_" + sliceName, owner_id=user, description="private volume for %s" % sliceName, blocksize=61440, private=True, archive=False, default_gateway_caps = caps)
+ v.save()
+
+SYNDICATE_REPLICATE_PORTNUM = 1025
+
+def get_free_port():
+ inuse={}
+ inuse[SYNDICATE_REPLICATE_PORTNUM] = True
+ for vs in VolumeSlice.objects.all():
+ inuse[vs.peer_portnum]=True
+ inuse[vs.replicate_portnum]=True
+ for network in Network.objects.all():
+ network_ports = [x.strip() for x in network.ports.split(",")]
+ for network_port in network_ports:
+ try:
+ inuse[int(network_port)] = True
+ except:
+ # in case someone has put a malformed port number in the list
+ pass
+ for i in range(1025, 65535):
+ if not inuse.get(i,False):
+ return i
+ return False
+
+def mountVolume(sliceName, volumeName, readWrite):
+ slice = Slice.objects.get(name=sliceName)
+ volume = Volume.objects.get(name=volumeName)
+ # choose some unused port numbers
+ flags = Volume.CAP_READ_DATA
+ if readWrite:
+ flags = flags | Volume.CAP_WRITE_DATA
+ vs = VolumeSlice(volume_id = volume, slice_id = slice, gateway_caps=flags, peer_portnum = get_free_port(), replicate_portnum = SYNDICATE_REPLICATE_PORTNUM)
+ vs.save()
+
+def hasPrivateVolume(sliceName):
+ slice = Slice.objects.get(name=sliceName)
+ for vs in VolumeSlice.objects.filter(slice_id=slice):
+ if vs.volume_id.private:
+ return True
+ return False
+
def getMountDataSets():
- dataSetList = ['------','GenBank','LSST','LHC','NOAA','Measurement Lab','Common Crawl']
- dataSetInfo = []
- for entry in dataSetList:
- dataSetInfo.append({'DataSet':entry})
+ dataSetInfo=[]
+ for volume in Volume.objects.all():
+ if not volume.private:
+ dataSetInfo.append({'DataSet': volume.name})
+
return dataSetInfo
def getNetworkInfo(user):
@@ -307,6 +355,11 @@
return new_rows
+def getPageSummary(request):
+ slice = request.GET.get('slice', None)
+ site = request.GET.get('site', None)
+ node = request.GET.get('node', None)
+
class SimulatorView(View):
def get(self, request, **kwargs):
sim = json.loads(file("/tmp/simulator.json","r").read())
@@ -446,7 +499,7 @@
def post(self,request):
sliceName = request.POST.get("sliceName",None)
slice = Slice.objects.get(name=sliceName)
- print slice, slice.id
+ #print slice, slice.id
sliceToDel=Slice(name=sliceName, id=slice.id)
sliceToDel.delete()
return HttpResponse("Slice deleted")
diff --git a/planetstack/core/static/planetstack.css b/planetstack/core/static/planetstack.css
index 1fa6ea2..39102be 100644
--- a/planetstack/core/static/planetstack.css
+++ b/planetstack/core/static/planetstack.css
@@ -1034,7 +1034,7 @@
margin-left: 5%;
}
-#network-dropdown,#adv-network-dropdown{
+#network-dropdown,#adv-network-dropdown,#adv-network-value{
margin-left: 3.7%;
}
@@ -1129,3 +1129,16 @@
#advNumOfSlivers{
margin-right: 1% !important;
}
+
+#private-vol-checkbox{
+margin: 0 0 1% 1%;
+}
+
+.public-key-warning{
+text-align: center;
+display:none;
+}
+
+#private-vol{
+margin-right: 15% !important;
+}
\ No newline at end of file
diff --git a/planetstack/templates/admin/dashboard/tenant.html b/planetstack/templates/admin/dashboard/tenant.html
index c3f95ec..a09cec6 100644
--- a/planetstack/templates/admin/dashboard/tenant.html
+++ b/planetstack/templates/admin/dashboard/tenant.html
@@ -35,9 +35,13 @@
</div>
<div class="create-slice-row">
<label for="new-network">Network</label>
- <select id="new-network" class="tenant-create-slice"></select>
+ <input type="text" name="new-network" id="new-network">
</div>
<div class="create-slice-row">
+ <label for="private-vol">Include Private Vol</label>
+ <input type="checkbox" name="checkbox" id="private-vol" value="value">
+ </div>
+ <div class="create-slice-row">
<label for="mount-data-sets">Data Sets</label>
<select id="mount-data-sets" class="tenant-create-slice"></select>
</div>
@@ -66,23 +70,20 @@
</script>
<script>
$(document).ready(function () {
- function showSliceData(data,value) {
- var imageData = data['image']['rows'];
- var networkData = data['network']['rows'];
+ function showSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value) {
$("#service-level-value").empty();
$("#slice-image-value").empty();
$("#tenantSiteTable").empty();
$('#tenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="tenantSiteTableData"></table>');
$("#tenantSliceDropDown").val(value);
- var rows = data['userSliceInfo']['rows'];
var siteNames = [];
var sliverCount;
for (row in rows) {
if (rows[row]['sliceName'] == value) {
sliceImageData = rows[row]['preferredImage'];
$("#slice-image-value").html(sliceImageData);
- serviceLevelData = rows[row]['sliceServiceClass'];
- $("#service-level-value").html(serviceLevelData);
+ serviceLevelDataBasic = rows[row]['sliceServiceClass'];
+ $("#service-level-value").html(serviceLevelDataBasic);
var innerRows = rows[row]['sliceSite'];
for (innerRow in innerRows) {
sliverCount = innerRows[innerRow];
@@ -103,18 +104,16 @@
"sTitle": "Allocated",
sClass: "alignCenter"
}
- //{ "sTitle": "Allocated" , sClass: "alignCenter"},
- //{ "sTitle": "Desired" , sClass: "alignCenter"},
]
});
$('#tenantSliceDropDown').on('change', function () {
var value = $("#tenantSliceDropDown").val();
//alert(value);
- checkForBasicAdvView(value, data);
+ checkForBasicAdvView(value,rows,imageData,serviceLevelData,siteRows,dataSet);
});
}
- function downloadSliceInfo(data,value){
+ function downloadSliceInfo(rows,imageData,serviceLevelData,siteRows,dataSet,value){
$("#download-details").unbind().click(function(){
function download(filename, text) {
var sliceDetails = document.createElement('a');
@@ -122,7 +121,6 @@
sliceDetails.setAttribute('download', filename);
sliceDetails.click();
}
- var rows = data['userSliceInfo']['rows'];
var sliceInfo;
for (row in rows){
if(rows[row]['sliceName']==value){
@@ -140,8 +138,9 @@
var allocatedSlivers = parseInt($(this).parent().siblings(".allocated").html());
var td = $(this).parent().siblings(".allocated");
var pos = oTable.fnGetPosition(td[0]);
+ $("#numOfSlivers").val("");;
+ $("#advNumOfSlivers").val("");;
$("#adv-tooltip").css("display", "none");
- $("#numOfSlivers").empty();
$("#adv-dialog-form").dialog({
autoOpen: false,
height: 200,
@@ -151,21 +150,15 @@
buttons: {
"Add": function () {
allocatedSlivers += parseInt($("#advNumOfSlivers").val());
- //if (!(parseInt($("#numOfSlivers").val()))) {
$("#adv-tooltip").css("display", "block");
- //} else {
$(this).dialog("close");
td.html(allocatedSlivers);
- //}
},
"Remove": function () {
allocatedSlivers -= parseInt($("#advNumOfSlivers").val());
- // if (!(parseInt($("#numOfSlivers").val()))) {
$("#adv-tooltip").css("display", "block");
- // } else {
$(this).dialog("close");
td.html(allocatedSlivers);
- // }
}
}
});
@@ -173,23 +166,15 @@
});
}
- function advShowSliceData(data,value) {
- var serviceLevelData = data['sliceServiceClass']['rows'];
- var imageData = data['image']['rows'];
- var networkData = data['network']['rows'];
- var siteRows = data['sites']['rows'];
- var dataSet = data['mountDataSets']['rows'];
+ function advShowSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value) {
$("#adv-service-level-value").empty();
$("#adv-slice-image-value").empty();
$("#adv-slice-data-set-value").empty();
- $("#adv-slice-network-value").empty();
$("#advTenantSliceDropDown").val(value);
$("<select></select>").attr('id', 'adv-service-level-dropdown').appendTo('#adv-service-level-value');
$("<select></select>").attr('id', 'adv-image-dropdown').appendTo('#adv-slice-image-value');
- $("<select></select>").attr('id', 'adv-network-dropdown').appendTo('#adv-slice-network-value');
$("<select></select>").attr('id', 'adv-dataset-dropdown').appendTo('#adv-slice-data-set-value');
$('#advTenantSiteTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="advTenantSiteTableData"></table>');
- var rows = data['userSliceInfo']['rows'];
var siteNames = [];
var sliverCount;
var tableData = {};
@@ -199,9 +184,6 @@
for (row in imageData) {
$("#adv-image-dropdown").append("<option>" + imageData[row]['Image'] + "</option>");
}
- for (row in networkData) {
- $("#adv-network-dropdown").append("<option>" + networkData[row]['Network'] + "</option>");
- }
for (row in dataSet) {
$("#adv-dataset-dropdown").append("<option>" + dataSet[row]['DataSet'] + "</option>");
}
@@ -212,7 +194,6 @@
$("#adv-service-level-dropdown").val(rows[row]['sliceServiceClass']);
$("#adv-image-dropdown").val(rows[row]['preferredImage']);
$("#adv-dataset-dropdown").val(rows[row]['sliceDataSet']);
- $("#adv-network-dropdown").val(rows[row]['sliceNetwork']);
for (innerRow in innerRows) {
tableData[innerRow] = innerRows[innerRow];
}
@@ -249,8 +230,8 @@
},
type: 'POST',
complete: function () {
- //oTable.fnReloadAjax();
- location.reload();
+ //location.reload();
+
}
});
} else if (newTableData[newRow] < tableData[newRow]) {
@@ -267,8 +248,7 @@
},
type: 'POST',
complete: function () {
- // oTable.fnReloadAjax();
- location.reload();
+ //location.reload();
}
});
}
@@ -280,7 +260,6 @@
sliceName: $("#advTenantSliceDropDown").val(),
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
@@ -288,8 +267,8 @@
},
type: 'POST',
complete: function () {
- //oTable.fnReloadAjax();
- location.reload();
+ $("#tabs-5").empty();
+ initTenant(); //location.reload();
}
});
@@ -315,20 +294,17 @@
});
editSliverAdv();
$('#advTenantSliceDropDown').on('change', function () {
- var selectedValue = $("#advTenantSliceDropDown").val();
- //alert(selectedValue);
- checkForBasicAdvView(selectedValue, data);
- //editSliverAdv();
+ var selectedValue = $("#advTenantSliceDropDown").val();
+ checkForBasicAdvView(selectedValue, rows,imageData,serviceLevelData,siteRows,dataSet);
});
}
- function checkForBasicAdvView(value, data) {
- var rows = data['userSliceInfo']['rows'];
+ function checkForBasicAdvView(value, rows,imageData,serviceLevelData,siteRows,dataSet) {
for (row in rows) {
if (rows[row]['sliceName'] == value) {
if (rows[row]['numOfSites'] > 1) {
- advShowSliceData(data,value);
- downloadSliceInfo(data,value);
+ advShowSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value);
+ downloadSliceInfo(rows,imageData,serviceLevelData,siteRows,dataSet,value);
$("#tenantSliceDataWrapper").css("display","none");
$("#advancedTenantSliceDataWrapper").css("display","block");
$("#advTenantSiteTable").css("display","block");
@@ -337,9 +313,8 @@
$("#save-btn").css("display","block");
break;
} else if(rows[row]['numOfSites'] <= 1){
- showSliceData(data,value);
- downloadSliceInfo(data,value);
- //editSliverAdv();
+ showSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value);
+ downloadSliceInfo(rows,imageData,serviceLevelData,siteRows,dataSet,value);
$("#tenantSliceDataWrapper").css("display","block");
$("#advancedTenantSliceDataWrapper").css("display","none");
$("#advTenantSiteTable").css("display","none");
@@ -352,15 +327,14 @@
}
}
- function UserSliceTable(data) {
+ function UserSliceTable(rows,imageData,serviceLevelData,siteRows,dataSet) {
//Add check for #dynamicusersliceinfo_filter label-> input having focus here
- var rows = data['userSliceInfo']['rows'];
$("<div></div>").attr('id', 'tenantSliceDataWrapper').appendTo('#tabs-5');
$("<div></div>").attr('id', 'advancedTenantSliceDataWrapper').appendTo('#tabs-5');
var sliceData = '';
- sliceData += '<div class="tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="slice-name-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="service-level-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="slice-image-value"> </span> </span><br></div><div class="btn btn-high btn-info" id="advanced-tenant">Go to Advanced View</div>';
+ sliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><div class="tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="slice-name-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="service-level-value"> </span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="slice-image-value"> </span> </span><br></div><div class="btn btn-high btn-info" id="advanced-tenant">Go to Advanced View</div>';
var advSliceData = '';
- advSliceData += '<div class="adv-tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="adv-slice-name-value"> </span> </span><br><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="adv-service-level-value"> </span> <span class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="adv-slice-image-value"> </span><span class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Network:</b> <span id="adv-slice-network-value"> </span> <span class="help-inline">Changes are potentially disruptive to existing slivers</span></span></div><div class="tenant-row"><span class="summary-attr"><b>Data Sets:</b> <span id="adv-slice-data-set-value"> </span> </span></div>';
+ advSliceData += '<div class="tenant-row public-key-warning"><span class="summary-attr">You have not uploaded your Public Key. <a href="http://{{ request.get_host}}/admin/core/user/{{user.id}}">Click here</a> to upload it now.</span></div><div class="adv-tenant-row"><span class="summary-attr"><b>Slice Name:</b> <span id="adv-slice-name-value"> </span> </span><br><br></div><div class="tenant-row"><span class="summary-attr"><b>Service Level:</b> <span id="adv-service-level-value"> </span> <span class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Image:</b> <span id="adv-slice-image-value"> </span><span class="help-inline">Changes are potentially disruptive to existing slivers</span> </span><br></div><div class="tenant-row"><span class="summary-attr"><b>Network:</b> <input type="text" name="adv-network-value" id="adv-network-value"> <span class="help-inline">List of port ranges(if any) e.g. 1021-1026,1029</span><br></div><div class="tenant-row"><span class="summary-attr"><b>Data Sets:</b> <span id="adv-slice-data-set-value"> </span> <input type="checkbox" name="checkbox" id="private-vol-checkbox" value="value"><span class="help-inline">Include Private Volume</span></span></div>';
$('#tenantSliceDataWrapper').append(sliceData).css("display", "none");
$('#advancedTenantSliceDataWrapper').append(advSliceData);
$("#advancedTenantSliceDataWrapper").css("display", "none");
@@ -381,7 +355,7 @@
$('<div class="btn btn-high btn-info" id="save-btn">Save</div>').appendTo("#tabs-5").css("display", "none");
$("#advanced-tenant").unbind().click(function () {
var value = $("#tenantSliceDropDown").val();
- advShowSliceData(data,value);
+ advShowSliceData(rows,imageData,serviceLevelData,siteRows,dataSet,value);
$("#tenantSliceDataWrapper").css("display","none");
$("#advancedTenantSliceDataWrapper").css("display","block");
$("#advTenantSiteTable").css("display","block");
@@ -391,7 +365,6 @@
});
$("#sliver-btn").click(function () {
- $("#numOfSlivers").empty();
$("#basic-tooltip").css("display", "none");
$("#dialog-form").dialog({
autoOpen: false,
@@ -420,8 +393,9 @@
return true;
}
},
- complete: function () {
+ success: function () {
location.reload();
+$("#dialog-form").dialog("close");
}
});
},
@@ -445,8 +419,10 @@
return true;
}
},
- complete: function () {
- location.reload();
+ success: function () {
+$("#dialog-form").dialog("close");
+location.reload();
+
}
});
}
@@ -455,10 +431,6 @@
$("#dialog-form").dialog("open");
});
$("#create-slice-btn").unbind().click(function () {
- var serviceLevelData = data['sliceServiceClass']['rows'];
- var imageData = data['image']['rows'];
- var dataSet = data['mountDataSets']['rows'];
- var networkData = data['network']['rows'];
$("#new-service-class").empty();
$("#new-image").empty();
$("#mount-data-sets").empty();
@@ -472,9 +444,6 @@
for (row in dataSet) {
$("#mount-data-sets").append("<option>" + dataSet[row]['DataSet'] + "</option>");
}
- for (row in networkData) {
- $("#new-network").append("<option>" + networkData[row]['Network'] + "</option>");
- }
var nameOfSlice = $("#new-slice-name").val();
var nameOfServiceClass = $("#new-service-class").val();
var nameOfImage = $("#new-image").val();
@@ -540,7 +509,6 @@
$("#create-slice-form").dialog("open");
});
$("#delete-slice-btn").unbind().click(function () {
- var rows = data['userSliceInfo']['rows'];
$("#delete-slice").empty();
for (row in rows) {
$("#delete-slice").append("<option>" + rows[row]['sliceName'] + "</option>");
@@ -583,9 +551,18 @@
url: '/tenantview',
dataType: 'json',
success: function (data) {
- UserSliceTable(data);
+ var rows = data['userSliceInfo']['rows'];
+ var imageData = data['image']['rows'];
+ //var networkData = data['network']['rows'];
+ var serviceLevelData = data['sliceServiceClass']['rows'];
+ var siteRows = data['sites']['rows'];
+ var dataSet = data['mountDataSets']['rows'];
+ UserSliceTable(rows,imageData,serviceLevelData,siteRows,dataSet);
+ if(!(data['publicKey'])){
+ $(".public-key-warning").css("display","block");
+ }
var value = $("#tenantSliceDropDown").val();
- checkForBasicAdvView(value, data);
+ checkForBasicAdvView(value,rows,imageData,serviceLevelData,siteRows,dataSet);
$("#tooltip").css("display", "none");
$("#basic-tooltip").css("display", "none");
$("#adv-tooltip").css("display", "none");