diff options
Diffstat (limited to 'ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java')
-rw-r--r-- | ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java | 392 |
1 files changed, 212 insertions, 180 deletions
diff --git a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java index db94bfd..c58feeb 100644 --- a/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java +++ b/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java @@ -32,191 +32,223 @@ import javax.websocket.server.ServerEndpoint; import javax.websocket.EncodeException; import org.apache.log4j.Logger; -import org.onap.ransim.rest.api.controller.RansimController; +import org.onap.ransim.rest.api.services.RansimControllerServices; import org.onap.ransim.websocket.model.DeviceData; import org.onap.ransim.websocket.model.DeviceDataDecoder; import org.onap.ransim.websocket.model.DeviceDataEncoder; import org.onap.ransim.websocket.model.MessageTypes; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; -@ServerEndpoint(value = "/RansimAgent/{IpPort}", encoders = { DeviceDataEncoder.class }, decoders = { DeviceDataDecoder.class }) +@Controller +@ServerEndpoint(value = "/RansimAgent/{IpPort}", encoders = { DeviceDataEncoder.class }, decoders = { + DeviceDataDecoder.class }) public class RansimWebSocketServer { - - static Logger log = Logger.getLogger(RansimWebSocketServer.class.getName()); - - /** - * Set of actions to be done when connection is opened. - * - * @param session - * Session details - * @param ipPort - * ip address of the agent - */ - @OnOpen - public void onOpen(Session session, @PathParam("IpPort") String ipPort) { - log.info("WSS Ransim client(" + ipPort + ") opened a connection with id " + session.getId()); - try { - String serverId = RansimController.getRansimController().addWebSocketSessions(ipPort, - session); - if (serverId != null) { - log.info("New websocket session added for " + serverId); - RansimController.getRansimController().sendInitialConfigForNewAgent(ipPort, - serverId); - } else { - log.info("RansimWebSocketServer: No assigned ServerId found - No intial configuration sent to New Agent " - + ipPort); - } - } catch (Exception e) { - log.info("Exception in onOpen:", e); - } - } - - /* - @OnMessage - public void onMessage(String messageStr, Session session, @PathParam("IpPort") String ipPort) { - log.info("WSS Str Message received from client(" + ipPort + ") with id " + session.getId()); - try { - if (messageStr != null) { - DeviceData message = new DeviceDataDecoder().decode(messageStr); - if (message.getMessage() == null || message.getMessage().trim().equals("")) { - log.debug("Periodic ping message.... ignore"); - return; - } else { - - if (message.getType().equals(MessageTypes.HC_TO_RC_MODPCI)) { - RansimController.getRansimController().handleModifyPciFromSdnr( - message.getMessage(), session, ipPort); - } else if (message.getType().equals(MessageTypes.HC_TO_RC_MODANR)) { - RansimController.getRansimController().handleModifyNeighborFromSdnr( - message.getMessage(), session, ipPort); - } - } - } - } catch (Exception e) { - log.info("Exception in onMessage:", e); - } - } - */ - - - /** - * Handles the message sent from the agent. - * - * @param message - * message sent from the agent - * @param session - * session details - * @param ipPort - * ip address - * public void onMessage(DeviceData message, Session session, @PathParam("IpPort") String ipPort) { - */ - @OnMessage - public void onMessage(final DeviceData message, final Session session, @PathParam("IpPort") String ipPort) - throws IOException, EncodeException { - log.info("WSS Obj Message received from client(" + ipPort + ") with id " + session.getId()); - try { - if (message != null) { - if (message.getMessage() == null || message.getMessage().trim().equals("")) { - log.debug("Periodic ping message.... ignore"); - return; - } else { - - if (message.getType().equals(MessageTypes.HC_TO_RC_MODPCI)) { - log.info("Modify pci message received"); - RansimController.getRansimController().handleModifyPciFromSdnr( - message.getMessage(), session, ipPort); - } else if (message.getType().equals(MessageTypes.HC_TO_RC_MODANR)) { - log.info("Modify anr message received"); - RansimController.getRansimController().handleModifyNeighborFromSdnr( - message.getMessage(), session, ipPort); - } - } - } - } catch (Exception e) { - log.info("Exception in onMessage:", e); - } - } - - /** - * Set of actions to be done when connection is closed. - * - * @param reason - * reason the session was closed - * @param session - * session details - * @param ipPort - * ip address - */ - @OnClose - public void onClose(CloseReason reason, Session session, @PathParam("IpPort") String ipPort) { - try { - log.info("WSS Closing client(" + ipPort + ") cxn with id " + session.getId() + "due to " + reason.getReasonPhrase()); - RansimController.getRansimController().removeWebSocketSessions(ipPort); - } catch (Exception e) { - log.info("Exception in onClose:", e); - } - } - - public static void sendUpdateCellMessage(String str, Session session) { - DeviceData data = new DeviceData(); - data.setType(MessageTypes.RC_TO_HC_UPDCELL); - data.setMessage(str); - try { - sendMessage(data, session); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void sendPmMessage(String str, Session session) { - DeviceData data = new DeviceData(); - data.setType(MessageTypes.RC_TO_HC_PMDATA); - data.setMessage(str); - log.info("data.setMessage: " + data.getMessage()); - try { - sendMessage(data, session); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void sendFmMessage(String str, Session session) { - DeviceData data = new DeviceData(); - data.setType(MessageTypes.RC_TO_HC_FMDATA); - data.setMessage(str); - try { - sendMessage(data, session); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void sendSetConfigTopologyMessage(String str, Session session) { - DeviceData data = new DeviceData(); - data.setType(MessageTypes.RC_TO_HC_SETCONFIGTOPO); + + static Logger log = Logger.getLogger(RansimWebSocketServer.class.getName()); + + private static RansimControllerServices rscServices; + + @Autowired + public void setRscServices(RansimControllerServices service){ + this.rscServices=service; + } + /** + * Set of actions to be done when connection is opened. + * + * @param session Session details + * @param ipPort ip address of the agent + */ + @OnOpen + public void onOpen(Session session, @PathParam("IpPort") String ipPort) { + try { + String useCaseType = RansimControllerServices.useCaseType; + switch(useCaseType) { + case "sonUsecase": + log.info("RansimWebSocketServer : Assign serverId wrt SlicingUsecase"); + String serverId = rscServices.addWebSocketSessions(ipPort, session); + if (serverId != null) { + log.info("New websocket session added for " + serverId); + rscServices.sendInitialConfigForNewAgent(ipPort, serverId); + } else { + log.info("RansimWebSocketServer: No assigned ServerId found - No intial configuration sent to New Agent " + ipPort); + } + break; + case "ranSlicingUsecase": + log.info("RansimWebSocketServer : Assign serverId wrt RANSlicingUsecase"); + String ranServerId = rscServices.addRanWebSocketSessions(ipPort, session); + if (ranServerId != null) { + log.info("New websocket session added for " + ranServerId); + rscServices.sendRanInitialConfigForNewAgent(ipPort, ranServerId); + } else { + log.info("RansimWebSocketServer: No assigned ServerId found - No intial configuration sent to New Agent " + ipPort); + } + break; + default: + log.info("RansimWebSocketServer: No assigned ServerId found"); + } + } catch (Exception e) { + log.info("Exception in onOpen:", e); + } + } + + /** + * Handles the message sent from the agent. + * + * @param message message sent from the agent + * @param session session details + * @param ipPort ip address public void onMessage(DeviceData message, Session + * session, @PathParam("IpPort") String ipPort) { + */ + @OnMessage + public void onMessage(final DeviceData message, final Session session, @PathParam("IpPort") String ipPort) + throws IOException, EncodeException { + log.info("WSS Obj Message received from client(" + ipPort + ") with id " + session.getId()); + try { + if (message != null) { + if (message.getMessage() == null || message.getMessage().trim().equals("")) { + log.debug("Periodic ping message.... ignore"); + return; + } else { + + if (message.getType().equals(MessageTypes.HC_TO_RC_MODPCI)) { + log.info("Modify pci message received"); + rscServices.handleModifyPciFromSdnr(message.getMessage(), session, ipPort); + } else if (message.getType().equals(MessageTypes.HC_TO_RC_MODANR)) { + log.info("Modify anr message received"); + rscServices.handleModifyNeighborFromSdnr(message.getMessage(), session, ipPort); + } else if (message.getType().equals(MessageTypes.HC_TO_RC_RTRIC)) { + log.info("Distribute RTRIC Config message received"); + rscServices.handleRTRICConfigFromSdnr(message.getMessage(), session, ipPort); + } else if(message.getType().equals(MessageTypes.HC_TO_RC_RRM_POLICY)){ + log.info("Add RRMPolicyRatio message received"); + rscServices.handleRRMPolicyRatioUpdateFromSdnr(message.getMessage(), session, ipPort); + } else if(message.getType().equals(MessageTypes.HC_TO_RC_PLMN)){ + log.info("Add PLMNInfo message received"); + rscServices.handlePLMNInfoUpdateFromSdnr(message.getMessage(), session, ipPort); + } else if(message.getType().equals(MessageTypes.HC_TO_RC_SLICE_PROFILE)){ + log.info("Add SliceProfile message received"); + rscServices.handleSliceProfileUpdateFromSdnr(message.getMessage(), session, ipPort); + } else if(message.getType().equals(MessageTypes.HC_TO_RC_RRM_POLICY_DEL)){ + log.info("Delete RRMPolicyRatio message received"); + rscServices.handleRRMPolicyRatioDeleteFromSdnr(message.getMessage(), session, ipPort); + } else if(message.getType().equals(MessageTypes.HC_TO_RC_PLMN_DEL)){ + log.info("Delete PLMNInfo message received"); + rscServices.handlePLMNInfoDeleteFromSdnr(message.getMessage(), session, ipPort); + } else if(message.getType().equals(MessageTypes.HC_TO_RC_SLICE_PROFILE_DEL)){ + log.info("Delete SliceProfile message received"); + rscServices.handleSliceProfileDeleteFromSdnr(message.getMessage(), session, ipPort); + } + + } + } + } catch (Exception e) { + log.info("Exception in onMessage:", e); + } + } + + /** + * Set of actions to be done when connection is closed. + * + * @param reason reason the session was closed + * @param session session details + * @param ipPort ip address + */ + @OnClose + public void onClose(CloseReason reason, Session session, @PathParam("IpPort") String ipPort) { + try { + log.info("WSS Closing client(" + ipPort + ") cxn with id " + session.getId() + "due to " + + reason.getReasonPhrase()); + rscServices.removeWebSocketSessions(ipPort); + } catch (Exception e) { + log.info("Exception in onClose:", e); + } + } + + public static void sendUpdateCellMessage(String str, Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.RC_TO_HC_UPDCELL); + data.setMessage(str); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void sendPmMessage(String str, Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.RC_TO_HC_PMDATA); + data.setMessage(str); + log.info("data.setMessage: " + data.getMessage()); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void sendIntelligentSlicingPmData(String str, Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.RC_TO_HC_PMFILEDATA); data.setMessage(str); - try { - sendMessage(data, session); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void sendPingMessage(Session session) { - DeviceData data = new DeviceData(); - data.setType(MessageTypes.RC_TO_HC_PING); - data.setMessage(""); - try { - sendMessage(data, session); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private static void sendMessage(DeviceData data, Session session) { - try { - session.getBasicRemote().sendObject(data); - } catch (Exception e) { - log.info("Exception in sendMessage:", e); - } - } + log.info("data.setMessage: " + data.getMessage()); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void sendFmMessage(String str, Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.RC_TO_HC_FMDATA); + data.setMessage(str); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void sendSetConfigTopologyMessage(String str, Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.RC_TO_HC_SETCONFIGTOPO); + data.setMessage(str); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void sendSetReconfigureMessage(String str, Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.HC_TO_RC_RTRIC); + data.setMessage(str); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void sendPingMessage(Session session) { + DeviceData data = new DeviceData(); + data.setType(MessageTypes.RC_TO_HC_PING); + data.setMessage(""); + try { + sendMessage(data, session); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void sendMessage(DeviceData data, Session session) { + try { + session.getBasicRemote().sendObject(data); + } catch (Exception e) { + log.info("Exception in sendMessage:", e); + } + } } |