diff options
author | vvarvate <vv00489503@techmahindra.com> | 2022-09-06 18:34:41 +0530 |
---|---|---|
committer | Lukasz Rajewski <lukasz.rajewski@t-mobile.pl> | 2022-10-13 22:01:12 +0000 |
commit | 6e2a9f94f63c57786fd9b6d4ba5f53cb66f7f5e2 (patch) | |
tree | 88ec82e291de14861ddc39e7b7f900a272b3e96f /ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java | |
parent | b5050799014b831a89d09078ce09829458da9339 (diff) |
RAN-Sim Updates for SON Use Case Kohn Release
Enhancement of RAN-Sim Controller to support A1-based action
Issue-ID: INT-2130
Signed-off-by: vvarvate <vv00489503@techmahindra.com>
Change-Id: Ibeeb93a97582ca3712af11e2204a46c6a66dcb81
Diffstat (limited to 'ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java')
-rw-r--r-- | ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/rest/api/services/RansimControllerServices.java | 122 |
1 files changed, 122 insertions, 0 deletions
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 94ac9c8..027c97e 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 @@ -104,6 +104,11 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; + @Service public class RansimControllerServices { @@ -1806,6 +1811,123 @@ public class RansimControllerServices { } } + public synchronized void addWebSocketSessionsForRanApp(String ipPort, Session session) { + // TODO Auto-generated method stub + if (webSocketSessions.containsKey(ipPort)) { + log.info("addWebSocketSessions: Client session " + session.getId() + " for " + ipPort + + " already exist. Removing old session."); + webSocketSessions.remove(ipPort); + } + + log.info("addWebSocketSessions: Adding Client session " + session.getId() + " for " + ipPort); + webSocketSessions.put(ipPort, session); + } + + + + public ResponsetoRanapp sendPayloadtoHC(String message,String ipPort, Session session) { + // TODO Auto-generated method stub + addWebSocketSessionsForRanApp(ipPort, session); + ResponsetoRanapp response=new ResponsetoRanapp(); + try { + + PayloadOutput neighbourListinUse=new ObjectMapper().readValue(message, PayloadOutput.class); + log.info("neighbourListinUse payload: "+ neighbourListinUse); + NetconfServers server=findserverIdfromPayload(neighbourListinUse); + if( server != null) { + NetconfClient netconfClient = new NetconfClient("ransim", "admin", "admin", server.getServerId(), + server.getIp(), Integer.parseInt(server.getNetconfPort())); + log.info("Initializing Netconf client session for "+ server.getIp() +":"+server.getNetconfPort()); + Integer nearrtric=nearrtricfindNearrtricIdfromserverId(server.getServerId()); + netconfClient.editConfig( + netconfClient.updateNeighbourListCUCP(neighbourListinUse, nearrtric.toString())); + response.setResponse_code(200); + response.setError_info("Neighbour Cell Relation changed Successfully"); + return response; + }else { + log.info("HC device not found for the respective config change"); + response.setResponse_code(400); + response.setError_info("HC device not found"); + return response; + } + } catch (JsonParseException e) { + // TODO Auto-generated catch block + e.getLocalizedMessage(); + e.printStackTrace(); + response.setResponse_code(500); + if(e.getMessage() == null) { + response.setError_info("Causing JsonParse Exception"); + }else + response.setError_info(e.getMessage()); + return response; + } catch (JsonMappingException e) { + // TODO Auto-generated catch block + e.getLocalizedMessage(); + e.printStackTrace(); + response.setResponse_code(500); + if(e.getMessage() == null) { + response.setError_info("Causing JsonMapping Exception"); + }else + response.setError_info(e.getMessage()); + return response; + } catch (Exception e) { + // TODO Auto-generated catch block + e.getLocalizedMessage(); + e.printStackTrace(); + response.setResponse_code(500); + if(e.getMessage() == null) { + response.setError_info("Exception Occured while connecting Netconf server"); + }else + response.setError_info(e.getMessage()); + return response; + } + + } + + private Integer nearrtricfindNearrtricIdfromserverId(String serverId) { + // TODO Auto-generated method stub + Integer gnbcucpmodel = null,gnbcuupmodel = null,gnbdumodel = null; + gnbcucpmodel=ransimRepo.getNeartricfromCUCPmodel(serverId); + if(gnbcucpmodel == null) { + gnbcuupmodel=ransimRepo.getNeartricfromCUUPmodel(serverId); + if(gnbcuupmodel == null) { + gnbdumodel=ransimRepo.getNeartricfromDUmodel(serverId); + if(gnbdumodel == null) { + return null; + }else + return gnbdumodel; + }else + return gnbcuupmodel; + }else + return gnbcucpmodel; + + + } + + private NetconfServers findserverIdfromPayload(PayloadOutput readValue) { + // TODO Auto-generated method stub + String serverId=readValue.getConfigurations().get(0).getData().getFAPService().getIdNRCellCU(); + if(serverIdIpPortMapping.keySet().contains(serverId)) { + try { + log.info("Retrieve Netconf server from database using serverId: "+serverId); + NetconfServers server = ransimRepo.getNetconfServer(serverId); + if (server != null) { + log.info("Retrieved Netconf server"+ server +"from database using serverId: "+serverId); + return server; + }else { + log.info("No Netconf server found for serverId"+ serverId); + return null; + } + } catch (Exception e1) { + log.error("Exception mapServerIdToNodes :", e1); + } + } + log.info("serverIdIpPortMapping does not contain serverId"+ serverId + "in it"); + + return null; + } + + } |