mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: allow recordings in waiting-idle-to-terminate Media Nodes
parent
da617a8537
commit
b305c9211f
|
@ -54,7 +54,7 @@ public class FixedOneKmsManager extends KmsManager {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean isMediaNodeRunning(String mediaNodeId) {
|
||||
public boolean isMediaNodeAvailableForRecording(String mediaNodeId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -357,7 +357,7 @@ public abstract class KmsManager {
|
|||
public abstract List<Kms> initializeKurentoClients(List<KmsProperties> kmsProperties, boolean disconnectUponFailure)
|
||||
throws Exception;
|
||||
|
||||
public abstract boolean isMediaNodeRunning(String mediaNodeId);
|
||||
public abstract boolean isMediaNodeAvailableForRecording(String mediaNodeId);
|
||||
|
||||
@PostConstruct
|
||||
protected abstract void postConstructInitKurentoClients();
|
||||
|
|
|
@ -269,7 +269,7 @@ public class RecordingManager {
|
|||
// 1. INCREMENT ACTIVE RECORDINGS OF MEDIA NODE HERE
|
||||
((KurentoSession) session).getKms().incrementActiveRecordings();
|
||||
// 2. CHECK THAT MEDIA NODE HAS RUNNING STATUS. IF NOT THEN FAIL RECORDING START
|
||||
if (!kmsManager.isMediaNodeRunning(properties.mediaNode())) {
|
||||
if (!kmsManager.isMediaNodeAvailableForRecording(properties.mediaNode())) {
|
||||
throw new OpenViduException(Code.MEDIA_NODE_STATUS_WRONG,
|
||||
"Media Node " + properties.mediaNode() + " status is not \"running\"");
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ import com.google.gson.JsonObject;
|
|||
import com.google.gson.JsonParser;
|
||||
|
||||
import io.openvidu.client.OpenViduException;
|
||||
import io.openvidu.client.OpenViduException.Code;
|
||||
import io.openvidu.client.internal.ProtocolElements;
|
||||
import io.openvidu.java.client.ConnectionProperties;
|
||||
import io.openvidu.java.client.ConnectionType;
|
||||
|
@ -379,8 +380,11 @@ public class SessionRestController {
|
|||
return new ResponseEntity<>(startedRecording.toJson().toString(), RestUtils.getResponseHeaders(),
|
||||
HttpStatus.OK);
|
||||
} catch (OpenViduException e) {
|
||||
HttpStatus status = e.getCodeValue() == Code.MEDIA_NODE_STATUS_WRONG.getValue()
|
||||
? HttpStatus.SERVICE_UNAVAILABLE
|
||||
: HttpStatus.INTERNAL_SERVER_ERROR;
|
||||
return new ResponseEntity<>("Error starting recording: " + e.getMessage(), RestUtils.getResponseHeaders(),
|
||||
HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
status);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue