diff --git a/openvidu-server/deployments/pro/docker-compose/aws-asg-openvidu-server-pro/docker-compose.yml b/openvidu-server/deployments/pro/docker-compose/aws-asg-openvidu-server-pro/docker-compose.yml index 73ea2487..4f9699b0 100644 --- a/openvidu-server/deployments/pro/docker-compose/aws-asg-openvidu-server-pro/docker-compose.yml +++ b/openvidu-server/deployments/pro/docker-compose/aws-asg-openvidu-server-pro/docker-compose.yml @@ -41,7 +41,7 @@ services: - KMS_URIS=[] - OPENVIDU_WEBHOOK=false - OPENVIDU_WEBHOOK_ENDPOINT=http://127.0.0.1:7777/webhook - - OPENVIDU_PRO_REPLICATION_MANAGER_WEBHOOK=http://127.0.0.1:4443/openvidu/replication-manager-webhook?OPENVIDU_SECRET=${OPENVIDU_SECRET} + - MULTI_MASTER_REPLICATION_MANAGER_WEBHOOK=http://127.0.0.1:4443/openvidu/replication-manager-webhook?OPENVIDU_SECRET=${OPENVIDU_SECRET} - COTURN_REDIS_IP=127.0.0.1 - COTURN_REDIS_PASSWORD=${OPENVIDU_SECRET} - COTURN_IP=${COTURN_IP:-auto-ipv4} @@ -70,6 +70,7 @@ services: - REDIS_TIMEOUT=5 - REDIS_DB=replicationmanager - MEDIANODE_AS_NOTIFICATION_QUEUE=${RM_SQS_QUEUE} + - AWS_INSTANCE_ID=${AWS_INSTANCE_ID} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" diff --git a/openvidu-server/src/main/java/io/openvidu/server/cdr/CDREventNodeCrashed.java b/openvidu-server/src/main/java/io/openvidu/server/cdr/CDREventNodeCrashed.java index d9aef1b1..d217a2a3 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/cdr/CDREventNodeCrashed.java +++ b/openvidu-server/src/main/java/io/openvidu/server/cdr/CDREventNodeCrashed.java @@ -5,34 +5,45 @@ import java.util.List; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import io.openvidu.server.kurento.kms.Kms; - public class CDREventNodeCrashed extends CDREvent { - private Kms kms; + public enum NodeRole { + masternode, medianode + } + + private String id; + private String environmentId; + private String ip; + private String uri; + private NodeRole nodeRole; private List sessionIds; private List recordingIds; - private String environmentId; + private String clusterId; - public CDREventNodeCrashed(CDREventName eventName, Long timeStamp, Kms kms, String environmentId, - List sessionIds, List recordingIds) { - super(eventName, null, null, timeStamp); - this.kms = kms; + public CDREventNodeCrashed(Long timeStamp, String id, String environmentId, String ip, String uri, + NodeRole nodeRole, List sessionIds, List recordingIds, String clusterId) { + super(CDREventName.nodeCrashed, null, null, timeStamp); + this.id = id; + this.environmentId = environmentId; + this.ip = ip; + this.uri = uri; + this.nodeRole = nodeRole; this.sessionIds = sessionIds; this.recordingIds = recordingIds; - this.environmentId = environmentId; + this.clusterId = clusterId; } @Override public JsonObject toJson() { JsonObject json = super.toJson(); - json.addProperty("id", this.kms.getId()); + json.addProperty("id", this.id); if (this.environmentId != null) { json.addProperty("environmentId", this.environmentId); } - json.addProperty("ip", this.kms.getIp()); - json.addProperty("uri", this.kms.getUri()); + json.addProperty("ip", this.ip); + json.addProperty("uri", this.uri); + json.addProperty("nodeRole", this.nodeRole.name()); JsonArray sIds = new JsonArray(); this.sessionIds.forEach(sId -> sIds.add(sId)); @@ -41,6 +52,7 @@ public class CDREventNodeCrashed extends CDREvent { JsonArray rIds = new JsonArray(); this.recordingIds.forEach(rId -> rIds.add(rId)); json.add("recordingIds", rIds); + json.addProperty("clusterId", this.clusterId); return json; } diff --git a/openvidu-server/src/main/java/io/openvidu/server/cdr/CallDetailRecord.java b/openvidu-server/src/main/java/io/openvidu/server/cdr/CallDetailRecord.java index 215f16d4..0ccfc9bd 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/cdr/CallDetailRecord.java +++ b/openvidu-server/src/main/java/io/openvidu/server/cdr/CallDetailRecord.java @@ -19,7 +19,6 @@ package io.openvidu.server.cdr; import java.util.Collection; import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -37,7 +36,6 @@ import io.openvidu.server.core.Participant; import io.openvidu.server.core.Session; import io.openvidu.server.core.SessionManager; import io.openvidu.server.kurento.endpoint.KmsEvent; -import io.openvidu.server.kurento.kms.Kms; import io.openvidu.server.recording.Recording; import io.openvidu.server.recording.service.RecordingManager; import io.openvidu.server.summary.SessionSummary; @@ -194,13 +192,6 @@ public class CallDetailRecord { this.log(new CDREventSignal(sessionId, uniqueSessionId, from, to, type, data)); } - public void recordNodeCrashed(Kms kms, String environmentId, long timeOfKurentoDisconnection, - List sessionIds, List recordingIds) { - CDREvent e = new CDREventNodeCrashed(CDREventName.nodeCrashed, timeOfKurentoDisconnection, kms, environmentId, - sessionIds, recordingIds); - this.log(e); - } - protected void log(CDREvent event) { this.loggers.forEach(logger -> { diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java b/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java index 45c5523e..f041792b 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java @@ -38,6 +38,7 @@ import io.openvidu.client.OpenViduException; import io.openvidu.client.OpenViduException.Code; import io.openvidu.client.internal.ProtocolElements; import io.openvidu.java.client.OpenViduRole; +import io.openvidu.server.cdr.CDREventNodeCrashed; import io.openvidu.server.cdr.CallDetailRecord; import io.openvidu.server.config.OpenviduBuildInfo; import io.openvidu.server.config.OpenviduConfig; @@ -645,7 +646,7 @@ public class SessionEventsHandler { List recordingIds) { } - public void onMasterNodeCrashed() { + public void onMasterNodeCrashed(CDREventNodeCrashed event) { } public void storeRecordingToSendClientEvent(Recording recording) { diff --git a/openvidu-server/src/main/java/io/openvidu/server/rest/RequestMappings.java b/openvidu-server/src/main/java/io/openvidu/server/rest/RequestMappings.java index f842ee85..9b2a7f3b 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rest/RequestMappings.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rest/RequestMappings.java @@ -10,6 +10,7 @@ public class RequestMappings { final public static String CDR = "/openvidu/cdr"; final public static String API_ELK = "/openvidu/elk"; final public static String API_INSPECTOR = "/openvidu/inspector-api"; + final public static String API_MULTI_MASTER = "/openvidu/multi-master"; // Static resources final public static String RECORDINGS = "/openvidu/recordings"; final public static String CUSTOM_LAYOUTS = "/openvidu/layouts"; diff --git a/openvidu-server/src/main/java/io/openvidu/server/webhook/HttpWebhookSender.java b/openvidu-server/src/main/java/io/openvidu/server/webhook/HttpWebhookSender.java index 9bd14f6c..34408690 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/webhook/HttpWebhookSender.java +++ b/openvidu-server/src/main/java/io/openvidu/server/webhook/HttpWebhookSender.java @@ -149,7 +149,7 @@ public class HttpWebhookSender { * endpoint B) The response received from the endpoint is * not 200 */ - public void sendHttpPostCallbackBlocking(CDREvent event) throws IOException { + private void sendHttpPostCallbackBlocking(CDREvent event) throws IOException { if (!this.events.contains(event.getEventName())) { return;