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 f93112c3..a77c718f 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 @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -121,6 +122,13 @@ public abstract class KmsManager { } } + public synchronized boolean atLeastOneConnectedAndRunningKms() { + Optional optional = this.kmss.values().stream() + .filter(kms -> kms.isKurentoClientConnected() && mediaNodeStatusManager.isRunning(kms.getId())) + .findFirst(); + return optional.isPresent(); + } + public synchronized List getKmssSortedByLoad() { List kmsLoads = getKmsLoads(); Collections.sort(kmsLoads);