diff options
Diffstat (limited to 'components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java')
-rw-r--r-- | components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java | 76 |
1 files changed, 72 insertions, 4 deletions
diff --git a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java index f0c27e19..389a75d9 100644 --- a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java +++ b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java @@ -22,12 +22,18 @@ package org.onap.slice.analysis.ms.configdb; import java.util.List; import java.util.Map; +import java.util.HashMap; +import java.util.ArrayList; +import org.json.JSONArray; +import org.json.JSONObject; import org.onap.slice.analysis.ms.models.Configuration; import org.onap.slice.analysis.ms.restclients.CpsRestClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.stereotype.Service; /** @@ -48,22 +54,84 @@ public class CpsService implements CpsInterface { * Fetches the current configuration of RIC from CPS */ public Map<String, Map<String, Object>> fetchCurrentConfigurationOfRIC(String snssai) { - return null; + Map<String, Map<String, Object>> responseMap = new HashMap<String, Map<String, Object>>(); + String reqUrl = cpsBaseUrl +"/get-nearrtric-config"; + log.info("fetching current configuration of RIC from Cps: {s-NSSAI: "+snssai+"}"); + String requestBody = "{\"inputParameters\": {\"sNssai\":"+JSONObject.quote(snssai)+"}}"; + try { + String response = restclient.sendPostRequest(reqUrl,requestBody, new ParameterizedTypeReference<String>() {}).getBody(); + JSONArray sliceArray = new JSONArray(response); + for (int i=0;i<sliceArray.length();i++) { + String nearRTTICid = sliceArray.getJSONObject(i).optString("idNearRTRIC"); + JSONArray pLMNInfoList = sliceArray.getJSONObject(i).getJSONObject("attributes").getJSONArray("pLMNInfoList"); + for (int j=0;j<pLMNInfoList.length();j++){ + JSONArray sNSSAIList = pLMNInfoList.getJSONObject(j).getJSONArray("sNSSAIList"); + for(int k=0;k<sNSSAIList.length();k++) { + Map<String,Object> map = new HashMap<String,Object>(); + JSONArray configDataArray = sNSSAIList.getJSONObject(k).getJSONArray("configData"); + for(int l=0;l<configDataArray.length();l++) { + JSONObject configData = configDataArray.getJSONObject(l); + map.put((String) configData.get("configParameter"), configData.get("configValue")); + } + responseMap.put(nearRTTICid, map); + } + } + } + }catch (Exception e) { + log.info("CPS fetches current configuration of RIC: " + e); + } + return responseMap; } /** * Fetches all the network functions of an S-NSSAI from CPS */ public List<String> fetchNetworkFunctionsOfSnssai(String snssai) { - return null; + List<String> responseList=new ArrayList<>(); + String reqUrl=cpsBaseUrl+"/get-gnbdufunction-by-snssai"; + log.info("fetching network functions of snssai from Cps: {s-NSSAI: "+snssai+"}"); + String requestBody = "{\"inputParameters\": {\"sNssai\":"+JSONObject.quote(snssai)+"}}"; + try { + String response=restclient.sendPostRequest(reqUrl,requestBody,new ParameterizedTypeReference<String>() {}).getBody(); + JSONArray networkFunctionJsonArry = new JSONArray(response); + for (int i=0;i<networkFunctionJsonArry.length();i++) { + JSONObject networkFunctionJson = networkFunctionJsonArry.getJSONObject(i); + responseList.add(networkFunctionJson.getJSONObject("attributes").optString("gNBDUId")); + } + } + catch (Exception e) { + log.info("Fetch network functions of S-NSSAI from CPS" + e); + } + return responseList; } /** * Fetches the RICS of an S-NSSAI from CPS */ public Map<String, List<String>> fetchRICsOfSnssai(String snssai) { - return null; + Map<String,List<String>> responseMap=new HashMap<>(); + String reqUrl=cpsBaseUrl + "/get-nrcelldu-by-snssai"; + log.info("fetching RIC of s-NSSAI from Cps: {s-NSSAI: "+snssai+"}"); + String requestBody = "{\"inputParameters\": {\"sNssai\":"+JSONObject.quote(snssai)+"}}"; + try { + String response=restclient.sendPostRequest(reqUrl,requestBody,new ParameterizedTypeReference<String>() {}).getBody(); + JSONArray sliceArray = new JSONArray(response); + for (int i=0;i<sliceArray.length();i++) { + String nearRTTICid = sliceArray.getJSONObject(i).optString("idNearRTRIC"); + JSONArray GNBDUFunctionArray = sliceArray.getJSONObject(i).getJSONArray("GNBDUFunction"); + for (int j=0;j<GNBDUFunctionArray.length();j++){ + JSONArray NRCellDUArray = GNBDUFunctionArray.getJSONObject(j).getJSONArray("NRCellDU"); + List<String> cellslist=new ArrayList<>(); + for(int k=0;k<NRCellDUArray.length();k++) { + cellslist.add(NRCellDUArray.getJSONObject(k).getJSONObject("attributes").optString("cellLocalId")); + } + responseMap.put(nearRTTICid,cellslist); + } + } + }catch (Exception e) { + log.info("Fetch RICS of S-NSSAI from CPS" + e); + } + return responseMap; } - } |