summaryrefslogtreecommitdiffstats
path: root/components/slice-analysis-ms/src/main/java/org/onap/slice
diff options
context:
space:
mode:
Diffstat (limited to 'components/slice-analysis-ms/src/main/java/org/onap/slice')
-rw-r--r--components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/configdb/CpsService.java76
-rw-r--r--components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConsumerThread.java13
2 files changed, 84 insertions, 5 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;
}
-
}
diff --git a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConsumerThread.java b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConsumerThread.java
index e8028200..6098142e 100644
--- a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConsumerThread.java
+++ b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConsumerThread.java
@@ -22,7 +22,9 @@
package org.onap.slice.analysis.ms.service;
import java.util.List;
+import java.util.Objects;
+import org.onap.slice.analysis.ms.configdb.CpsInterface;
import org.onap.slice.analysis.ms.configdb.IConfigDbService;
import org.onap.slice.analysis.ms.models.Configuration;
import org.onap.slice.analysis.ms.models.SubCounter;
@@ -38,6 +40,7 @@ public class ConsumerThread extends Thread {
private PmDataQueue pmDataQueue;
private IConfigDbService configDbService;
private SnssaiSamplesProcessor snssaiSamplesProcessor;
+ private CpsInterface cpsInterface;
private long initialDelaySec;
private int samples;
@@ -50,6 +53,7 @@ public class ConsumerThread extends Thread {
this.configDbService = BeanUtil.getBean(IConfigDbService.class);
this.initialDelaySec = Configuration.getInstance().getInitialDelaySeconds();
this.samples = Configuration.getInstance().getSamples();
+ this.cpsInterface = BeanUtil.getBean(CpsInterface.class);
}
/**
@@ -57,6 +61,8 @@ public class ConsumerThread extends Thread {
*/
@Override
public void run() {
+ Boolean isConfigDbEnabled = (Objects.isNull(Configuration.getInstance().getConfigDbEnabled())) ? true
+ : Configuration.getInstance().getConfigDbEnabled();
boolean done = false;
boolean result = false;
String snssai = "";
@@ -69,7 +75,12 @@ public class ConsumerThread extends Thread {
if (!snssai.equals("")) {
log.info("Consumer thread processing data for s-nssai {}",snssai);
try {
- nfs = configDbService.fetchNetworkFunctionsOfSnssai(snssai);
+ if (isConfigDbEnabled) {
+ nfs = configDbService.fetchNetworkFunctionsOfSnssai(snssai);
+ }
+ else {
+ nfs = cpsInterface.fetchNetworkFunctionsOfSnssai(snssai);
+ }
}
catch(Exception e) {
pmDataQueue.putSnssaiToQueue(snssai);