Skip to content

Commit

Permalink
Port Bug Fix
Browse files Browse the repository at this point in the history
Unable to disassociate 'Allowed address pairs', 'DHCP Options', 'Static Routes'
- Fixed.
Fixed IP validation if fixed.

Change-Id: I2a1199fda6f1dc1201397d8a5f44f499269a49e9
Partial-Bug: #1518901
  • Loading branch information
balamurugang committed Dec 30, 2015
1 parent f0d5c50 commit 62e8e8f
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 37 deletions.
4 changes: 2 additions & 2 deletions webroot/config/networking/port/api/portsconfig.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -1535,7 +1535,7 @@ function deviceOwnerChange(error, result, DataObjectArr, DataObjectLenDetail, po
var domainProject = [];
domainProject.push(portPutData["virtual-machine-interface"]["logical_router_back_refs"][0]["to"][0]);
domainProject.push(portPutData["virtual-machine-interface"]["logical_router_back_refs"][0]["to"][1]);
callback(error, rtData, DataObjectArr);
callback(error, result, DataObjectArr);
return;
} else if((portPutData["virtual-machine-interface"]["virtual_machine_interface_device_owner"]).substring(0,7) == "compute") {
//Attach the new compute Nova
Expand Down Expand Up @@ -1602,7 +1602,7 @@ function deviceOwnerChange(error, result, DataObjectArr, DataObjectLenDetail, po
var domainProject = [];
domainProject.push(portPutData["virtual-machine-interface"]["logical_router_back_refs"][0]["to"][0]);
domainProject.push(portPutData["virtual-machine-interface"]["logical_router_back_refs"][0]["to"][1]);
callback(error, results, DataObjectArr);
callback(error, result, DataObjectArr);
return;
} else if((portPutData["virtual-machine-interface"]["virtual_machine_interface_device_owner"]).substring(0,7) == "compute") {
//Attach the new compute Nova
Expand Down
8 changes: 5 additions & 3 deletions webroot/config/networking/port/ui/js/models/fixedIPModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,13 @@ define([
return "Enter a valid IP In the format xxx.xxx.xxx.xxx";
}
if(finalObj.subnet_uuid != "") {
if(!isIPBoundToRange(fixedIP, finalObj.subnet_uuid)){
var obj =
JSON.parse(finalObj.subnet_uuid);
if(!isIPBoundToRange(obj.ipam_subnet, fixedIP)){
return "Enter a fixed IP within the selected subnet range";
}
if(isStartAddress(fixedIP, finalObj.subnet_uuid) == true ||
isEndAddress(fixedIP, finalObj.subnet_uuid) == true) {
if(isStartAddress(obj.ipam_subnet, fixedIP) == true ||
isEndAddress(obj.ipam_subnet, fixedIP) == true) {
return "Fixed IP cannot be same as broadcast/start address";
}
}
Expand Down
91 changes: 61 additions & 30 deletions webroot/config/networking/port/ui/js/models/portModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -303,10 +303,10 @@ define([
if(vlantag == null){
return "VLAN.";
}
if(!isNumber(vlantag.trim())){
if(!isNumber(String(vlantag).trim())){
return "VLAN has to be a number.";
}
var vlanVal = Number(vlantag.trim());
var vlanVal = Number(String(vlantag).trim());
if(vlanVal < 1 || vlanVal > 4094 ){
return "VLAN has to be between 1 to 4094";
}
Expand Down Expand Up @@ -353,9 +353,16 @@ define([
if(self.subnetDataSource.length > 0) {
var fixedIPList = this.model().attributes['fixedIPCollection'];
if(fixedIPList.length < self.subnetDataSource.length) {
var fixedIPModel = new FixedIPModel();
fixedIPModel.subnetDataSource = self.subnetDataSource;
fixedIPModel.subnet_uuid = self.subnetDataSource[0].value;
var fixedIPModel = new FixedIPModel(
{
subnetDataSource: self.subnetDataSource,
subnet_uuid: self.subnetDataSource[0].value,
fixedIp: ""
}
);
/*var fixedIPModel = new FixedIPModel();
fixedIPModel.subnetDataSource= self.subnetDataSource;
fixedIPModel.subnet_uuid= self.subnetDataSource[0].value;*/
fixedIPList.add([fixedIPModel]);
}
var addbtn = $("#fixedIPCollection").find(".editable-grid-add-link")[0];
Expand Down Expand Up @@ -468,9 +475,10 @@ define([
delete(newPortData.virtual_network_refs[0].attr)
}
//Security Group
if(newPortData.is_sec_grp == true) {
var msSGselectedData =
newPortData.securityGroupValue.split(",");
var sgData = getValueByJsonPath(newPortData,
"securityGroupValue","");
if(newPortData.is_sec_grp == true && sgData != "") {
var msSGselectedData = sgData.split(",");
if (msSGselectedData && msSGselectedData.length > 0) {
newPortData.security_group_refs = []
for (var i = 0; i < msSGselectedData.length; i++) {
Expand All @@ -488,6 +496,7 @@ define([
//Allow Address Pair
var aapCollection =
newPortData["allowedAddressPairCollection"].toJSON();
newPortData.virtual_machine_interface_allowed_address_pairs = {};
if (aapCollection && aapCollection.length > 0) {
var aapLocal = [];
for(i = 0 ; i< aapCollection.length ; i++){
Expand Down Expand Up @@ -517,6 +526,7 @@ define([
}
//DHCP
var allDHCPValues = newPortData["dhcpOptionCollection"].toJSON();
newPortData.virtual_machine_interface_dhcp_option_list = {};
if (allDHCPValues && allDHCPValues.length > 0) {
var unGroupedDHCPOptionsList = [];
var dhcpLen = allDHCPValues.length;
Expand Down Expand Up @@ -569,6 +579,7 @@ define([
// Static Route
var StaticRouteCollection =
newPortData["staticRouteCollection"].toJSON();
newPortData.interface_route_table_refs = [];
if (StaticRouteCollection && StaticRouteCollection.length > 0) {
var StaticRouteCollectionVal = [];
for(i = 0 ; i< StaticRouteCollection.length ; i++) {
Expand All @@ -592,39 +603,59 @@ define([
/* Fixed IP*/
var allFixedIPCollectionValue =
newPortData["fixedIPCollection"].toJSON();
newPortData.instance_ip_back_refs = [];
if (allFixedIPCollectionValue && allFixedIPCollectionValue.length > 0) {
newPortData.instance_ip_back_refs = [];
var allFixedIPLen = allFixedIPCollectionValue.length;
var fixedIPArr = [];
for(i = 0 ; i< allFixedIPLen ; i++){
fixedIPArr[i] = {};
var subnet_uuid = "";
var instanceIp = {};
instanceIp.fixedIp = allFixedIPCollectionValue[i].fixedIp();
instanceIp.domain = selectedVN[0];
instanceIp.project = selectedVN[1];
var family = "v4";
if(allFixedIPCollectionValue[i].disableFIP() == true) {
//edit case
var oldData = newPortData.rawData.instance_ip_back_refs;
var oldDataLen = oldData.length;
for(var j=0; j <= oldDataLen;j++) {
var fixedIP = allFixedIPCollectionValue[i].fixedIp();
if(fixedIP == oldData[j].fixedip.ip) {
subnet_uuid = oldData[j]["fixedip"]["subnet_uuid"];
instanceIp.fixedIp = allFixedIPCollectionValue[i].fixedIp();
instanceIp.domain = selectedVN[0];
instanceIp.project = selectedVN[1];
if(isIPv4(fixedIP)){
family = "v4";
} else if(isIPv6(fixedIP)){
family = "v6";
}
break;
}
}
} else {
//Add case
var obj =
JSON.parse(allFixedIPCollectionValue[i].subnet_uuid());
subnet_uuid = obj.subnet_uuid;
instanceIp.fixedIp = allFixedIPCollectionValue[i].fixedIp();
instanceIp.domain = selectedVN[0];
instanceIp.project = selectedVN[1];
var subnetIP = obj.default_gateway;
if(isIPv4(subnetIP)){
family = "v4";
} else if(isIPv6(subnetIP)){
family = "v6";
}
}


fixedIPArr[i] = {};
fixedIPArr[i]["instance_ip_address"] = [];
fixedIPArr[i]["instance_ip_address"][0] = {};
fixedIPArr[i]["instance_ip_address"][0] = instanceIp;
var subnet_uuid = "";
try {
var obj =
JSON.parse(allFixedIPCollectionValue[i].subnet_uuid);
subnet_uuid = obj.subnet_uuid;
} catch (exception) {
subnet_uuid = allFixedIPCollectionValue[i].subnet_uuid;
}
fixedIPArr[i]["subnet_uuid"] = subnet_uuid;

var subnetIP = instanceIp.fixedIp;
if(isIPv4(subnetIP)){
fixedIPArr[i]["instance_ip_family"] = "v4";
} else if(isIPv6(subnetIP)){
fixedIPArr[i]["instance_ip_family"] = "v6";
}

if(mode == "edit"){
fixedIPArr[i]["instance_ip_family"] = family;

if(allFixedIPCollectionValue[i].disableFIP() == true) {
fixedIPArr[i]["uuid"] =
allFixedIPCollectionValue[i]["uuid"]();
}
Expand Down Expand Up @@ -671,9 +702,9 @@ define([

// Floating IP
var allfloatingIP = newPortData.floatingIpValue.split(",")
newPortData["floating_ip_back_refs"] = [];
if (newPortData.floatingIpValue != "" &&
allfloatingIP && allfloatingIP.length > 0) {
newPortData["floating_ip_back_refs"] = [];
var allfloatingIPVal = [];
var floatingip = [];
var to = [];
Expand Down
4 changes: 2 additions & 2 deletions webroot/config/networking/port/ui/js/views/portEditView.js
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ define([
},
onVNSelectionChanged : function(e, edit) {
if(!edit) {
self.model.fixedIPCollection(new Backbone.Collection([]));
self.model.model().attributes.fixedIPCollection.reset();
var subnetDS = portFormatter.fixedIpSubnetDDFormatter(
self.model.getVNData(),
e.val);
Expand Down Expand Up @@ -379,7 +379,7 @@ define([
viewConfig: {
visible : "subnetGroupVisible()",
label:"Fixed IPs",
path: "fixedIPCollection",
path: "subnetDataSource",
validation: 'fixedIPValidations',
collection: "fixedIPCollection",
columns: [{
Expand Down

0 comments on commit 62e8e8f

Please sign in to comment.