aboutsummaryrefslogtreecommitdiffstats
path: root/ransim/ransimctrlr/RANSIM-CTRLR/src/main/java/org/onap/ransim/websocket/server/RansimWebSocketServer.java
diff options
context:
space:
mode:
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.java392
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);
+ }
+ }
}