Merge branch 'feat/status' into 'master'
Feat: send current state to server See merge request sheepitrenderfarm/client!340
This commit is contained in:
@@ -79,6 +79,14 @@ import lombok.Data;
|
|||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
|
|
||||||
@Data public class Client {
|
@Data public class Client {
|
||||||
|
public enum State {
|
||||||
|
DOWNLOADING,
|
||||||
|
PREPARING,
|
||||||
|
RENDERING,
|
||||||
|
UPLOADING,
|
||||||
|
UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
public static final int MIN_JOB_ID = 20; //to distinguish between actual jobs and test frames
|
public static final int MIN_JOB_ID = 20; //to distinguish between actual jobs and test frames
|
||||||
private static final Locale LOCALE = Locale.ENGLISH;
|
private static final Locale LOCALE = Locale.ENGLISH;
|
||||||
private DirectoryManager directoryManager;
|
private DirectoryManager directoryManager;
|
||||||
@@ -86,6 +94,7 @@ import okhttp3.HttpUrl;
|
|||||||
private ServerRequest serverRequest;
|
private ServerRequest serverRequest;
|
||||||
private Configuration configuration;
|
private Configuration configuration;
|
||||||
private Log log;
|
private Log log;
|
||||||
|
private State state;
|
||||||
private Job renderingJob;
|
private Job renderingJob;
|
||||||
private Job previousJob;
|
private Job previousJob;
|
||||||
private BlockingQueue<QueuedJob> jobsToValidate;
|
private BlockingQueue<QueuedJob> jobsToValidate;
|
||||||
@@ -109,6 +118,7 @@ import okhttp3.HttpUrl;
|
|||||||
this.log = Log.getInstance();
|
this.log = Log.getInstance();
|
||||||
this.gui = gui;
|
this.gui = gui;
|
||||||
this.directoryManager = new DirectoryManager(this.configuration);
|
this.directoryManager = new DirectoryManager(this.configuration);
|
||||||
|
this.state = State.UNKNOWN;
|
||||||
this.renderingJob = null;
|
this.renderingJob = null;
|
||||||
this.previousJob = null;
|
this.previousJob = null;
|
||||||
this.jobsToValidate = new ArrayBlockingQueue<>(5);
|
this.jobsToValidate = new ArrayBlockingQueue<>(5);
|
||||||
@@ -712,6 +722,7 @@ import okhttp3.HttpUrl;
|
|||||||
gui.setRenderingProjectName(ajob.getName());
|
gui.setRenderingProjectName(ajob.getName());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
this.state = State.DOWNLOADING;
|
||||||
downloadRet = this.downloadExecutable(ajob);
|
downloadRet = this.downloadExecutable(ajob);
|
||||||
if (downloadRet != Error.Type.OK) {
|
if (downloadRet != Error.Type.OK) {
|
||||||
gui.setRenderingProjectName("");
|
gui.setRenderingProjectName("");
|
||||||
@@ -732,6 +743,8 @@ import okhttp3.HttpUrl;
|
|||||||
return downloadRet;
|
return downloadRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.state = State.PREPARING;
|
||||||
|
|
||||||
int ret = this.prepareWorkingDirectory(ajob); // decompress renderer and scene archives
|
int ret = this.prepareWorkingDirectory(ajob); // decompress renderer and scene archives
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
gui.setRenderingProjectName("");
|
gui.setRenderingProjectName("");
|
||||||
@@ -743,6 +756,7 @@ import okhttp3.HttpUrl;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (SheepItException e) {
|
catch (SheepItException e) {
|
||||||
|
this.state = State.UNKNOWN;
|
||||||
gui.setRenderingProjectName("");
|
gui.setRenderingProjectName("");
|
||||||
for (String logline : directoryManager.filesystemHealthCheck()) {
|
for (String logline : directoryManager.filesystemHealthCheck()) {
|
||||||
log.debug(logline);
|
log.debug(logline);
|
||||||
@@ -794,6 +808,7 @@ import okhttp3.HttpUrl;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.state = State.RENDERING;
|
||||||
Error.Type err = ajob.render(removeSceneDirectoryOnceRenderHasStartedObserver);
|
Error.Type err = ajob.render(removeSceneDirectoryOnceRenderHasStartedObserver);
|
||||||
gui.setRenderingProjectName("");
|
gui.setRenderingProjectName("");
|
||||||
gui.setRemainingTime("");
|
gui.setRemainingTime("");
|
||||||
@@ -805,6 +820,7 @@ import okhttp3.HttpUrl;
|
|||||||
if (err != Error.Type.OK) {
|
if (err != Error.Type.OK) {
|
||||||
this.log.error("Client::work problem with runRenderer (ret " + err + ")");
|
this.log.error("Client::work problem with runRenderer (ret " + err + ")");
|
||||||
}
|
}
|
||||||
|
this.state = State.UNKNOWN;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ public class ServerRequest extends Thread {
|
|||||||
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(this.getPage("keepmealive"))).newBuilder();
|
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(this.getPage("keepmealive"))).newBuilder();
|
||||||
urlBuilder.addQueryParameter("paused", String.valueOf(this.client.isSuspended()));
|
urlBuilder.addQueryParameter("paused", String.valueOf(this.client.isSuspended()));
|
||||||
urlBuilder.addQueryParameter("sleeping", String.valueOf(this.client.nextJobRequest() != null));
|
urlBuilder.addQueryParameter("sleeping", String.valueOf(this.client.nextJobRequest() != null));
|
||||||
|
urlBuilder.addQueryParameter("state", String.valueOf(this.client.getState()));
|
||||||
|
|
||||||
if (this.client != null && this.client.getRenderingJob() != null) {
|
if (this.client != null && this.client.getRenderingJob() != null) {
|
||||||
Job job = this.client.getRenderingJob();
|
Job job = this.client.getRenderingJob();
|
||||||
|
|||||||
Reference in New Issue
Block a user