Skip to content

Commit

Permalink
When the template is not having Analyzer or firewall, Service Instanc…
Browse files Browse the repository at this point in the history
…e was not

loading - Handled it.
In the expansion and grid showing only the selected details for other type apart from
Analyzer or firewall.
The edit button will be shown only if any details need's to be edited.

Closes-Bug:#1389258

Change-Id: Ia8c44bc9968cec821903cdb65b0cf48e8ca897c2
  • Loading branch information
balamurugang committed Nov 4, 2014
1 parent 5e7d2e6 commit 4730068
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 23 deletions.
93 changes: 71 additions & 22 deletions webroot/config/services/instances/ui/js/svcinstances_config.js
Expand Up @@ -197,15 +197,21 @@ function initComponents() {
}
},
forceFitColumns: true,
actionCell: [
{
title: 'Edit',
iconClass: 'icon-edit',
onClick: function(rowIndex){
svcInstancesCreateWindow('edit',rowIndex);
}
actionCell: function(dc){
if(dc.enableControles == true){
return [
{
title: 'Edit',
iconClass: 'icon-edit',
onClick: function(rowIndex){
svcInstancesCreateWindow('edit',rowIndex);
}
}
]
} else {
return [];
}
],
},
detail: {
template: $("#gridsTempDetailSVCInstences").html(),
}
Expand Down Expand Up @@ -582,28 +588,49 @@ function successHandlerForGridStatusUpdate(result) {
var reload = false;
var svcDS = $("#gridsvcInstances").data("contrailGrid")._dataView.getItems();
for(var i=0; i < svcDS.length ;i++){
var vmStatusData = "";
var vmStatus = "";
var VMDetails = "";
var updated = false;
if("ConfigData" in svcInstancesConfig[i] && svcDS[i].uuid == svcInstancesConfig[i].ConfigData["service-instance"].uuid){
var vmStatusData = svcInstancesConfig[i]["vmStatus"];
var vmStatus = svcInstancesConfig[i]["vmStatus"];
var VMDetails = svcInstancesConfig[i]["VMDetails"];
if(svcDS[i].showDetail == false){
vmStatusData = "Active";
vmStatus = "Active";
} else {
vmStatusData = svcInstancesConfig[i]["vmStatus"];
vmStatus = svcInstancesConfig[i]["vmStatus"];
}
VMDetails = svcInstancesConfig[i]["VMDetails"];
if(vmStatusData != "Inactive" && vmStatusData != "Active"){
reload = true;
}
updateStatus(svcDS[i],vmStatusData,vmStatus,VMDetails);
updateStatus(svcDS[i],vmStatusData,vmStatus,VMDetails);
updated = true;
} else {
for(var j=0;j<svcInstancesConfig.length;j++){
if("ConfigData" in svcInstancesConfig[i] && svcDS[i].uuid === svcInstancesConfig[j].ConfigData["service-instance"].uuid){
var vmStatus = svcInstancesConfig[j]["vmStatus"];
var vmStatusData = svcInstancesConfig[j]["vmStatus"];
var VMDetails = svcInstancesConfig[j]["VMDetails"];
if(svcDS[i].showDetail == false){
vmStatusData = "Active";
vmStatus = "Active";
} else {
vmStatus = svcInstancesConfig[j]["vmStatus"];
vmStatusData = svcInstancesConfig[j]["vmStatus"];
}
VMDetails = svcInstancesConfig[j]["VMDetails"];
updateStatus(svcDS[i],vmStatusData,vmStatus,VMDetails);
updated = true;
if(vmStatusData != "Inactive" && vmStatusData != "Active"){
reload = true;
}
break;
}
}
}
if(updated == false) {
svcDS[i].vmStatus = "Active";
svcDS[i].vmStatusData = "Active";
svcDS[i].InstDetailArr = [];
}
}
$("#gridsvcInstances").data("contrailGrid")._dataView.updateData(svcDS);
refreshSvcInstances(reload);
Expand Down Expand Up @@ -853,6 +880,7 @@ function successHandlerForGridsvcInstanceRow(result) {
var svc_ordered_interfaces = false;
var svc_image = "-";
var availability_zone = "";
var showDetail = true;

var svc_tmpl_name_text = svcInstance.service_template_refs[0].to[1];
svc_tmpl_name = svc_tmpl_name_text + " (" + ucfirst(getServiceMode(svc_tmpl_name_text)) + ")";
Expand All @@ -878,6 +906,7 @@ function successHandlerForGridsvcInstanceRow(result) {
}
}
var statRoutes = [];
var enableControles = false;
all_network = [];
availability_zone = svcInstance['service_instance_properties']['availability_zone'];
if(availability_zone == "" || availability_zone == null){
Expand All @@ -889,20 +918,31 @@ function successHandlerForGridsvcInstanceRow(result) {
&& templateDetail["service_template_properties"]["ordered_interfaces"] != "false"
&& templateDetail["service_template_properties"]["ordered_interfaces"] != false)){
svc_image = templateDetail["service_template_properties"]["image_name"];
var templateType = templateDetail["service_template_properties"]["service_type"];
if(templateType != "analyzer" && templateType != "firewall"){
showDetail = false;
svcScalingStr = "-";
}
svc_ordered_interfaces = templateDetail["service_template_properties"]["ordered_interfaces"];
svc_flavor = templateDetail["service_template_properties"]["flavor"]
for(var tinc = 0;tinc < templateOrder.length;tinc++){
//if(network != "") network += ", ";
network = ucfirst(templateOrder[tinc].service_interface_type) + " Network : ";
if(showDetail == true){
network = ucfirst(templateOrder[tinc].service_interface_type) + " Network : ";
} else {
network =" ";
}
var virNetwork = null;
if("interface_list" in svcInstance['service_instance_properties'] &&
svcInstance['service_instance_properties']["interface_list"].length > 0 &&
tinc < svcInstance['service_instance_properties']["interface_list"].length &&
"virtual_network" in svcInstance['service_instance_properties']["interface_list"][tinc] &&
svcInstance['service_instance_properties']["interface_list"][tinc]["virtual_network"] != null &&
svcInstance['service_instance_properties']["interface_list"][tinc]["virtual_network"] != undefined){
virNetwork = svcInstance['service_instance_properties']["interface_list"][tinc]["virtual_network"];
}
if(templateOrder[tinc].static_route_enable === true){
enableControles = true;
var len = statRoutes.length;
statRoutes[len] = {};
statRoutes[len]["name"] = templateOrder[tinc].service_interface_type;
Expand Down Expand Up @@ -1014,13 +1054,15 @@ function successHandlerForGridsvcInstanceRow(result) {
vmUUIds.push(vmBackRefs[k]["uuid"]);
}
}

svcInstancesData.push({"Id":idCount++, "uuid":svcInstance.uuid,
"Service_Instance":svcInstance.name,
"Service_Instance_DN":svcInstance.display_name,
"Service_Template":svc_tmpl_name,
"Service_Template_Name":svc_tmpl_name_text,
"Number_of_instances":svcScalingStr,
"Instance_Image":svc_image,
"showDetail":showDetail,
"flavor":svc_flavor,
"order":svc_ordered_interfaces,
"All_Network":all_network,
Expand All @@ -1031,6 +1073,7 @@ function successHandlerForGridsvcInstanceRow(result) {
// "InstDetailArr":InstDetailArr,
"InstDetailArr":null,
"StaticRoutes":statRoutes,
"enableControles":enableControles,
"VMUUIDS":vmUUIds,
"ServiceProperties":ServiceProperties
});
Expand Down Expand Up @@ -1332,14 +1375,15 @@ var interfacesLen = $("#instanceDiv").children().length;
}
$("#instanceDiv").append(intfDiv);
if(editData != {} && editData != undefined ){
$(selectNet).data("contrailDropdown").enable(false);
if(editData.virtual_network != ""){
$(selectNet).data("contrailDropdown").value(editData.virtual_network);
} else {
$(selectNet).data("contrailDropdown").value("Auto Configured");
$(widgetDiv).addClass("hide");
}
$(selectNet).data("contrailDropdown").enable(false);
if("static_routes" in editData && "route" in editData.static_routes){

if("static_routes" in editData && editData.static_routes != null && "route" in editData.static_routes){
for(var inc=0;inc<(editData.static_routes.route).length;inc++){
appendStaticRouteEntry(this, true,'interface_' + interfacesLen + '_srTuple','Interface '+(interfacesLen+1),editData.static_routes.route[inc].prefix);
}
Expand All @@ -1355,7 +1399,7 @@ function zoneChange(who){
var ddZoneText = $("#ddZone").data("contrailDropdown").text();
setHostForZone(ddZoneText);
}
function svcTemplateChange(who,editData) {
function svcTemplateChange(who,editData,mode) {

var templateProps = JSON.parse($("#ddsvcTemplate").data("contrailDropdown").value());
var tmplSvcScaling = templateProps["service_template_properties"]["service_scaling"];
Expand Down Expand Up @@ -1419,7 +1463,12 @@ function svcTemplateChange(who,editData) {
}
$(txtMaximumInstances).val(editData.ServiceProperties.scale_out.max_instances);
}
createInterfaceEntry(svcTmplIntf[i],i,showAuto,showOption,data);
if(mode == "edit"){
if(data != null || data != undefined)
createInterfaceEntry(svcTmplIntf[i],i,showAuto,showOption,data);
} else {
createInterfaceEntry(svcTmplIntf[i],i,showAuto,showOption,data);
}
}
}
function reorderInterface(templateObj){
Expand Down Expand Up @@ -1691,8 +1740,8 @@ function successHostZone(result,arg) {
setHostForZone(ddzoneList[0].text);
if(mode == "edit"){
var selectedRow = $("#gridsvcInstances").data("contrailGrid")._dataView.getItem(rowIndex);
var zoneHost = (selectedRow.availability_zone).split(":");
$("#ddZone").data("contrailDropdown").value(zoneHost[0]);
var zoneHost = (selectedRow.availability_zone).split(":");
setHostForZone(zoneHost[0],zoneHost[1]);
$("#ddZoneHost").attr("disabled","disabled");
}
Expand Down Expand Up @@ -1734,7 +1783,7 @@ function editWindow(rowIndex){
templateDataLocal = JSON.parse(ddsvcTemplateData[i].value);
if(selectedRow.Service_Template_Name == templateDataLocal.name){
$("#ddsvcTemplate").data("contrailDropdown").value(ddsvcTemplateData[i].value);
svcTemplateChange(this,selectedRow);
svcTemplateChange(this,selectedRow,"edit");
break;
}
}
Expand Down
Expand Up @@ -17,14 +17,18 @@
<span class="span2"><label>Template</label></span>
<span class="span10">{{ Service_Template }}</span>
</div>
{{#ifCond showDetail '===' true}}
<div class="row-fluid">
<span class="span2"><label>Number of instances</label></span>
<span class="span10">{{ Number_of_instances }}</span>
</div>
{{/ifCond}}
<div class="row-fluid">
<span class="span2"><label>Networks</label></span>
<span class="span10">{{ All_Network }}</span>
</div>

{{#ifCond showDetail '===' true}}
<div class="row-fluid">
<div class="span2"><label>Image</label></div>
<div class="span10">{{ Instance_Image }}</div>
Expand Down Expand Up @@ -68,7 +72,7 @@
{{/ifCond}}
{{/ifCond}}
{{/ifCond}}

{{/ifCond}}
</div>
</div>
</script>
Expand Down

0 comments on commit 4730068

Please sign in to comment.