aboutsummaryrefslogtreecommitdiffstats
path: root/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services
diff options
context:
space:
mode:
authorMichal Jagiello <michal.jagiello@t-mobile.pl>2022-05-06 06:31:38 +0000
committerGerrit Code Review <gerrit@onap.org>2022-05-06 06:31:38 +0000
commit292aa06f9fc6a48652411087b4fc34b9ab728f2b (patch)
tree1c17b1a679dd40fa8f2e5e87f6932db8e44cc038 /ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services
parentb395e82cedb969d392fd4a1a2b13cfa8cf64cce7 (diff)
parent944c707bcd818e3581acab1c100710b218fb3c51 (diff)
Merge "ORAN Alignment - initial config updates and PM data updates for SON usecase"
Diffstat (limited to 'ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services')
-rw-r--r--ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RANSliceConfigService.java21
-rw-r--r--ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java151
-rw-r--r--ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimRepositoryService.java35
3 files changed, 187 insertions, 20 deletions
diff --git a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RANSliceConfigService.java b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RANSliceConfigService.java
index 36bd48a..01ef2f1 100644
--- a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RANSliceConfigService.java
+++ b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RANSliceConfigService.java
@@ -44,10 +44,12 @@ import org.onap.ransim.rest.api.models.RANSliceInfo;
import org.onap.ransim.rest.api.models.RRMPolicyRatio;
import org.onap.ransim.rest.api.models.SliceProfile;
import org.onap.ransim.rest.api.models.TACells;
+import org.onap.ransim.rest.api.models.*;
import org.onap.ransim.rest.api.repository.GNBCUCPRepository;
import org.onap.ransim.rest.api.repository.GNBCUUPRepository;
import org.onap.ransim.rest.api.repository.GNBDURepository;
import org.onap.ransim.rest.api.repository.NRCellCURepository;
+import org.onap.ransim.rest.api.repository.NRCellRelationRepository;
import org.onap.ransim.rest.api.repository.NearRTRICRepository;
import org.onap.ransim.rest.api.repository.RANInventoryRepository;
import org.onap.ransim.rest.api.repository.RRMPolicyRepository;
@@ -56,6 +58,7 @@ import org.onap.ransim.rest.web.mapper.GNBCUCPModel;
import org.onap.ransim.rest.web.mapper.GNBCUUPModel;
import org.onap.ransim.rest.web.mapper.GNBDUModel;
import org.onap.ransim.rest.web.mapper.NRCellCUModel;
+import org.onap.ransim.rest.web.mapper.*;
import org.onap.ransim.rest.web.mapper.NRCellDUModel;
import org.onap.ransim.rest.web.mapper.NearRTRICModel;
import org.onap.ransim.rest.web.mapper.RANSliceInfoModel;
@@ -77,6 +80,9 @@ public class RANSliceConfigService {
@Autowired
private GNBDURepository gNBDURepository;
+
+ @Autowired
+ private NRCellRelationRepository nRCellRelationRepository;
@Autowired
private NearRTRICRepository nearRTRICRepository;
@@ -157,6 +163,7 @@ public class RANSliceConfigService {
logger.debug("Error occured during saveGNBCUCP" + e.getMessage());
return null;
}
+ logger.info("saved gNBCUCPmodel is : " + gNBCUCPModel);
return gNBCUCPModel;
}
@@ -652,9 +659,23 @@ public class RANSliceConfigService {
logger.debug("Request received to fetch all NearRTRICModel");
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
List<NearRTRIC> rtricList = (List<NearRTRIC>) nearRTRICRepository.findAll();
+ logger.info ("NearRTRIC model is from findall is : " + rtricList);
List<NearRTRICModel> rtricmodels = rtricList.stream()
.map(rtricEntity -> modelMapper.map(rtricEntity, NearRTRICModel.class)).collect(Collectors.toList());
+ logger.info ("NearRTRIC model after mapping is : " + rtricmodels);
return rtricmodels;
}
+ public List<NRCellRelationModel> findAllNRCellRelation() {
+ logger.debug("Request received to fetch all NRCellRelationModel");
+ modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
+
+ List<NRCellRelation> relationList = (List<NRCellRelation>) nRCellRelationRepository.findAll();
+ logger.info ("NRCellRelation model is from findall is : " + relationList);
+ List<NRCellRelationModel> nRCellRelationmodels = relationList.stream()
+ .map(relationEntity -> modelMapper.map(relationEntity, NRCellRelationModel.class)).collect(Collectors.toList());
+ logger.info ("NRCellRelation model after mapping is : " + nRCellRelationmodels);
+ return nRCellRelationmodels;
+ }
+
}
diff --git a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java
index 3404653..3e1e2a9 100644
--- a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java
+++ b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java
@@ -57,6 +57,7 @@ import org.onap.ransim.rest.api.models.NbrDump;
import org.onap.ransim.rest.api.models.NeighborDetails;
import org.onap.ransim.rest.api.models.NeihborId;
import org.onap.ransim.rest.api.models.NetconfServers;
+import org.onap.ransim.rest.api.models.NRCellCU;
import org.onap.ransim.rest.api.models.PLMNInfo;
import org.onap.ransim.rest.api.models.RRMPolicyMember;
import org.onap.ransim.rest.api.models.RRMPolicyRatio;
@@ -72,6 +73,8 @@ import org.onap.ransim.rest.client.RestClient;
import org.onap.ransim.rest.web.mapper.GNBCUCPModel;
import org.onap.ransim.rest.web.mapper.GNBCUUPModel;
import org.onap.ransim.rest.web.mapper.GNBDUModel;
+import org.onap.ransim.rest.web.mapper.NRRelationData;
+import org.onap.ransim.rest.web.mapper.NRCellRelationModel;
import org.onap.ransim.rest.web.mapper.NRCellCUModel;
import org.onap.ransim.rest.web.mapper.NRCellDUModel;
import org.onap.ransim.rest.web.mapper.NSSAIData;
@@ -82,6 +85,7 @@ import org.onap.ransim.utilities.RansimUtilities;
import org.onap.ransim.websocket.model.*;
import org.onap.ransim.websocket.model.ConfigData;
import org.onap.ransim.websocket.model.ConfigPLMNInfo;
+import org.onap.ransim.websocket.model.GNBCUCPFunction;
import org.onap.ransim.websocket.model.ModifyNeighbor;
import org.onap.ransim.websocket.model.ModifyPci;
import org.onap.ransim.websocket.model.Neighbor;
@@ -447,8 +451,9 @@ public class RansimControllerServices {
}
public void loadGNBFunctionProperties() {
- try {
- sdnrServerIp = System.getenv("SDNR_IP");
+ try {
+
+ sdnrServerIp = System.getenv("SDNR_IP");
sdnrServerPort = Integer.parseInt(System.getenv("SDNR_PORT"));
sdnrServerUserid = System.getenv("SDNR_USER");
sdnrServerPassword = System.getenv("SDNR_PASSWORD");
@@ -458,11 +463,10 @@ public class RansimControllerServices {
List<String> gNBList = new ArrayList<>();
for (GNBCUCPModel gNBCUCPModel : rtricModel.getgNBCUCPList()) {
gNBList.add(gNBCUCPModel.getgNBCUName());
- setRanNetconfServers(gNBCUCPModel.getgNBCUName());
for (NRCellCUModel nRCellCUModel : gNBCUCPModel.getCellCUList()) {
- if (nRCellCUModel.getpLMNInfoList().isEmpty()) {
+ if (nRCellCUModel.getpLMNInfoList().isEmpty()) {
org.json.simple.parser.JSONParser jsonParser = new org.json.simple.parser.JSONParser();
- try (FileReader reader = new FileReader("/tmp/ransim-install/config/gNBCUConfig.json")) {
+ try (FileReader reader = new FileReader("/tmp/ransim-install/config/ransimdata.json")) {
// Read JSON file
Object obj = jsonParser.parse(reader);
JSONArray List = (JSONArray) obj;
@@ -481,6 +485,24 @@ public class RansimControllerServices {
for (int j = 0; j < cellList.size(); j++) {
JSONObject cell = (JSONObject) cellList.get(j);
Long cellLocalId = (Long) cell.get("cellLocalId");
+ String nRCellRelVar = (String) cell.get("nRCellRelationList").toString();
+ Object nRCellVarObj = jsonParser.parse(nRCellRelVar);
+ JSONArray nRCellRelList = (JSONArray) nRCellVarObj;
+ List<NRCellRelationModel> nrCellRelationModelList = new ArrayList<NRCellRelationModel>();
+ for (int k = 0; k < nRCellRelList.size(); k++) {
+ JSONObject nrcellrel = (JSONObject) nRCellRelList.get(k);
+ Long idNRCellRelation = (Long) nrcellrel.get("idNRCellRelation");
+ JSONObject attributes = (JSONObject) nrcellrel.get("attributes");
+ Long nRTCI = (Long) attributes.get("nRTCI");
+ String isHOAllowed = (String) attributes.get("isHOAllowed");
+ NRRelationData nrRelationDataObj = new NRRelationData();
+ nrRelationDataObj.setNRTCI(nRTCI.intValue());
+ nrRelationDataObj.setIsHOAllowed(Boolean.valueOf(isHOAllowed));
+ NRCellRelationModel nrCellRelationModel = new NRCellRelationModel();
+ nrCellRelationModel.setIdNRCellRelation(idNRCellRelation.intValue());
+ nrCellRelationModel.setNRRelationData(nrRelationDataObj);
+ nrCellRelationModelList.add(nrCellRelationModel);
+ }
String plmVar = (String) cell.get("pLMNInfoList").toString();
Object pmlVarObj = jsonParser.parse(plmVar);
JSONArray pmlList = (JSONArray) pmlVarObj;
@@ -506,8 +528,30 @@ public class RansimControllerServices {
}
NRCellCUModel nrCellCUModel = new NRCellCUModel();
nrCellCUModel.setCellLocalId(cellLocalId.intValue());
+ nrCellCUModel.setNRCellRelation(nrCellRelationModelList);
nrCellCUModel.setpLMNInfoList(plmnInfoModelList);
+ List<String> attachedNoeds;
+ if (serverIdIpNodeMapping.isEmpty()) {
+ attachedNoeds = new ArrayList<String>();
+ attachedNoeds.add(Integer.toString(nrCellCUModel.getCellLocalId()));
+ serverIdIpNodeMapping.put(gNBCUCPModel.getgNBCUName(), attachedNoeds);
+ if (attachedNoeds.size() > numberOfCellsPerNcServer) {
+ log.info("Attaching Cell:");
+ }
+ } else {
+ attachedNoeds = serverIdIpNodeMapping.get(gNBCUCPModel.getgNBCUName());
+ attachedNoeds.add(Integer.toString(nrCellCUModel.getCellLocalId()));
+ serverIdIpNodeMapping.put(gNBCUCPModel.getgNBCUName(), attachedNoeds);
+ if (attachedNoeds.size() > numberOfCellsPerNcServer) {
+ log.info("Attaching Cell:");
+ }
+ }
+ log.info("Attaching Cell:" + nrCellCUModel.getCellLocalId() + " to "
+ + gNBCUCPModel.getgNBCUName());
+ setRanCUCPNetconfServers(nrCellCUModel.getCellLocalId());
+ dumpSessionDetails();
nRCellCUModelList.add(nrCellCUModel);
+ log.info("NRCELLCU LIST is : " + nRCellCUModelList);
}
GNBCUCPModel gNBModel = new GNBCUCPModel();
gNBModel.setgNBCUName(gNBCUName);
@@ -518,6 +562,7 @@ public class RansimControllerServices {
gNBModel.setNearRTRICId(nearRTRICId.intValue());
gNBModel.setCellCUList(nRCellCUModelList);
ranSliceConfigService.saveGNBCUCP(gNBModel);
+ log.info("gnBCUCP model is: " + gNBModel);
}
} catch (Exception e) {
log.error("Properties file error", e);
@@ -533,29 +578,60 @@ public class RansimControllerServices {
gNBList.add(gNBDUModel.getgNBDUId().toString());
setRanNetconfServers(gNBDUModel.getgNBDUId().toString());
}
+ log.info(" gNBList in loadGNB is : " + gNBList);
unassignedrtRicIds.add(rtricModel.getNearRTRICId().toString());
ricIdFunctionMapping.put(rtricModel.getNearRTRICId().toString(), gNBList);
setRanNetconfServers(rtricModel.getNearRTRICId().toString());
- }
- } catch (Exception e) {
- log.error("Properties file error", e);
- }
+
+ }
+ } catch (Exception e) {
+ log.error("Properties file error", e);
+ }
}
public void setRanNetconfServers(String serverId) {
- try {
+ try {
+ NetconfServers server = ransimRepo.getNetconfServer(serverId);
+ if (server == null) {
+ server = new NetconfServers();
+ server.setServerId(serverId);
+ }
+ ransimRepo.mergeNetconfServers(server);
+
+ } catch (Exception eu) {
+ log.error("setRanNetconfServers Function Error", eu);
+
+
+ }
- NetconfServers server = ransimRepo.getNetconfServer(serverId);
- if (server == null) {
- server = new NetconfServers();
- server.setServerId(serverId);
- }
- ransimRepo.mergeNetconfServers(server);
-
- } catch (Exception eu) {
- log.error("setNetconfServers Function Error", eu);
+ }
- }
+
+ public void setRanCUCPNetconfServers(Integer cellLocalId) {
+
+ NRCellCU currentCell = ransimRepo.getNRCellCUDetail(cellLocalId);
+ Set<NRCellCU> newList = new HashSet<NRCellCU>();
+
+ try {
+ if (currentCell != null) {
+ NetconfServers server = ransimRepo.getNetconfServer(currentCell.getgNBCUCPFunction().getgNBCUName());
+ if (server == null) {
+ server = new NetconfServers();
+ server.setServerId(currentCell.getgNBCUCPFunction().getgNBCUName());
+ } else {
+ newList.addAll(server.getCellList());
+
+ }
+ newList.add(currentCell);
+ server.setCellList(newList);
+ log.info("setNetconfServer CUCP: cellLocalId: " + cellLocalId + ", ip: " + server.getIp() + ", portNum: " + server.getNetconfPort()
+ + ", serverId:" + currentCell.getgNBCUCPFunction().getgNBCUName());
+
+ ransimRepo.mergeNetconfServers(server);
+ }
+ } catch (Exception eu) {
+ log.error("setRanCUCPNetconfServers Function Error", eu);
+ }
}
/**
@@ -981,6 +1057,7 @@ public class RansimControllerServices {
}
for (NearRTRICModel rtRicModel : rtricModelList) {
+ log.info(" rtric model in sendRanInintialConfig is : " + rtricModelList);
if (rtRicModel.getNearRTRICId().toString().equals(serverId)) {
getInitalConfigTree(rtRicModel, serverId);
NetconfClient netconfClient = new NetconfClient("ransim", "admin", "admin", server.getServerId(),
@@ -1023,6 +1100,7 @@ public class RansimControllerServices {
attributes.setLocationName("Palmdale");
attributes.setgNBId(rtRicModel.getgNBId().toString());
nearRTRIC.setAttributes(attributes);
+ log.info("RTRIC model is : " + rtRicModel);
List<GNBCUUPFunction> gNBCUUPFunctionList = new ArrayList<>();
for (GNBCUUPModel gNBCUUPModel : rtRicModel.getgNBCUUPList()) {
@@ -1059,6 +1137,39 @@ public class RansimControllerServices {
gNBDUFunctionList.add(gNBDUFunction);
}
}
+ /* List<GNBCUCPFunction> gNBCUCPFunctionList = new ArrayList<>();
+ for (GNBCUCPModel gnbcucpModel : rtRicModel.getgNBCUCPList()){
+ if (gnbcucpModel.getgNBId().toString().equals(serverId)
+ || rtRicModel.getNearRTRICId().toString().equals(serverId)) {
+ GNBCUCPFunction gNBCUCPFunction = new GNBCUCPFunction();
+ Attributes cUCPattributes = new Attributes();
+ cUCPattributes.setgNBId(gnbcucpModel.getgNBId().toString());
+ gNBCUCPFunction.setAttributes(cUCPattributes);
+ gNBCUCPFunction.setIdGNBCUCPFunction(gnbcucpModel.getgNBCUName());
+ List<NRCellCU> nRCellCUList = new ArrayList<>();
+ for (NRCellCUModel nRCellCUModel : gnbcucpModel.getCellCUList()) {
+ NRCellCU nRCellCU = new NRCellCU();
+ log.info("gnbcucpModel from DB:"+gnbcucpModel);
+ nRCellCU.setIdNRCellCU(nRCellCUModel.getCellLocalId().toString());
+ List<NRCellRelation> nRCellRelationList = new ArrayList<NRCellRelation>();
+ for(NRCellRelationModel nrCellRelationModel : nRCellCUModel.getNRCellRelationList())
+ {
+ NRCellRelation nRCellRelation = new NRCellRelation();
+ nRCellRelation.setIdNRCellRelation(nrCellRelationModel.getIdNRCellRelation());
+ AttributesNRRelation attributesNRRelation = new AttributesNRRelation();
+ attributesNRRelation.setNRTCI(nrCellRelationModel.getNRRelationData().getNRTCI());
+ attributesNRRelation.setIsHoAllowed(nrCellRelationModel.getNRRelationData().getIsHOAllowed());
+ nRCellRelation.setAttributes(attributesNRRelation);
+ nRCellRelationList.add(nRCellRelation);
+ nRCellCU.setNRCellRelation(nRCellRelationList);
+ }
+ nRCellCUList.add(nRCellCU);
+ }
+ gNBCUCPFunction.setnRCellCU(nRCellCUList);
+ gNBCUCPFunctionList.add(gNBCUCPFunction);
+ }
+ }
+ nearRTRIC.setgNBCUCPFunction(gNBCUCPFunctionList); */
nearRTRIC.setgNBDUFunction(gNBDUFunctionList);
nearRTRIC.setgNBCUUPFunction(gNBCUUPFunctionList);
nearRTRICList.add(nearRTRIC);
diff --git a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimRepositoryService.java b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimRepositoryService.java
index ecc76b3..f707369 100644
--- a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimRepositoryService.java
+++ b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimRepositoryService.java
@@ -29,9 +29,11 @@ import org.onap.ransim.rest.api.models.CellDetails;
import org.onap.ransim.rest.api.models.CellNeighbor;
import org.onap.ransim.rest.api.models.NeighborDetails;
import org.onap.ransim.rest.api.models.NetconfServers;
+import org.onap.ransim.rest.api.models.NRCellCU;
import org.onap.ransim.rest.api.models.OperationLog;
import org.onap.ransim.rest.api.repository.CellDetailsRepo;
import org.onap.ransim.rest.api.repository.CellNeighborRepo;
+import org.onap.ransim.rest.api.repository.NRCellCURepository;
import org.onap.ransim.rest.api.repository.NeighborDetailsRepo;
import org.onap.ransim.rest.api.repository.NetconfServersRepo;
import org.onap.ransim.rest.api.repository.OperationLogRepo;
@@ -47,6 +49,9 @@ public class RansimRepositoryService {
CellDetailsRepo cellDetailsRepo;
@Autowired
+ NRCellCURepository nRCellCURepo;
+
+ @Autowired
NetconfServersRepo netconfServersRepo;
@Autowired
@@ -73,6 +78,36 @@ public class RansimRepositoryService {
return cellDetails;
}
+ /**
+ * Method to retrieve cellCU details
+ *
+ * @param cellLocalId
+ * @return
+ */
+ public NRCellCU getNRCellCUDetail(Integer cellLocalId) {
+ Optional<NRCellCU> cd = nRCellCURepo.findById(cellLocalId);
+ NRCellCU nrCellCU = null;
+ if (cd.isPresent()) {
+ nrCellCU = cd.get();
+ }
+ return nrCellCU;
+ }
+
+ /**
+ * Method to retrieve cellCU neighbors
+ *
+ * @param cellLocalId
+ * @return
+ */
+ public NRCellCU getCellRelation(Integer cellLocalId) {
+ Optional<NRCellCU> cellNeighborDetails = nRCellCURepo.findById(cellLocalId);
+ NRCellCU cellRelation = null;
+ if (cellNeighborDetails.isPresent()) {
+ cellRelation = cellNeighborDetails.get();
+ }
+ return cellRelation;
+ }
+
/**
* Method to retrieve netconf server details
*