Skip to content

Commit

Permalink
Closes-bug: #1452035 - Consolidate global configuration options on on…
Browse files Browse the repository at this point in the history
…e page

Change-Id: I612e96de6ad649033e67fa80d1ed6c64d3a7b9ec
  • Loading branch information
sbavanasi committed May 20, 2015
1 parent d35811c commit c830bf0
Show file tree
Hide file tree
Showing 10 changed files with 1,045 additions and 450 deletions.
10 changes: 10 additions & 0 deletions webroot/common/api/jsonDiff.helper.js
Expand Up @@ -58,6 +58,16 @@ var configJsonModifyObj = {
'optFields': ['virtual_machine_interface_refs'],
'mandateFields': ['fq_name', 'uuid', 'display_name']
},
'global-system-config': {
'isConfig': true,
'optFields': ['autonomous_system', 'ibgp_auto_mesh', 'ip_fabric_subnets'],
'mandateFields': ['fq_name', 'uuid', 'display_name']
},
'global-vrouter-config': {
'isConfig': true,
'optFields': ['vxlan_network_identifier_mode', 'encapsulation_priorities', 'linklocal_services'],
'mandateFields': ['fq_name', 'uuid', 'display_name']
},
'physical-topology': {
'preProcessCB': {
'applyOnOldJSON': modifyPhyTopoData,
Expand Down
108 changes: 93 additions & 15 deletions webroot/config/bgp/api/admin.api.js
Expand Up @@ -1066,18 +1066,20 @@ function updateGlobalConfigObj (error, data,
commonUtils.handleJSONResponse(error, response, null);
return;
}

var actData = commonUtils.cloneObj(data);
gASN = globalASNBody['global-system-config']['autonomous_system'] ;
data['global-system-config']['autonomous_system'] = gASN;

gscURL += data['global-system-config']['uuid'];

configApiServer.apiPut(gscURL, data, appData,
function(error, data) {
setTimeout(function() {
var diffObj = jsonDiff.getConfigJSONDiff('global-system-config', actData, data);
if(diffObj != null) {
configApiServer.apiPut(gscURL, diffObj, appData,
function(error, data) {
commonUtils.handleJSONResponse(error, response, null);
}, 3000);
});
});
} else {
commonUtils.handleJSONResponse(error, response, null);
}
}

/**
Expand Down Expand Up @@ -1136,18 +1138,20 @@ function updateiBGPAutoMeshObj (error, data,
commonUtils.handleJSONResponse(error, response, null);
return;
}

var actData = commonUtils.cloneObj(data);
iBGPAutoMesh = globaliBGPAutoMesh['global-system-config']['ibgp_auto_mesh'] ;
data['global-system-config']['ibgp_auto_mesh'] = iBGPAutoMesh;

gscURL += data['global-system-config']['uuid'];

configApiServer.apiPut(gscURL, data, appData,
function(error, data) {
setTimeout(function() {
var diffObj = jsonDiff.getConfigJSONDiff('global-system-config', actData, data);
if(diffObj != null) {
configApiServer.apiPut(gscURL, diffObj, appData,
function(error, data) {
commonUtils.handleJSONResponse(error, response, null);
}, 3000);
});
});
} else {
commonUtils.handleJSONResponse(error, response, null);
}
}

/**
Expand Down Expand Up @@ -1193,6 +1197,78 @@ function updateiBGPAutoMesh (request, response, appData) {
});
}

/**
* @updateIPFabricSubnetsObj
* Update the IP Fabric Subnets
*/
function updateIPFabricSubnetsObj (error, data,
globalIPFabricSubnets, response, appData)
{
var gscURL = '/global-system-config/';
var ipFabricSubnets = null;

if (error) {
commonUtils.handleJSONResponse(error, response, null);
return;
}
var actData = commonUtils.cloneObj(data);
ipFabricSubnets = globalIPFabricSubnets['global-system-config']['ip_fabric_subnets'] ;
data['global-system-config']['ip_fabric_subnets'] = ipFabricSubnets;
gscURL += data['global-system-config']['uuid'];
var diffObj = jsonDiff.getConfigJSONDiff('global-system-config', actData, data);
if(diffObj != null) {
configApiServer.apiPut(gscURL, diffObj, appData,
function(error, data) {
commonUtils.handleJSONResponse(error, response, null);
});
} else {
commonUtils.handleJSONResponse(error, response, null);
}
}

/**
* @getIPFabricSubnetsObj
* private function
* Gets the GSC Object
*/
function getIPFabricSubnetsObj (error, data, globalIPFabricSubnets, response, appData) {
var gscURL = '/global-system-config/';

if (error) {
commonUtils.handleJSONResponse(error, response, null);
return;
}

gscURL += data['uuid'];

configApiServer.apiGet(gscURL, appData,
function(error, data) {
updateIPFabricSubnetsObj(error, data,
globalIPFabricSubnets, response, appData)
});
}


/**
* @updateIPFabricSubnets
* public function
* 1. URL /api/tenants/admin/config/ip-fabric-subnets
* 2. Updates Global ASN
*/
function updateIPFabricSubnets (request, response, appData) {
var globalIPFabricSubnets = request.body;
var fqnameURL = '/fqname-to-id';
var gscReqBody = null;

gscReqBody = {'fq_name': ['default-global-system-config'],
'type': 'global-system-config'};
configApiServer.apiPost(fqnameURL, gscReqBody, appData,
function(error, data) {
getIPFabricSubnetsObj(error, data,
globalIPFabricSubnets, response, appData);
});
}

/**
* @readGlobalConfigObj
* private function
Expand Down Expand Up @@ -1221,7 +1297,8 @@ function readGlobalConfigObj (error, data, globalASNBody, response, appData) {
['uuid'],
'autonomous_system':data['global-system-config']
['autonomous_system'],
'ibgp_auto_mesh':data['global-system-config']['ibgp_auto_mesh']}
'ibgp_auto_mesh':data['global-system-config']['ibgp_auto_mesh'],
'ip_fabric_subnets':data['global-system-config']['ip_fabric_subnets']}
};
commonUtils.handleJSONResponse(error, response, gscObj);
return;
Expand Down Expand Up @@ -1784,4 +1861,5 @@ exports.deleteBGPRouter = deleteBGPRouter;
exports.getControlNodeDetailsFromConfig = getControlNodeDetailsFromConfig;
exports.getApiServerDataByPage = getApiServerDataByPage;
exports.updateiBGPAutoMesh = updateiBGPAutoMesh;
exports.updateIPFabricSubnets = updateIPFabricSubnets;

6 changes: 6 additions & 0 deletions webroot/config/bgp/api/parseURL.xml
Expand Up @@ -134,5 +134,11 @@
<feature>orchestration</feature>
<callback>adminapi.getApiServerDataByPage</callback>
</item>
<item>
<url>/api/tenants/admin/config/ip-fabric-subnets</url>
<method>put</method>
<feature>bgp</feature>
<callback>adminapi.updateIPFabricSubnets</callback>
</item>
</urlLists>

5 changes: 2 additions & 3 deletions webroot/config/bgp/ui/js/bgp_config.js
Expand Up @@ -171,6 +171,7 @@ function clearBgpWindow() {
$('#ddAuthType').data('contrailDropdown').value('none');
$('#ddProuter').data('contrailDropdown').value('none');
disableAuthKeyTextbox();
window.selectedRow = null;
}

function disableAuthKeyTextbox() {
Expand Down Expand Up @@ -809,9 +810,7 @@ function initComponents() {
//},
customControls: [
'<a id="btndelbgp" class="disabled-link" title="Delete BGP Peer(s)"><i class="icon-trash"></i></a>',
'<a id="btnaddbgp" class="disabled-link" onclick="btnaddbgpClick();return false;" title="Create BGP Peer"><i class="icon-plus"></i></a>',
'<button id="btneditgasn" class="btn btn-primary btn-mini" onclick="openGasnWindow();return false;" title="Edit Global ASN"></button>',
'<div><input type="checkbox" id="chk_ibgp_auto_mesh" class="ace-input" onchange="toggleiBGPAutoMesh(this)"></input><span class="ace-lbl">&nbsp;</span><label class="ace-lbl hyperlink-active" for="chk_ibgp_auto_mesh">iBGP Auto Mesh</label></div>'
'<a id="btnaddbgp" class="disabled-link" onclick="btnaddbgpClick();return false;" title="Create BGP Peer"><i class="icon-plus"></i></a>'
]
},
columnHeader : {
Expand Down

0 comments on commit c830bf0

Please sign in to comment.