/** * @createSecurityGroup * public function * 1. URL /api/tenants/config/securitygroup Post * 2. Sets Post Data and sends back the Security Group to client */ function createSecurityGroup(request, response, appData) { var securityGroupCreateURL = '/security-groups'; var securityGroupPostData = request.body; if (typeof(securityGroupPostData) != 'object') { error = new appErrors.RESTServerError('Invalid Post Data'); commonUtils.handleJSONResponse(error, response, null); return; } if ((!('security-group' in securityGroupPostData)) || (!('fq_name' in securityGroupPostData['security-group'])) || (!(securityGroupPostData['security-group']['fq_name'][2].length))) { error = new appErrors.RESTServerError('Enter Security Group Name '); commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiPost(securityGroupCreateURL, securityGroupPostData, appData, function (error, data) { setSecurityGroupRead(error, data, response, appData); }); }
/** * @setPRouterRead * private function * 1. Callback for Fip create / update operations * 2. Reads the response of Fip get from config api server * and sends it back to the client. */ function setPRouterRead(error, fipConfig, response, appData) { var fipGetURL = '/floating-ip/'; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } fipGetURL += fipConfig['floating-ip']['uuid']; configApiServer.apiGet(fipGetURL, appData, function(error, data) { fipSendResponse(error, data, response) }); }
/** * @setPolicyRead * private function * 1. Callback for createPolicy * 2. Reads the response of policy get from config api server * and sends it back to the client. */ function setPolicyRead(error, polConfig, response, appData) { var polGetURL = '/network-policy/'; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } polGetURL += polConfig['network-policy']['uuid']; configApiServer.apiGet(polGetURL, appData, function (error, data) { policySendResponse(error, data, response) }); }
/** * @setVirtualDNSRead * private function * 1. Callback for Virtual DNS create / update operations * 2. Reads the response of Virtual DNS get from config api server * and sends it back to the client. */ function setVirtualDNSRead(error, vdnsConfig, response, appData) { var vdnsGetURL = '/virtual-DNS/'; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } vdnsGetURL += vdnsConfig['virtual-DNS']['uuid']; configApiServer.apiGet(vdnsGetURL, appData, function(error, data) { virtualDNSSendResponse(error, data, response); }); }
function processAndSendVRSummaryResponse (vRouterJSON, res) { /* Now for all the vRouters IP, query sandesh to get the count of interfaces and VN */ var vnUrlLists = []; var ipIndexMap = []; var itfUrlLists = []; var vmUrlLists = []; var j = 0; var ip = null; var ipList = []; var vRouterCount = vRouterJSON['virtual-routers'].length; for (var i = 0; i < vRouterCount; i++) { vRouter = vRouterJSON['virtual-routers'][i]; vRouterJSON['virtual-routers'][i]['itf_count'] = 0; vRouterJSON['virtual-routers'][i]['vn_count'] = 0; ip = vRouter['ip_address']; if (global.RESP_DATA_NOT_AVAILABLE == ip) { /* Set ip as name */ ip = vRouter['name']; /* Why IP is not set? */ } vnUrlLists[j] = ip + '@' + infraCmn.getvRouetrIntrospectPortByReq(res.req) + '@' + '/Snh_VnListReq?name='; itfUrlLists[j] = ip + '@' + infraCmn.getvRouetrIntrospectPortByReq(res.req) + '@' + '/Snh_ItfReq?name='; vmUrlLists[j] = ip + '@' + infraCmn.getvRouetrIntrospectPortByReq(res.req) + '@' + '/Snh_VmListReq?uuid='; ipIndexMap[j] = i; ipList[i] = ip; j++; /* We do not have below info */ vRouterJSON['virtual-routers'][i]['status'] = global.RESP_DATA_NOT_AVAILABLE; vRouterJSON['virtual-routers'][i]['trafficIn'] = global.RESP_DATA_NOT_AVAILABLE; vRouterJSON['virtual-routers'][i]['trafficOut'] = global.RESP_DATA_NOT_AVAILABLE; } if (!j) { commonUtils.handleJSONResponse(null, res, vRouterJSON['virtual-routers']); return; } getvRouterVnItfList(res, vnUrlLists, itfUrlLists, vmUrlLists, ipIndexMap, vRouterJSON, ipList); }
vCenterApi.destroyIpPool(appData,poolId).done(function(data) { if(data['Fault'] != null) { commonUtils.handleJSONResponse({custom:true,responseCode:500,message:data['Fault']['faultstring']},response,null); return; } else { //Wait for network to be deleted from API server waitForNetworkDelete(appData,virtualNetworkId,function(result) { if(result == false) { commonUtils.handleJSONResponse({custom:true,responseCode:500,message:'Error in deleting virtual network' + virtualNetworkId},response,null); return } else { commonUtils.handleJSONResponse(null,response,data); } }); } });
function (error, data) { var policys, policyName, index, results = []; if (!error) { policys = data['network-policys']; for (var i = 0; i < policys.length; i++) { policyName = policys[i]['fq_name'][2]; index = dynamicPolicyNames.indexOf(policyName); if(index != -1) { filteredResults[index]['ConfigData']['service-instance']['policyuuid'] = policys[i]['uuid']; results[results.length] = filteredResults[index]; } } } serviceInstances['service_instances'] = results; commonUtils.handleJSONResponse(error, response, serviceInstances); });
function(err, vmiData) { if(err || vmiData['virtual-machine-interface'] == null) { commonUtils.handleJSONResponse(err, response, null); return; } vmiData['virtual-machine-interface']['virtual_machine_refs'] = [{"to" : [name]}]; configApiServer.apiPut('/virtual-machine-interface/' + vmiId, vmiData, appData, function(er, updatedVMIData) { if(er) { commonUtils.handleJSONResponse(er, response, null); return; } commonUtils.handleJSONResponse(null, response, updatedVMIData); } ); }
/** * @readVirtualDNS * private function * 1. Needs VDNS uuid in string format */ function readVirtualDNS (response, dnsIdStr, appData) { var vdnsGetURL = '/virtual-DNS/'; if (dnsIdStr.length) { vdnsGetURL += dnsIdStr; } else { error = new appErrors.RESTServerError('Add Virtual DNS id'); commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiGet(vdnsGetURL, appData, function(error, data) { getVirtualDNSCb(error, data, response, appData); }); }
/** * 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); } }
function getServerResponseByModType (req, res, appData) { var postData = req.body; var dataObjArr = []; dataObjArr = getBulkUVEPostURLs(postData, appData); if (null == dataObjArr) { var err = new appErrors.RESTServerError('postData is not correct'); commonUtils.handleJSONResponse(err, res, null); return; } async.map(dataObjArr, commonUtils.getServerResponseByRestApi(opApiServer, false), function(err, resultJSON) { commonUtils.handleJSONResponse(err, res, resultJSON); }); }
function(err, vmiData) { if(err || vmiData['virtual-machine-interface'] == null) { commonUtils.handleJSONResponse(err, response, null); return; } var subnet = subnetDetails['subnet']; subnet['virtual_machine_interface_refs'] = [{"to" : vmiData['virtual-machine-interface'].fq_name}]; configApiServer.apiPut('/subnet/' + subnet.uuid, subnetDetails, appData, function(er, updatedSubnetData) { if(er) { commonUtils.handleJSONResponse(er, response, null); return; } commonUtils.handleJSONResponse(null, response, updatedSubnetData); } ); }
function(err, data) { if (err) { commonUtils.handleJSONResponse(err, response, null); return; } configApiServer.apiGet(vdnsURL, appData, function(err, configData) { updateVirtualDnsAssocIpamRead(err, configData, vdnsPutData, vdnsId, appData, function(err, data) { if (err) { commonUtils.handleJSONResponse(err, response, null); return; } readVirtualDNS(response, vdnsId, appData); }); }); });
/** * @createDnsSetIpam * private function * 1. Reads newly created IPAM object and calls updateVirtualDnsAssocIpamRead * to update the DNS ref in IPAM objects. */ function createDnsSetIpam(error, vdnsConfig, vdnsPostData, response, appData) { var dnsId = null; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } dnsId = vdnsConfig['virtual-DNS']['uuid']; updateVirtualDnsAssocIpamRead(error, vdnsConfig, vdnsPostData, dnsId, appData, function(err, data) { setVirtualDNSRead(err, vdnsConfig, response, appData); }); }
function(error, results) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } delete postData['virtual-routers']; delete postData['virtual_router_type']; //create physical router configApiServer.apiPost('/physical-routers', postData, appData, function(error, data) { if(error){ commonUtils.handleJSONResponse(error, response, null); return; } getPhysicalRoutersWithIntfCount(request, response, appData); }); }
vCenterApi.createNetwork(userData,appData,function(err,data) { if(data['Fault'] != null) { commonUtils.handleJSONResponse({custom:true,responseCode:500,message:data['Fault']['faultstring']},res,null); return; } //Check if network synced on Api Server ifNetworkExists(appData,vnPostData['virtual-network']['parent_uuid'],userData['name'],function(vnUUID) { //If VN is not synced up with API Server if(vnUUID == false) { commonUtils.handleJSONResponse({custom:true,responseCode:500,message:'VN ' + userData['name'] + " doesn't exist on config server"},res,null); return; } appData['vnUUID'] =vnUUID; //Update network synced on Api Server vnConfigApi.updateVirtualNetwork(req,res,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); } });
opApiServer.apiGet('/analytics/alarms', appData, function(err, alarmLst) { var alarmLstLen = alarmLst.length; var alarmObjArry = []; if(err || alarmLstLen == 0) { commonUtils.handleJSONResponse(err, res, null); } for(var i = 0; i < alarmLstLen; i++) { var name = alarmLst[i].name; var alarmSubStr = name.substr(0, name.length - 1); var alarmUrl = '/analytics/alarms/' + alarmSubStr + '/*'; commonUtils.createReqObj(alarmObjArry, alarmUrl, global.HTTP_REQUEST_DELETE, null, opApiServer, null, appData); } async.mapLimit(alarmObjArry, global.ASYNC_MAP_LIMIT_COUNT, getAlarmsAsync, function(error, result) { commonUtils.handleJSONResponse(error, res, result); }); });
function updateIpamInVDNS(error, ipamConfig, response, ipamId, vdnsRef, appData) { if (error) { commonUtils.handleJSONResponse(error, response, null); return; } if (null !== vdnsRef && typeof vdnsRef !== "undefined") { var vdnsURL = '/virtual-DNS/' + vdnsRef['uuid']; configApiServer.apiGet(vdnsURL, appData, function(error, data) { updateIpamInVDNSCb(error, data, ipamConfig, response, ipamId, appData); }); } else { setIpamRead(error, ipamConfig, response, appData); } }
function (error, data) { if (error != null || data == null) { var error = new appErrors.RESTServerError( 'Invalid Project FQName'); commonUtils.handleJSONResponse(error, res, data); return; } projectURL = '/project/' + data.uuid + '?fields=floating_ip_pool_refs&' + 'exclude_back_refs=true&exclude_children=true'; configApiServer.apiGet(projectURL, appData, function(error, data) { getFipPoolsForProjectCb(error, data, appData, callback); }); });
/** * @deleteSecurityGroup * public function * 1. URL /api/tenants/config/securitygroup/:id * 2. Deletes the Security Group from config api server */ function deleteSecurityGroup(request, response, appData) { var securityGroupDelURL = '/security-group/', securityGroupId, analyzerPolicyId; if (securityGroupId = request.param('uuid').toString()) { securityGroupDelURL += securityGroupId; } else { error = new appErrors.RESTServerError('Security Group ID is required.'); commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiDelete(securityGroupDelURL, appData, function (error, data) { deleteSecurityGroupCb(error, data, response); }); }
function createFirewallRules (request, response, appData) { var fwPolicyId = commonUtils.getValueByJsonPath(request, 'body;fwPolicyId', ''), rulesReqArray = commonUtils.getValueByJsonPath(request, 'body;firewall-rules', []), dataObjArray = [], rulesSequenceMap = {}; _.each(rulesReqArray, function(rule) { if('firewall-rule' in rule) { var ruleDetails = rule['firewall-rule']; rulesSequenceMap[ruleDetails.fq_name.join(":")] = ruleDetails.sequence; commonUtils.createReqObj(dataObjArray, '/firewall-rules', global.HTTP_REQUEST_POST, commonUtils.cloneObj(rule), null, null, appData); } }); if(dataObjArray.length === 0) { commonUtils.handleJSONResponse(null, response, null); return; } async.map(dataObjArray, commonUtils.getServerResponseByRestApi(configApiServer, false), function (error, fwRules) { if(error) { commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiGet('/firewall-policy/' + fwPolicyId, appData, function(errorPolicy, policyDetails) { if(errorPolicy) { commonUtils.handleJSONResponse(error, response, null); return; } var fwRuleRefs = commonUtils.getValueByJsonPath(policyDetails, 'firewall-policy;firewall_rule_refs', []); var highestSeq = getHighestLeastSequence(fwRuleRefs); updateFirewallRuleRefs(fwPolicyId, fwRules, appData, rulesSequenceMap, highestSeq, function(fwError, fwRulesRes) { commonUtils.handleJSONResponse(fwError, response, fwRulesRes); }); } ); }); }
/** * @setIpamMgmt * private function * 1. Callback for updateIpam * 2. Updates the Ipam Mgmt Object, right now only dhcp options */ function setIpamOptions(error, ipamPostData, ipamId, response, appData) { var ipamPostURL = '/network-ipam/' + ipamId; if (error) { commonUtils.handleJSONResponse(error, response, null); return; } /* if (!('network_ipam_mgmt' in ipamPostData['network-ipam'])) { ipamPostData['network-ipam']['network_ipam_mgmt'] = []; } ipamConfig['network-ipam']['network_ipam_mgmt'] = []; ipamConfig['network-ipam']['network_ipam_mgmt'] = ipamPostData['network-ipam']['network_ipam_mgmt']; ipamConfig["network-ipam"]["virtual_DNS_refs"] = []; if(typeof ipamPostData["network-ipam"]["network_ipam_mgmt"]["ipam_dns_server"] !== "undefined") { if(typeof ipamPostData["network-ipam"]["network_ipam_mgmt"] ["ipam_dns_server"]["virtual_dns_server_name"] !== "undefined") { var vdnsName = ipamPostData["network-ipam"]["network_ipam_mgmt"] ["ipam_dns_server"]["virtual_dns_server_name"]; var dnsMethod = ipamPostData["network-ipam"]["network_ipam_mgmt"]["ipam_dns_method"]; if(dnsMethod != null && typeof dnsMethod !== "undefined" && dnsMethod === "virtual-dns-server" && vdnsName !== null && typeof vdnsName !== "undefined" && vdnsName.indexOf(":") != -1) { var domainName = vdnsName.split(":")[0]; var vdnsName = vdnsName.split(":")[1]; ipamConfig["network-ipam"]["virtual_DNS_refs"][0] = { "to" : [ domainName, vdnsName ] }; } } } */ configApiServer.apiPut(ipamPostURL, ipamPostData, appData, function(error, data) { commonUtils.handleJSONResponse(error, response, data); }); }
/** * @deleteServiceTemplate * public function * 1. URL /api/tenants/config/service-template/:id * 2. Deletes the service template from config api server */ function deleteServiceTemplate(request, response, appData) { var stDelURL = '/service-template/'; var stId = null; var requestParams = url.parse(request.url, true); if (stId = request.param('id').toString()) { stDelURL += stId; } else { error = new appErrors.RESTServerError('Service Template ID is required.'); commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiDelete(stDelURL, appData, function (error, data) { deleteServiceTemplateCb(error, data, response) }); }
/** * @updatePolicyAssociatedNets * public function * 1. URL /api/tenants/config/policy/:id/associated-networks * 2. Gets policy object and figures the diff for association. * 3. Resets the policy references from / to virtual-networks. * 4. Reads updated policy config and sends it back to client */ function updatePolicyAssociatedNets(request, response, appData) { var policyId = null; var polPostData = request.body; if (!(policyId = request.param('id').toString())) { error = new appErrors.RESTServerError('Add Policy id'); commonUtils.handleJSONResponse(error, response, null); return; } updatePolicyWithVNs(polPostData, policyId, appData, function (err, data) { if (err) { commonUtils.handleJSONResponse(err, response, null); return; } }); }
function(err, configUVEData, bgpRtrCnt) { if (null != err) { callback(null, []); return; } for (var i = 0; i < bgpRtrCnt; i++) { configData[i] = configUVEData[i]; } var cnt = configUVEData.length; for (i = bgpRtrCnt; i < cnt; i++) { uveData[i - bgpRtrCnt] = configUVEData[i]; } resultJSON = infraCmn.checkAndGetSummaryJSON(configData, uveData, ['ControlNode']); commonUtils.handleJSONResponse(err, res, resultJSON); });
function processResultsCB(res, filteredResponseArray, postProcessor) { switch (postProcessor) { case constants.FUNC_COMPUTE_SERVER_STATES: computeServerStates(res, filteredResponseArray); break; case constants.FUNC_FILTER_IN_IMAGES: filterImagesPackages(res, filteredResponseArray, constants.IMAGE_TYPES); break; case constants.FUNC_FILTER_IN_PACKAGES: filterImagesPackages(res, filteredResponseArray, constants.PACKAGE_TYPES); break; default: commonUtils.handleJSONResponse(null, res, filteredResponseArray); } };
redisClient.get(urlDF, function(error, cachedJSONStr) { if (error || cachedJSONStr == null) { storageRest.apiGet(urlDF, appData, function (error, resultJSON) { if(!error && (resultJSON)) { var resultJSON = parseStorageDFData(resultJSON); if(!resultJSON) { resultJSON = []; } redisClient.setex(urlDF, expireTime, JSON.stringify(resultJSON)); commonUtils.handleJSONResponse(null, res, resultJSON); } else { commonUtils.handleJSONResponse(error, res, null); } }); } else { commonUtils.handleJSONResponse(null, res, JSON.parse(cachedJSONStr)); } });
/** * @deleteIpam * public function * 1. URL /api/tenants/config/ipam/:id * 2. Deletes the Ipam from config api server */ function deleteIpam (request, response, appData) { var ipamDelURL = '/network-ipam/'; var ipamId = null; var requestParams = url.parse(request.url, true); if (ipamId = request.param('id').toString()) { ipamDelURL += ipamId; } else { error = new appErrors.RESTServerError('Provide IPAM Id'); commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiDelete(ipamDelURL, appData, function(error, data) { deleteIpamCb(error, data, response) }); }
/** * @deleteFloatingIp * public function * 1. URL /api/tenants/config/floating-ip/:id * 2. Deletes the floating-ip from config api server */ function deleteFloatingIp (request, response, appData) { var fipDelURL = '/floating-ip/'; var fipId = null; var requestParams = url.parse(request.url, true); if (fipId = request.param('id').toString()) { fipDelURL += fipId; } else { error = new appErrors.RESTServerError('Provide Floating IP Id'); commonUtils.handleJSONResponse(error, response, null); return; } configApiServer.apiDelete(fipDelURL, appData, function(error, data) { deleteFloatingIpCb(error, data, response) }); }