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=[]
- 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}"

View File

@ -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<String> sessionIds;
private List<String> recordingIds;
private String environmentId;
private String clusterId;
public CDREventNodeCrashed(CDREventName eventName, Long timeStamp, Kms kms, String environmentId,
List<String> sessionIds, List<String> recordingIds) {
super(eventName, null, null, timeStamp);
this.kms = kms;
public CDREventNodeCrashed(Long timeStamp, String id, String environmentId, String ip, String uri,
NodeRole nodeRole, List<String> sessionIds, List<String> 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;
}

View File

@ -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<String> sessionIds, List<String> recordingIds) {
CDREvent e = new CDREventNodeCrashed(CDREventName.nodeCrashed, timeOfKurentoDisconnection, kms, environmentId,
sessionIds, recordingIds);
this.log(e);
}
protected void log(CDREvent event) {
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.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<String> recordingIds) {
}
public void onMasterNodeCrashed() {
public void onMasterNodeCrashed(CDREventNodeCrashed event) {
}
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 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";

View File

@ -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;