/** * @parseVDNSRecords * private function * 1. Gets the Virtual DNS record list and then does an individual get on * the record for a given virtual DNS */ function parseVDNSRecords(error, response, vdnsConfig, appData) { var vdnsRecordRef = null; var vdnsRecordUrl = null; var dataObjArr = []; var vdnsObj = null; var vdnsRecordRefsLen = 0; if ( 'virtual_DNS_records' in vdnsConfig['virtual-DNS']) { vdnsRecordRef = vdnsConfig['virtual-DNS']['virtual_DNS_records']; vdnsRecordRefsLen = vdnsRecordRef.length; } for (i = 0; i < vdnsRecordRefsLen; i++) { if(vdnsRecordRef) { vdnsObj = vdnsRecordRef[i]; vdnsRecordUrl = '/virtual-DNS-record/' + vdnsObj['uuid']; commonUtils.createReqObj(dataObjArr, vdnsRecordUrl, global.HTTP_REQUEST_GET, response[i], null, null, appData); } } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, results) { VDNSRecordAggCb(error, results, vdnsConfig, function (error, data) { commonUtils.handleJSONResponse(error, response, data); }); }); }
function getVNDetailsByServiceInstances(serviceInstances, appData, callback) { var cnt = serviceInstances.length; var insertedProjList = {}; var dataObjArr = []; for (var i = 0, j = 0; i < cnt; i++) { var serInst = serviceInstances[i]['service-instance']; var projUUID = serInst['parent_uuid']; if (null == insertedProjList[projUUID]) { reqUrl = '/project/' + projUUID; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); insertedProjList[projUUID] = projUUID; } } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function (err, configData) { getNetworkPolicyDetailsByProjList(configData, appData, function (err, data) { serviceInstances = updateServiceInstanceWithPolicy(serviceInstances, data); callback(serviceInstances); }); }); }
/** * @getLogicalInterfaceDetails * private function * get logical interafce details */ function getLogicalInterfaceDetails(dataObjPostArr, pRouters, prouterMap, callback) { async.mapLimit(dataObjPostArr, 50, commonUtils.getAPIServerResponse(configApiServer.apiPost, true), function(error, results) { if (error) { callback(error, null); } var pRoutersCnt = pRouters.length; for (var i = 0; i < pRoutersCnt; i++) { pRouters[i]['physical-router']['totalIntfCount'] = 0; if(pRouters[i]['physical-router']['physical_interfaces'] != null) pRouters[i]['physical-router']['totalIntfCount'] += pRouters[i]['physical-router']['physical_interfaces'].length; if(pRouters[i]['physical-router']['logical_interfaces'] != null) pRouters[i]['physical-router']['totalIntfCount'] += pRouters[i]['physical-router']['logical_interfaces'].length; var prStartIndex = prouterMap[i][0]; var prEndIndex = prouterMap[i][1]; if(-1 == prStartIndex){ continue; } for (var j = prStartIndex; j <= prEndIndex; j++) { pRouters[i]['physical-router']['totalIntfCount'] += results[j]['logical-interfaces']['count']; } delete pRouters[i]['physical-router']['physical_interfaces']; delete pRouters[i]['physical-router']['logical_interfaces']; } callback(error, pRouters); } ); }
function getPhysicalRoutersDetails(error, data, response, appData) { var reqUrl = null; var dataObjArr = []; var i = 0, pRoutersLength = 0; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } if(data['physical-routers'] != null) { pRoutersLength = data['physical-routers'].length; for(i = 0; i < pRoutersLength; i++) { reqUrl = '/physical-router/' + data['physical-routers'][i]['uuid']; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } if(dataObjArr.length > 0) { async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function(error, results) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } getPhysicalInterfaceDetails(error, results, response, appData); } ); } else { commonUtils.handleJSONResponse(error, response, []); } } else { commonUtils.handleJSONResponse(error, response, []); } }
configApiServer.apiGet(url, appData, function (error, bgpJSON) { if (error) { callback(error, bgpJSON); } else { try { bgpCount = bgpJSON["bgp-routers"].length; for (i = 0; i < bgpCount; i += 1) { uuid = bgpJSON["bgp-routers"][i].uuid; bgpURLs[i] = '/bgp-router/' + uuid; commonUtils.createReqObj(dataObjArr, bgpURLs[i], global.HTTP_REQUEST_GET, null, null, null, appData); delete bgpJSON["bgp-routers"][i]["fq_name"]; } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function (err, results) { if (results) { parseBgpJSON(resultJSON, results); callback(null, resultJSON); } else { callback(err, resultJSON); } }); } catch(e) { console.log("In getBgpNodeList(): JSON parse error:" + e); callback(e, resultJSON); } } });
function updateVTData(vnData, lruuid, appData, callback){ var vnDataArr = []; var vnDataLength = vnData.length; for (var i = 0; i < vnDataLength; i++){ if("route_table_refs" in vnData[i]["virtual-network"]){ var rtref = vnData[i]["virtual-network"]["route_table_refs"]; if (rtref.length > 0){ var rtrefLen = rtref.length; for (var j = 0; j < rtrefLen; j++){ if (rtref[j]["to"][2] == ("rt_"+lruuid)){ var vnuuid = vnData[i]["virtual-network"]["uuid"] rtref.splice(j, 1); var reqUrl = '/virtual-network/' + vnuuid; var responceData = createvnObj(vnData[i], rtref); commonUtils.createReqObj(vnDataArr, reqUrl, global.HTTP_REQUEST_PUT, responceData, null, null, appData); break; } } } } } if (vnDataArr.length > 0) { async.map(vnDataArr, commonUtils.getAPIServerResponse(configApiServer.apiPut, false), function(error, vnData) { callback(error, vnData); return; }); } else { callback(null, []); return; } }
adminApiHelper.getControlNodeList(appData, function(err, configData) { if (err || (null == configData)) { commonUtils.handleJSONResponse(err, res, null); return; } var len = configData.length; for (var i = 0; i < len; i++) { reqUrl = '/analytics/uves/bgp-peer/*' + configData[i]['name'] + '*'; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } for (i = 0; i < len; i++) { reqUrl = '/analytics/uves/xmpp-peer/' + configData[i]['name'] + ':*?flat'; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } async.map(dataObjArr, commonUtils.getAPIServerResponse(opApiServer.apiGet, true), function(err, results) { for (var i = 0; i < len; i++) { resultJSON[i] = {}; resultJSON[i] = processControlNodePeerDetails(configData[i]['name'], results[i], results[i + len]); resultJSON[i]['host'] = configData[i]['name']; resultJSON[i]['ip'] = configData[i]['ip']; } commonUtils.handleJSONResponse(err, res, resultJSON); }); });
configApiServer.apiGet(siURL, appData, function(err, data) { if ((null != err) || (null == data) || (null == data['service-instances'])) { commonUtils.handleJSONResponse(err, res, []); return; } var siData = data['service-instances']; var siCnt = siData.length; for (var i = 0; i < siCnt; i++) { var siReqURL = '/service-instance/' + siData[i]['uuid']; commonUtils.createReqObj(siDataObjArr, siReqURL, global.HTTP_REQUEST_GET, null, null, null, appData); } if (!siDataObjArr.length) { commonUtils.handleJSONResponse(err, res, []); return; } async.map(siDataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(err, results) { commonUtils.handleJSONResponse(err, res, results); }); });
function getNetworkPolicyDetailsByProjList(projList, appData, callback) { var prjCnt = projList.length; var dataObjArr = []; for (var i = 0, k = 0; i < prjCnt; i++) { try { var policys = projList[i]['project']['network_policys']; var policyCnt = policys.length; } catch (e) { continue; } for (var j = 0; j < policyCnt; j++) { try { var reqUrl = '/network-policy/' + policys[j]['uuid']; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } catch (e) { continue; } } } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function (err, configData) { callback(err, configData); }); }
function getPhysicalInterfacesLogicalInterfaceCount(error, pRouters, response, appData){ var pInterfacesLength = 0; var result = []; var dataObjArr = []; var dataObjPostArr = []; var prouterMap = [];//Keep the map of prouter uuid and array of arrays of pinterfaces var pRoutersCnt = pRouters.length; var totalCnt = 0; for(var k = 0; k < pRoutersCnt; k++){ var prouter = pRouters[k]; var pIntfUUIDs = []; if(prouter['physical-router'] != null && prouter['physical-router']['physical_interfaces'] != null && prouter['physical-router']['physical_interfaces'].length > 0){ pInterfacesLength = prouter['physical-router']['physical_interfaces'].length; for(i = 0; i < pInterfacesLength; i++) { pIntfUUIDs.push(prouter['physical-router']['physical_interfaces'][i]['uuid']); } var dataObjArr = getChunkedUrl(pIntfUUIDs,appData); prouterMap[k] = [totalCnt, totalCnt + dataObjArr.length - 1]; totalCnt = totalCnt + dataObjArr.length; dataObjPostArr = dataObjPostArr.concat(dataObjArr); } else { prouterMap[k] = [-1, -1]; } } if(dataObjArr.length > 0) { async.mapLimit(dataObjPostArr, 50, commonUtils.getAPIServerResponse(configApiServer.apiPost, true), function(error, results) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } for (var i = 0; i < pRoutersCnt; i++) { pRouters[i]['physical-router']['totalIntfCount'] = 0; if(pRouters[i]['physical-router']['physical_interfaces'] != null) pRouters[i]['physical-router']['totalIntfCount'] += pRouters[i]['physical-router']['physical_interfaces'].length; if(pRouters[i]['physical-router']['logical_interfaces'] != null) pRouters[i]['physical-router']['totalIntfCount'] += pRouters[i]['physical-router']['logical_interfaces'].length; var prStartIndex = prouterMap[i][0]; var prEndIndex = prouterMap[i][1]; if(-1 == prStartIndex){ continue; } for (var j = prStartIndex; j <= prEndIndex; j++) { pRouters[i]['physical-router']['totalIntfCount'] += results[j]['logical-interfaces']['count']; } delete pRouters[i]['physical-router']['physical_interfaces']; delete pRouters[i]['physical-router']['logical_interfaces']; } commonUtils.handleJSONResponse(error, response, pRouters); } ); } else { commonUtils.handleJSONResponse(error, response, pRouters); } }
function(error, pRouterDetails) { //console.log("ERROR:", JSON.stringify(pRouterDetails)); if(error || pRouterDetails == null || pRouterDetails.length == 0) { commonUtils.handleJSONResponse(error, response, []); return; } var pInfObjArry = []; var pRouterDetailLen = pRouterDetails.length; for(var i = 0; i < pRouterDetailLen; i++) { var pRouterDetail = pRouterDetails[i]['physical-router']; //get logical interfaces uuid under physical routers if(pRouterDetail.logical_interfaces != null) { var liProuterDet = pRouterDetail.logical_interfaces; var liProuterDetLen = liProuterDet.length; for(var j = 0; j < liProuterDetLen; j++) { liUUIDArry.push(liProuterDet[j].uuid); } } //prepare physcial interface's obj array to get details if(pRouterDetail.physical_interfaces != null) { var piProuterDet = pRouterDetail.physical_interfaces; var piProuterDetLen = piProuterDet.length; for(var j = 0; j < piProuterDetLen; j++) { var piReqUrl = '/physical-interface/' + piProuterDet[j].uuid; commonUtils.createReqObj(pInfObjArry, piReqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } } } async.map(pInfObjArry, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function(error, pInfDetails) { if(error || pInfDetails == null || pInfDetails.length == 0){ commonUtils.handleJSONResponse(error, response, []); return; } var pInfDetailsLen = pInfDetails.length; for(var i = 0; i < pInfDetailsLen; i++) { var pInf = pInfDetails[i]['physical-interface']; if(pInf.logical_interfaces != null && pInf.logical_interfaces.length > 0) { var lInfs = pInf.logical_interfaces; var lInfsLen = lInfs.length; for(var j = 0; j < lInfsLen; j++) { liUUIDArry.push(lInfs[j].uuid); } } } //get all logical interface details var lInfObjArry = []; var liUUIDArryLen = liUUIDArry.length; for(var i = 0; i < liUUIDArryLen; i++) { var lInfReqUrl = '/logical-interface/' + liUUIDArry[i]; commonUtils.createReqObj(lInfObjArry, lInfReqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } getVirtualMachineInterfaceDetails(request, response, appData, lInfObjArry); } ); }
/** * @updatePolicyUpdateNets * private function * Updates Network Policy references from VNs */ function updatePolicyUpdateNets(error, results, polConfig, policyId, appData, callback) { var vnRef = null; var polVNRef = {}; var vnPolRef = []; var vnURL = null; var vnLen = 0, i = 0, j = 0; var polVNRefLen = []; var polVNRefObj = {}; var vnUUID = null; var dataObjArr = []; if (error) { callback(error, null); return; } vnLen = results.length; for (i = 0; i < vnLen; i++) { vnUUID = results[i]['virtual-network']['uuid']; polVNRef = polConfig['network-policy']['net_uuid'][vnUUID]; vnURL = '/virtual-network/' + vnUUID; if (!('network_policy_refs' in results[i]['virtual-network'])) { results[i]['virtual-network']['network_policy_refs'] = []; } vnPolRef = results[i]['virtual-network']['network_policy_refs']; if (polVNRef['oper'] == 'add') { polVNRef['attr']['sequence'] = { 'major':vnPolRef.length, 'minor':0}; polVNRefObj = { to:polConfig['network-policy']['fq_name'], attr:polVNRef['attr'], uuid:polConfig['network-policy']['uuid'] }; vnPolRef.push(polVNRefObj); } else { vnPolRefLen = vnPolRef.length; for (j = 0; j < vnPolRefLen; j++) { if (polConfig['network-policy']['uuid'] == vnPolRef[j]['uuid']) { vnPolRef.splice(j, 1); break; } } } commonUtils.createReqObj(dataObjArr, vnURL, global.HTTP_REQUEST_PUT, results[i], null, null, appData); } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiPut, false), function (error, results) { callback(error, results); }); return; }
/** * @getFipPoolsForProjectCb * private function * 1. Callback for getFipPoolsForProject */ function getFipPoolsForProjectCb (error, projectData, appData, callback) { var fipPool = {}; var fipPoolReqArry = []; if (error) { callback(error, fipPool); return; } fipPool['floating_ip_pool_refs'] = []; if ('floating_ip_pool_refs' in projectData['project']) { fipPool['floating_ip_pool_refs'] = projectData['project']['floating_ip_pool_refs']; var poolLength = fipPool['floating_ip_pool_refs'].length; for(var poolCnt = 0; poolCnt < poolLength; poolCnt++) { var fipPoolReqUrl = '/floating-ip-pool/' + fipPool['floating_ip_pool_refs'][poolCnt].uuid; commonUtils.createReqObj(fipPoolReqArry, fipPoolReqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } if(fipPoolReqArry.length > 0) { async.map(fipPoolReqArry, commonUtils.getAPIServerResponse(configApiServer.apiGet, true) , function(err, data){ var nwReqArry = []; if (err) { commonUtils.handleJSONResponse(err, response, null); return; } if(data && data.length > 0) { for(var poolCnt = 0; poolCnt < data.length; poolCnt++) { try { var nwReqUrl = '/' + data[poolCnt]['floating-ip-pool']['parent_type'] + '/' + data[poolCnt]['floating-ip-pool']['parent_uuid']; commonUtils.createReqObj(nwReqArry, nwReqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } catch (e) { logutils.logger.error('getFipPoolsForProjectCb: JSON parse error :' + e); } } if(nwReqArry.length > 0) { getFIPPoolSubnets(nwReqArry, appData, fipPool, function(subnetErr, finalFipPool) { if(subnetErr) { callback(subnetErr, finalFipPool); return; } callback(null, finalFipPool); }); } else { callback(null, fipPool); } } }); } else { callback(null, fipPool); } } else { callback(null, fipPool); } }
configApiServer.apiGet(url, jobData, function (error, jsonData) { if (error) { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_INTERNAL_ERROR, global.STR_CACHE_RETRIEVE_ERROR, global.STR_CACHE_RETRIEVE_ERROR, reqType, done); } else { try { var resultJSON = jsonData, vnURLs = [], vnCount = resultJSON["virtual-routers"].length, i, uuid, url; if (vnCount != 0) { for (i = 0; i < vnCount; i += 1) { uuid = resultJSON["virtual-routers"][i].uuid; url = '/virtual-router/' + uuid; logutils.logger.debug("getNodes: " + url); vnURLs[i] = [url]; commonUtils.createReqObj(dataObjArr, vnURLs[i], global.HTTP_REQUEST_GET, null, null, null, jobData); delete resultJSON["virtual-routers"][i]["fq_name"]; } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer. apiGet, true), function (err, results) { if (!err) { adminApiHelper.processVRJSON(resultJSON, results); getUnionBGPandVR(pubChannel, saveChannelKey, resultJSON, reqType, done, jobData); } else { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_INTERNAL_ERROR, global.STR_CACHE_RETRIEVE_ERROR, global.STR_CACHE_RETRIEVE_ERROR, reqType, done); } }); } else { getUnionBGPandVR(pubChannel, saveChannelKey, resultJSON, reqType, done, jobData); } } catch (e) { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_INTERNAL_ERROR, global.STR_CACHE_RETRIEVE_ERROR, global.STR_CACHE_RETRIEVE_ERROR, reqType, done); } } });
function processStorageTopologyRawList(res, appData, callback){ var urlOSDList = "/cluster/topology/ceph/list"; dataObjArr = getTopologyURLs(appData); async.map(dataObjArr, commonUtils.getAPIServerResponse(storageRest.apiGet, true), function(err, resultJSON) { callback(err,res,resultJSON); }); }
function processClusterStorageHealth(res, appData, callback){ var urlOSDList = "/cluster/storage/health/list"; dataObjArr = getClusterHealthURLs(appData); async.map(dataObjArr, commonUtils.getAPIServerResponse(storageRest.apiGet, true), function(err, resultJSON) { callback(err,res,resultJSON); }); }
function deleteAssociatedFirewallRules(ruleDataObjArry, appData, callback) { async.map(ruleDataObjArry, commonUtils.getAPIServerResponse(configApiServer.apiDelete, false), function (error, deleteRulesSuccess){ callback(error, deleteRulesSuccess); } ); }
function(error, instanceIPsData) { if ((null != error) || (null == instanceIPsData) || (!instanceIPsData.length)) { callback(error,null); return; } //No subnets case.. return with the instance_ip details var tempVMIResourceObjCnt = tempVMIResourceObj.length; for(var i = 0; i < tempVMIResourceObjCnt; i++) { var vmi = tempVMIResourceObj[i]['virtual-machine-interface']; var instIPBackRefs = vmi['instance_ip_back_refs']; var instIPBackRefsCnt = instIPBackRefs.length; if(instIPBackRefs != null && instIPBackRefsCnt > 0) { for(var j = 0; j < instIPBackRefsCnt; j++) { var uuid = instIPBackRefs[j]['uuid']; var instanceIPsdataLength = instanceIPsData.length; for(var k = 0; k < instanceIPsdataLength; k++) { if(instanceIPsData[k]['instance-ip']['uuid'] === uuid) { instIPBackRefs[j] = instanceIPsData[k]; break; } } } } } if(subnetDataObjArr.length < 1){ //There are no subnets so just return the response from here callback(null, tempVMIResourceObj); } else { //Get subnet details async.mapLimit(subnetDataObjArr, global.ASYNC_MAP_LIMIT_COUNT, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function(error,subnetData){ if ((null != error) || (null == subnetData) || (!subnetData.length)) { callback(error,null); return; } var tempVMIResourceObjCnt = tempVMIResourceObj.length; for (var i = 0; i < tempVMIResourceObjCnt; i++) { var vmi = tempVMIResourceObj[i]['virtual-machine-interface']; var subnetBackRefs = vmi['subnet_back_refs']; var subnetBackRefsCnt = subnetBackRefs.length; for(var j = 0; j < subnetBackRefsCnt; j++) { var uuid = subnetBackRefs[j]['uuid']; var subnetDataCnt = subnetData.length; for(var k = 0; k < subnetDataCnt; k++){ if(subnetData[k]['subnet']['uuid'] === uuid) { subnetBackRefs[j] = subnetData[k]; break; } } } } callback(null, tempVMIResourceObj); }); //Async for subnet ends } });//Async for instance_ip ends
redisClient.get(urlOSDList, function(error, cachedJSONStr) { if (error || cachedJSONStr == null) { async.map(dataObjArr, commonUtils.getAPIServerResponse(storageRest.apiGet, true), function(err, resultJSON) { redisClient.setex(urlOSDList, expireTime, JSON.stringify(resultJSON)); callback(err,res,resultJSON); }); } else { callback(null, res, JSON.parse(cachedJSONStr)); } });
configApiServer.apiGet(url, jobData, function (error, jsonData) { if (error) { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_INTERNAL_ERROR, global.STR_CACHE_RETRIEVE_ERROR, global.STR_CACHE_RETRIEVE_ERROR, reqType, done); } else { try { var bgpJSON = jsonData, bgpURLs = [], bgpCount = bgpJSON["bgp-routers"].length, i, uuid, url; if (bgpCount != 0) { for (i = 0; i < bgpCount; i += 1) { uuid = bgpJSON["bgp-routers"][i].uuid; url = '/bgp-router/' + uuid; logutils.logger.debug("getUnionBGPandVR: " + url); bgpURLs[i] = [url]; commonUtils.createReqObj(dataObjArr, bgpURLs[i], global.HTTP_REQUEST_GET, null, null, null, jobData); delete bgpJSON["bgp-routers"][i]["fq_name"]; } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function (err, results) { var i, name; if (!err) { processBGPRandVRJSON(bgpJSON, results, vrMap); bgpJSON = bgpJSON["bgp-routers"]; for (i = 0; i < vrCount; i += 1) { name = vrJSON["virtual-routers"][i].name; if (name in vrMap) { bgpJSON[bgpJSON.length + 1] = vrJSON["virtual-routers"][i]; } } sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_RESP_OK, JSON.stringify(bgpJSON), JSON.stringify(bgpJSON), reqType, done); } else { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_INTERNAL_ERROR, global.STR_CACHE_RETRIEVE_ERROR, global.STR_CACHE_RETRIEVE_ERROR, reqType, done); } }); } else { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_RESP_OK, JSON.stringify(bgpJSON), JSON.stringify(bgpJSON), reqType, done); } } catch (e) { sendNodeResByReq(pubChannel, saveChannelKey, global.HTTP_STATUS_INTERNAL_ERROR, global.STR_CACHE_RETRIEVE_ERROR, global.STR_CACHE_RETRIEVE_ERROR, reqType, done); } } });
redisClient.get(cookieURL, function(error, cachedJSONStr) { if (error || cachedJSONStr == null) { async.map(dataObjArr, commonUtils.getAPIServerResponse(storageRest.apiGet, true), function(err, data) { resultJSON = parseStoragePGPoolsData(data); redisClient.setex(cookieURL, expireTime, JSON.stringify(resultJSON)); commonUtils.handleJSONResponse(err, res, resultJSON); }); } else { commonUtils.handleJSONResponse(null, res, JSON.parse(cachedJSONStr)); } });
function readVNForIpams(error, ipamConfig, ipamPostData, response, appData) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } var dataObjArr = []; if (null !== ipamPostData['network-ipam']['virtual_network_refs'] && typeof nwRefs !== "undefined") { var nwRefs = ipamPostData['network-ipam']['virtual_network_refs']; var nwRefsLen = nwRefs.length; for(var i=0; i<nwRefsLen; i++) { var vn = ipamPostData['network-ipam']['virtual_network_refs'][i]; var vnPostUrl = '/virtual-network/' + vn['uuid'].toString(); commonUtils.createReqObj(dataObjArr, vnPostUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, results) { setIpamInVN(error, results, ipamConfig, ipamPostData, response, appData); }); } else { var domain = ipamPostData["network-ipam"]["fq_name"][0]; var project = ipamPostData["network-ipam"]["fq_name"][1]; var tenantId = domain + ":" + project; var vnsGetURL = "/virtual-networks"; configApiServer.apiGet(vnsGetURL, appData, function(error, data) { for(var i=0; null != data["virtual-networks"][i]; i++) { var vn = data["virtual-networks"][i]; var vnGetURL = '/virtual-network/' + vn['uuid'].toString(); commonUtils.createReqObj(dataObjArr, vnGetURL, global.HTTP_REQUEST_GET, null, null, null, appData); } if(dataObjArr.length > 0) { async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, results) { setIpamInVN(error, results, ipamConfig, ipamPostData, response, appData); }); } else { commonUtils.handleJSONResponse(error, response, null); } }); } }
function getConfigPaginatedResponse (req, res, appData) { var body = req.body; var type = body.type + 's'; var uuidList = body.uuidList; var fields = body.fields; var dataObjGetArr = []; var configReqObjArr = []; var tmpArray = []; var chunk = 200; var uuidCnt = uuidList.length; for (var i = 0, j = uuidCnt; i < j; i += chunk) { tmpArray = uuidList.slice(i, i + chunk); var reqUrl = '/' + type + '?detail=true&obj_uuids=' + tmpArray.join(','); if ((null != fields) && (fields.length > 0)) { reqUrl += '&fields=' + fields.join(','); } commonUtils.createReqObj(dataObjGetArr, reqUrl, null, null, null, null, appData); } async.map(dataObjGetArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function(error, results) { var resultJSON = []; var resCnt = results.length; for (var i = 0; i < resCnt; i++) { results[i] = results[i][type]; resultJSON = resultJSON.concat(results[i]); } var configPageCB = getConfigPageRespCB[body.type]; if (null == configPageCB) { commonUtils.handleJSONResponse(null, res, resultJSON); return; } resCnt = resultJSON.length; for (i = 0; i < resCnt; i++) { configReqObjArr.push({'type': body.type, 'data': resultJSON[i], 'appData': appData}); } async.map(configReqObjArr, getConfigPageRespAsync, function(err, customConfigData) { commonUtils.handleJSONResponse(err, res, customConfigData); return; }); }); }
/** * Fetch and attach Virtual Routers details to the response * @param error * @param pRouters * @param response * @param appData */ function getVirtualRouterDetails(error, pRouters, response, appData){ var vroutersLength = 0; var result = []; var dataObjArr = []; for(var k = 0; k < pRouters.length; k++){ var prouter = pRouters[k]; if(prouter['physical-router'] != null && prouter['physical-router']['virtual_router_refs'] != null && prouter['physical-router']['virtual_router_refs'].length > 0){ vroutersLength = prouter['physical-router']['virtual_router_refs'].length; for(i = 0; i < vroutersLength; i++) { var vrouter = prouter['physical-router']['virtual_router_refs'][i]; reqUrl = '/virtual-router/' + vrouter['uuid']; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } } } if(dataObjArr.length > 0) { async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, vrouters) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } if(vrouters.length > 0){ for(var j=0 ;j < pRouters.length; j++){ pRouters[j]['physical-router']['virtual-routers'] = []; for(var l=0 ; l < vrouters.length; l++){ var prouterBackRefs = vrouters[l]['virtual-router']['physical_router_back_refs']; if(prouterBackRefs != null && prouterBackRefs instanceof Array && prouterBackRefs.length > 0){ for(var k=0; k < prouterBackRefs.length; k++){ if(pRouters[j]['physical-router']['uuid'] == prouterBackRefs[k]['uuid']){ pRouters[j]['physical-router']['virtual-routers'].push(vrouters[l]['virtual-router']); } } } } } commonUtils.handleJSONResponse(error, response, pRouters); } } ); } else { commonUtils.handleJSONResponse(error, response, pRouters); } }
/** * Fetch and attach the interfaces details to the response * @param error * @param pRouters * @param response * @param appData */ function getPhysicalInterfaceDetails(error, pRouters, response, appData){ var pInterfacesLength = 0; var result = []; var dataObjArr = []; for(var k = 0; k < pRouters.length; k++){ var prouter = pRouters[k]; if(prouter['physical-router'] != null && prouter['physical-router']['physical_interfaces'] != null && prouter['physical-router']['physical_interfaces'].length > 0){ pInterfacesLength = prouter['physical-router']['physical_interfaces'].length; for(i = 0; i < pInterfacesLength; i++) { var pInterface = prouter['physical-router']['physical_interfaces'][i]; reqUrl = '/physical-interface/' + pInterface['uuid']; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } } } if(dataObjArr.length > 0) { async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, pInterfaces) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } if(pInterfaces.length > 0){ for(var j=0 ;j < pRouters.length; j++){ pRouters[j]['physical-router']['physical_interfaces'] = []; for(var l=0 ; l < pInterfaces.length; l++){ if(pRouters[j]['physical-router']['uuid'] == pInterfaces[l]['physical-interface']['parent_uuid']){ pRouters[j]['physical-router']['physical_interfaces'].push(pInterfaces[l]['physical-interface']); } } } // commonUtils.handleJSONResponse(error, response, pRouters); getVirtualRouterDetails(error, pRouters, response, appData); } else { getVirtualRouterDetails(error, pRouters, response, appData); } } ); } else { getVirtualRouterDetails(error, pRouters, response, appData); } }
function(error, data) { for(var i=0; null != data["virtual-networks"][i]; i++) { var vn = data["virtual-networks"][i]; var vnGetURL = '/virtual-network/' + vn['uuid'].toString(); commonUtils.createReqObj(dataObjArr, vnGetURL, global.HTTP_REQUEST_GET, null, null, null, appData); } if(dataObjArr.length > 0) { async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, results) { setIpamInVN(error, results, ipamConfig, ipamPostData, response, appData); }); } else { commonUtils.handleJSONResponse(error, response, null); } });
configApiServer.apiGet(vnListURL, appData, function(err, vnList) { if ((null != err) || (null == vnList) || (null == vnList['virtual-networks'])) { callback(err, fipPool); return; } var vns = vnList['virtual-networks']; var vnCnt = vns.length; for (var i = 0; i < vnCnt; i++) { var vnURL = '/virtual-network/' + vns[i]['uuid'] + '?exclude_back_refs=true'; commonUtils.createReqObj(dataObjArr, vnURL, global.HTTP_REQUEST_GET, null, null, null, appData); } if (!dataObjArr.length) { callback(null, fipPool); return; } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, true), function(error, results) { if ((null != error) || (null == results)) { callback(error, fipPool); return; } var resCnt = results.length; for (i = 0; i < resCnt; i++) { try { var vn = results[i]['virtual-network']; if ((true == vn['router_external']) && (null != vn['floating_ip_pools'])) { var subnets = parseVNSubnets(results[i]); var fipCnt = vn['floating_ip_pools'].length; for(var j = 0; j < fipCnt ; j++) { vn['floating_ip_pools'][j]['subnets'] = subnets; fipPool['floating_ip_pool_refs'].push(vn['floating_ip_pools'][j]); } } } catch(e) { continue; } } callback(null, fipPool); }); });
function getStoragePGSummary(req, res, appData){ var dataObjArr = []; var resultJSON = []; urlStatus = storageApi.url.status; commonUtils.createReqObj(dataObjArr, urlStatus, null, null, null, null, appData); urlPGSummary = storageApi.url.pgDumpSummary;//"/pg/dump?dumpcontents=summary"; commonUtils.createReqObj(dataObjArr, urlPGSummary, null, null, null, null, appData); async.map(dataObjArr, commonUtils.getAPIServerResponse(storageRest.apiGet, true), function(err, data) { resultJSON = parseStoragePGData(data); commonUtils.handleJSONResponse(err, res, resultJSON); }); }
function vmIfAggCb(error, vmIfList, logicalRouterDetail, appData, callback) { var dataObjArr = []; if (error) { callback(error, null); return; } var vmiLen = vmIfList.length; if( vmiLen <= 0) { callback(error,logicalRouterDetail); return; } for(var i=0; i<vmiLen; i++) { logicalRouterDetail['logical-router']["virtual_machine_interface_refs"][i]["virtual_network_refs"] = vmIfList[i]["virtual-machine-interface"]["virtual_network_refs"] if('instance_ip_back_refs' in vmIfList[i]["virtual-machine-interface"]) { var vm_ref = vmIfList[i]["virtual-machine-interface"]["instance_ip_back_refs"]; if (vm_ref) { logicalRouterDetail['logical-router']["virtual_machine_interface_refs"][i]['instance_ip_back_refs'] = vm_ref; } } } for(var i=0; i<vmiLen; i++) { if('instance_ip_back_refs' in vmIfList[i]["virtual-machine-interface"]) { var inst_ip_ref = logicalRouterDetail['logical-router']["virtual_machine_interface_refs"][i]["instance_ip_back_refs"][0]; if (inst_ip_ref && 'uuid' in inst_ip_ref) { var reqUrl = '/instance-ip/' + inst_ip_ref['uuid']; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } } } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function(error, results) { if(error){ callback(error, results); return; } instanceIPRefAggCb(error, results, logicalRouterDetail, vmiLen, appData, function(error, logicalRouterDetail){ callback(error, logicalRouterDetail); }); }); }
/* * @getServiceInstancesCb * private function * 1. Callback for getServiceInstances * 2. Reads the response of per project SI list from config api server * and sends it back to the client. */ function getServiceInstancesCB(error, siListData, response, appData, template) { var reqUrl = null; var dataObjArr = []; var i = 0, siLength = 0; var serviceInstances = {}; var emptyResult = []; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } serviceInstances['service_instances'] = []; if ('service_instances' in siListData['project']) { serviceInstances['service_instances'] = siListData['project']['service_instances']; } siLength = serviceInstances['service_instances'].length; if (!siLength) { commonUtils.handleJSONResponse(null, response, emptyResult); return; } for (i = 0; i < siLength; i++) { var siRef = serviceInstances['service_instances'][i]; reqUrl = '/service-instance/' + siRef['uuid']; commonUtils.createReqObj(dataObjArr, reqUrl, global.HTTP_REQUEST_GET, null, null, null, appData); } async.map(dataObjArr, commonUtils.getAPIServerResponse(configApiServer.apiGet, false), function (error, results) { if ((null != error) || (null == results)) { commonUtils.handleJSONResponse(error, response, null); return; } siGetListAggCB(results, response, appData); }); }