openvidu-server: master node nodeCrashed event

pull/630/head
pabloFuente 2021-05-07 11:32:51 +02:00
parent cec967acc7
commit da003448ff
6 changed files with 30 additions and 24 deletions

View File

@ -41,7 +41,7 @@ services:
- KMS_URIS=[] - KMS_URIS=[]
- OPENVIDU_WEBHOOK=false - OPENVIDU_WEBHOOK=false
- OPENVIDU_WEBHOOK_ENDPOINT=http://127.0.0.1:7777/webhook - 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_IP=127.0.0.1
- COTURN_REDIS_PASSWORD=${OPENVIDU_SECRET} - COTURN_REDIS_PASSWORD=${OPENVIDU_SECRET}
- COTURN_IP=${COTURN_IP:-auto-ipv4} - COTURN_IP=${COTURN_IP:-auto-ipv4}
@ -70,6 +70,7 @@ services:
- REDIS_TIMEOUT=5 - REDIS_TIMEOUT=5
- REDIS_DB=replicationmanager - REDIS_DB=replicationmanager
- MEDIANODE_AS_NOTIFICATION_QUEUE=${RM_SQS_QUEUE} - MEDIANODE_AS_NOTIFICATION_QUEUE=${RM_SQS_QUEUE}
- AWS_INSTANCE_ID=${AWS_INSTANCE_ID}
logging: logging:
options: options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}"

View File

@ -5,34 +5,45 @@ import java.util.List;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import io.openvidu.server.kurento.kms.Kms;
public class CDREventNodeCrashed extends CDREvent { 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<String> sessionIds; private List<String> sessionIds;
private List<String> recordingIds; private List<String> recordingIds;
private String environmentId; private String clusterId;
public CDREventNodeCrashed(CDREventName eventName, Long timeStamp, Kms kms, String environmentId, public CDREventNodeCrashed(Long timeStamp, String id, String environmentId, String ip, String uri,
List<String> sessionIds, List<String> recordingIds) { NodeRole nodeRole, List<String> sessionIds, List<String> recordingIds, String clusterId) {
super(eventName, null, null, timeStamp); super(CDREventName.nodeCrashed, null, null, timeStamp);
this.kms = kms; this.id = id;
this.environmentId = environmentId;
this.ip = ip;
this.uri = uri;
this.nodeRole = nodeRole;
this.sessionIds = sessionIds; this.sessionIds = sessionIds;
this.recordingIds = recordingIds; this.recordingIds = recordingIds;
this.environmentId = environmentId; this.clusterId = clusterId;
} }
@Override @Override
public JsonObject toJson() { public JsonObject toJson() {
JsonObject json = super.toJson(); JsonObject json = super.toJson();
json.addProperty("id", this.kms.getId()); json.addProperty("id", this.id);
if (this.environmentId != null) { if (this.environmentId != null) {
json.addProperty("environmentId", this.environmentId); json.addProperty("environmentId", this.environmentId);
} }
json.addProperty("ip", this.kms.getIp()); json.addProperty("ip", this.ip);
json.addProperty("uri", this.kms.getUri()); json.addProperty("uri", this.uri);
json.addProperty("nodeRole", this.nodeRole.name());
JsonArray sIds = new JsonArray(); JsonArray sIds = new JsonArray();
this.sessionIds.forEach(sId -> sIds.add(sId)); this.sessionIds.forEach(sId -> sIds.add(sId));
@ -41,6 +52,7 @@ public class CDREventNodeCrashed extends CDREvent {
JsonArray rIds = new JsonArray(); JsonArray rIds = new JsonArray();
this.recordingIds.forEach(rId -> rIds.add(rId)); this.recordingIds.forEach(rId -> rIds.add(rId));
json.add("recordingIds", rIds); json.add("recordingIds", rIds);
json.addProperty("clusterId", this.clusterId);
return json; return json;
} }

View File

@ -19,7 +19,6 @@ package io.openvidu.server.cdr;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; 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.Session;
import io.openvidu.server.core.SessionManager; import io.openvidu.server.core.SessionManager;
import io.openvidu.server.kurento.endpoint.KmsEvent; 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.Recording;
import io.openvidu.server.recording.service.RecordingManager; import io.openvidu.server.recording.service.RecordingManager;
import io.openvidu.server.summary.SessionSummary; import io.openvidu.server.summary.SessionSummary;
@ -194,13 +192,6 @@ public class CallDetailRecord {
this.log(new CDREventSignal(sessionId, uniqueSessionId, from, to, type, data)); this.log(new CDREventSignal(sessionId, uniqueSessionId, from, to, type, data));
} }
public void recordNodeCrashed(Kms kms, String environmentId, long timeOfKurentoDisconnection,
List<String> sessionIds, List<String> recordingIds) {
CDREvent e = new CDREventNodeCrashed(CDREventName.nodeCrashed, timeOfKurentoDisconnection, kms, environmentId,
sessionIds, recordingIds);
this.log(e);
}
protected void log(CDREvent event) { protected void log(CDREvent event) {
this.loggers.forEach(logger -> { this.loggers.forEach(logger -> {

View File

@ -38,6 +38,7 @@ import io.openvidu.client.OpenViduException;
import io.openvidu.client.OpenViduException.Code; import io.openvidu.client.OpenViduException.Code;
import io.openvidu.client.internal.ProtocolElements; import io.openvidu.client.internal.ProtocolElements;
import io.openvidu.java.client.OpenViduRole; import io.openvidu.java.client.OpenViduRole;
import io.openvidu.server.cdr.CDREventNodeCrashed;
import io.openvidu.server.cdr.CallDetailRecord; import io.openvidu.server.cdr.CallDetailRecord;
import io.openvidu.server.config.OpenviduBuildInfo; import io.openvidu.server.config.OpenviduBuildInfo;
import io.openvidu.server.config.OpenviduConfig; import io.openvidu.server.config.OpenviduConfig;
@ -645,7 +646,7 @@ public class SessionEventsHandler {
List<String> recordingIds) { List<String> recordingIds) {
} }
public void onMasterNodeCrashed() { public void onMasterNodeCrashed(CDREventNodeCrashed event) {
} }
public void storeRecordingToSendClientEvent(Recording recording) { public void storeRecordingToSendClientEvent(Recording recording) {

View File

@ -10,6 +10,7 @@ public class RequestMappings {
final public static String CDR = "/openvidu/cdr"; final public static String CDR = "/openvidu/cdr";
final public static String API_ELK = "/openvidu/elk"; final public static String API_ELK = "/openvidu/elk";
final public static String API_INSPECTOR = "/openvidu/inspector-api"; final public static String API_INSPECTOR = "/openvidu/inspector-api";
final public static String API_MULTI_MASTER = "/openvidu/multi-master";
// Static resources // Static resources
final public static String RECORDINGS = "/openvidu/recordings"; final public static String RECORDINGS = "/openvidu/recordings";
final public static String CUSTOM_LAYOUTS = "/openvidu/layouts"; final public static String CUSTOM_LAYOUTS = "/openvidu/layouts";

View File

@ -149,7 +149,7 @@ public class HttpWebhookSender {
* endpoint B) The response received from the endpoint is * endpoint B) The response received from the endpoint is
* not 200 * not 200
*/ */
public void sendHttpPostCallbackBlocking(CDREvent event) throws IOException { private void sendHttpPostCallbackBlocking(CDREvent event) throws IOException {
if (!this.events.contains(event.getEventName())) { if (!this.events.contains(event.getEventName())) {
return; return;