From 0f9f0b45657a78feaf0d8cc86ba9bf3beac6c095 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 3 Dec 2020 17:20:28 +0100 Subject: [PATCH] openvidu-server: use same Media Node id strategy for decrementing active recordings --- .../openvidu/server/kurento/kms/FixedOneKmsManager.java | 3 ++- .../java/io/openvidu/server/kurento/kms/KmsManager.java | 3 ++- .../recording/service/ComposedRecordingService.java | 9 ++++----- .../server/recording/service/RecordingManager.java | 2 +- .../recording/service/SingleStreamRecordingService.java | 3 ++- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java index b987b8d1..f9066343 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java @@ -67,7 +67,8 @@ public class FixedOneKmsManager extends KmsManager { } @Override - public void decrementActiveRecordings(String mediaNodeId, String recordingId) { + public void decrementActiveRecordings(RecordingProperties recordingProperties, String recordingId, + Session session) { try { this.getKmss().iterator().next().decrementActiveRecordings(recordingId); } catch (NoSuchElementException e) { diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java index e78ab43f..2d348a16 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java @@ -357,7 +357,8 @@ public abstract class KmsManager { public abstract void incrementActiveRecordings(RecordingProperties recordingProperties, String recordingId, Session session); - public abstract void decrementActiveRecordings(String mediaNodeId, String recordingId); + public abstract void decrementActiveRecordings(RecordingProperties recordingProperties, String recordingId, + Session session); @PostConstruct protected abstract void postConstructInitKurentoClients(); diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java index 4c705869..27922ea4 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java @@ -286,8 +286,7 @@ public class ComposedRecordingService extends RecordingService { cleanRecordingMaps(recordingAux); // Decrement active recordings - kmsManager.decrementActiveRecordings(recordingAux.getRecordingProperties().mediaNode(), - recordingId); + kmsManager.decrementActiveRecordings(recordingAux.getRecordingProperties(), recordingId, session); if (i == timeout) { log.error("Container did not launched in {} seconds", timeout / 2); @@ -363,8 +362,8 @@ public class ComposedRecordingService extends RecordingService { // Decrement active recordings once it is downloaded. This method will also drop // the Media Node if no more sessions or recordings and status is // waiting-idle-to-terminate - kmsManager.decrementActiveRecordings(finalRecordingArray[0].getRecordingProperties().mediaNode(), - finalRecordingArray[0].getId()); + kmsManager.decrementActiveRecordings(finalRecordingArray[0].getRecordingProperties(), + finalRecordingArray[0].getId(), session); // Upload if necessary this.uploadRecording(finalRecordingArray[0], reason); @@ -593,7 +592,7 @@ public class ComposedRecordingService extends RecordingService { // Decrement active recordings once it is downloaded. This method will also drop // the Media Node if no more sessions or recordings and status is // waiting-idle-to-terminate - kmsManager.decrementActiveRecordings(recording.getRecordingProperties().mediaNode(), recording.getId()); + kmsManager.decrementActiveRecordings(recording.getRecordingProperties(), recording.getId(), session); // Upload if necessary this.uploadRecording(recording, reason); diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java index a42363af..20faad49 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java @@ -334,7 +334,7 @@ public class RecordingManager { } } catch (Exception e) { // DECREMENT ACTIVE RECORDINGS OF MEDIA NODE AND TRY REMOVE MEDIA NODE HERE - kmsManager.decrementActiveRecordings(properties.mediaNode(), recordingId); + kmsManager.decrementActiveRecordings(properties, recordingId, session); throw e; } } diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java index 8e751214..b9ee9c66 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java @@ -183,7 +183,8 @@ public class SingleStreamRecordingService extends RecordingService { // Decrement active recordings once it is downloaded. This method will also drop // the Media Node if no more sessions or recordings and status is // waiting-idle-to-terminate - kmsManager.decrementActiveRecordings(session.getMediaNodeId(), finalRecordingArray[0].getId()); + kmsManager.decrementActiveRecordings(finalRecordingArray[0].getRecordingProperties(), + finalRecordingArray[0].getId(), session); // Upload if necessary this.uploadRecording(finalRecordingArray[0], reason);