diff --git a/protocol.txt b/protocol.txt index f5ef32d..06f48e7 100644 --- a/protocol.txt +++ b/protocol.txt @@ -34,7 +34,6 @@ A path is provided for error, job request, job validation, download needed file, The maximum duration between two heartbeats in seconds is given by the attribute "max-period". - @@ -123,7 +122,7 @@ if fileformat != 'BMP' and fileformat != 'PNG' and fileformat != 'JPEG' and file === Job validation === -Url: use the request type "validate-job" from the configuration answer. +Url: use the url url of job's node for 'validationurl'. Parameter as GET or POST: * job: Job ID * frame: Job's frame number diff --git a/src/com/sheepit/client/Client.java b/src/com/sheepit/client/Client.java index 1dbbc6b..a3bc066 100644 --- a/src/com/sheepit/client/Client.java +++ b/src/com/sheepit/client/Client.java @@ -741,13 +741,9 @@ public class Client { } protected Error.Type confirmJob(Job ajob) { - String extras_config = ""; - RenderProcess process = ajob.getProcessRender(); - if (process != null && process.getCoresUsed() > 0) { - extras_config = "&cores=" + process.getCoresUsed(); - } - - String url_real = String.format("%s?job=%s&frame=%s&rendertime=%d&memoryused=%s&extras=%s%s", this.server.getPage("validate-job"), ajob.getId(), ajob.getFrameNumber(), ajob.getProcessRender().getDuration(), ajob.getProcessRender().getMemoryUsed(), ajob.getExtras(), extras_config); + String url_real = String.format("%s&rendertime=%d&memoryused=%s", ajob.getValidationUrl(), ajob.getProcessRender().getDuration(), ajob.getProcessRender().getMemoryUsed()); + this.log.debug("Client::confirmeJob url " + url_real); + this.log.debug("path frame " + ajob.getOutputImagePath()); this.isValidatingJob = true; int nb_try = 1; diff --git a/src/com/sheepit/client/Configuration.java b/src/com/sheepit/client/Configuration.java index df983e2..06a3668 100644 --- a/src/com/sheepit/client/Configuration.java +++ b/src/com/sheepit/client/Configuration.java @@ -275,7 +275,7 @@ public class Configuration { InputStream versionStream = Client.class.getResourceAsStream(versionPath); if (versionStream == null) { System.err.println("Configuration::getJarVersion Failed to get version file"); - return "5.0.0"; + return "6.0.0"; } try { @@ -287,7 +287,7 @@ public class Configuration { } catch (IOException ex) { System.err.println("Configuration::getJarVersion error while reading manifest file (" + versionPath + "): " + ex.getMessage()); - return "5.0.0"; + return "6.0.0"; } } diff --git a/src/com/sheepit/client/Job.java b/src/com/sheepit/client/Job.java index cfdb2a6..4923640 100644 --- a/src/com/sheepit/client/Job.java +++ b/src/com/sheepit/client/Job.java @@ -66,6 +66,7 @@ public class Job { private String outputImagePath; private String path; // path inside of the archive private String rendererCommand; + private String validationUrl; private String script; private boolean useGPU; private String name; @@ -81,13 +82,14 @@ public class Job { private Configuration configuration; private Log log; - public Job(Configuration config_, Gui gui_, Log log_, String id_, String frame_, String path_, boolean use_gpu, String command_, String script_, String sceneMd5_, String rendererMd5_, String name_, String password_, String extras_, boolean synchronous_upload_, String update_method_) { + public Job(Configuration config_, Gui gui_, Log log_, String id_, String frame_, String path_, boolean use_gpu, String command_, String validationUrl_, String script_, String sceneMd5_, String rendererMd5_, String name_, String password_, String extras_, boolean synchronous_upload_, String update_method_) { configuration = config_; id = id_; frameNumber = frame_; path = path_; useGPU = use_gpu; rendererCommand = command_; + validationUrl = validationUrl_; sceneMD5 = sceneMd5_; rendererMD5 = rendererMd5_; name = name_; diff --git a/src/com/sheepit/client/Server.java b/src/com/sheepit/client/Server.java index efd2fcd..e3ac9ff 100644 --- a/src/com/sheepit/client/Server.java +++ b/src/com/sheepit/client/Server.java @@ -38,6 +38,7 @@ import java.net.CookieManager; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.NoRouteToHostException; +import java.net.URLDecoder; import java.net.UnknownHostException; import java.net.URL; import java.net.URLEncoder; @@ -184,7 +185,7 @@ public class Server extends Thread implements HostnameVerifier, X509TrustManager String publickey = null; try { String url_remote = this.base_url + "/server/config.php"; - String parameters = String.format("login=%s&password=%s&cpu_family=%s&cpu_model=%s&cpu_model_name=%s&cpu_cores=%s&os=%s&ram=%s&bits=%s&version=%s&hostname=%s&ui=%s&extras=%s", + String parameters = String.format("login=%s&password=%s&cpu_family=%s&cpu_model=%s&cpu_model_name=%s&cpu_cores=%s&os=%s&ram=%s&bits=%s&version=%s&hostname=%s&ui=%s&extras=%s", URLEncoder.encode(this.user_config.getLogin(), "UTF-8"), URLEncoder.encode(this.user_config.getPassword(), "UTF-8"), URLEncoder.encode(os.getCPU().family(), "UTF-8"), @@ -339,6 +340,8 @@ public class Server extends Thread implements HostnameVerifier, X509TrustManager script += jobData.getRenderTask().getScript(); + String validationUrl = URLDecoder.decode(jobData.getRenderTask().getValidationUrl()); + Job a_job = new Job( this.user_config, this.client.getGui(), @@ -348,6 +351,7 @@ public class Server extends Thread implements HostnameVerifier, X509TrustManager jobData.getRenderTask().getPath().replace("/", File.separator), jobData.getRenderTask().getUseGpu() == 1, jobData.getRenderTask().getRendererInfos().getCommandline(), + validationUrl, script, jobData.getRenderTask().getArchive_md5(), jobData.getRenderTask().getRendererInfos().getMd5(), diff --git a/src/com/sheepit/client/datamodel/RenderTask.java b/src/com/sheepit/client/datamodel/RenderTask.java index 32b55a8..b18457b 100644 --- a/src/com/sheepit/client/datamodel/RenderTask.java +++ b/src/com/sheepit/client/datamodel/RenderTask.java @@ -37,6 +37,10 @@ public class RenderTask { @Attribute(name = "extras") @Getter private String extras; + + @Attribute(name = "validation_url") + @Getter + private String validationUrl; @Attribute(name = "name") @Getter