Merge pull request #147 from AGSPhoenix/patch-1

Minor protocol.txt improvements
This commit is contained in:
Laurent Clouet
2018-05-16 09:56:58 +02:00
committed by GitHub

View File

@@ -1,36 +1,36 @@
=== Session creation ===
Url: Server url
Url: Server url + "/server/config.php"
Parameters as GET:
* login: User's login in plain text.
* password: User's password in plain text.
* version: Client's version, for example 3.3.1762.
* os: Computer's operating system, at the moment only "windows", "mac" and "linux" are supported.
* bits: Architecture size, at the moment only "32bit" and "64bit" are supported.
* cpu_family: CPU's family, on linux it can be get in /proc/cpuinfo via the attribute "cpu family".
* cpu_model: CPU's model, on linux it can be get in /proc/cpuinfo via the attribute "model".
* cpu_model_name: CPU's model as human readable, on linux it can be get in /proc/cpuinfo via the attribute "model name".
* cpu_cores: Number of core (or thread) available.
* ram: Memory available in kilo bytes.
* ram_max: Maximum memory allowed for render (in kilo bytes).
* extras (optional): Extra data use for the configuration.
* hostname (optional): Hostname of the machine, it's useful when the user have multiple machines with same hardware configuration. It's only used for display for server website.
* cpu_family: CPU's family, on linux it can be found in /proc/cpuinfo via the attribute "cpu family".
* cpu_model: CPU's model, on linux it can be found in /proc/cpuinfo via the attribute "model".
* cpu_model_name: CPU's model in human readable format, on linux it can be found in /proc/cpuinfo via the attribute "model name".
* cpu_cores: Number of cores (or thread) available.
* ram: Memory available (in kilobytes).
* ram_max: Maximum memory allowed for renderer (in kilobytes).
* extras (optional): Extra data used for the configuration.
* hostname (optional): Hostname of the machine, useful for distinguishing multiple machines with the same hardware configuration. Only used for display on the website.
Answer in case of error:
<?xml version="1.0" encoding="utf-8" ?>
<config status="X" />
where X:
* 100 => Error no version given.
* 100 => No version given.
* 101 => Client is too old.
* 102 => Authentication failure.
* 103 => WebSession have expired.
* 103 => WebSession has expired.
* 104 => Missing parameter.
* something else => Unknown error.
Answer with no error:
The status="0" to specify everything is okay, plus a list of destination for request, validation job, etc.
It provide a destination for error, job request, job validation, download needed file, heart beat (keepmealive), logout, thumbnail of last frame rendered and how many credits was earned so far.
The maximum duration between two heart beat is given by the attribute "max-period" who is in second.
A status of "0" to specify everything is okay, plus a list of URL paths for request, validation job, etc.
A path is provided for error, job request, job validation, download needed file, heartbeat (keepmealive), logout, thumbnail of last frame rendered and how many credits have been earned so far.
The maximum duration between two heartbeats in seconds is given by the attribute "max-period".
<?xml version="1.0" encoding="utf-8" ?>
<config status="0">
<request type="validate-job" path="/server/send_frame.php" />
@@ -54,7 +54,7 @@ No additional parameter is required.
Url: use the request type "download-archive" from the configuration answer.
Parameter as GET or POST:
* type: "binary"
* job: id of the job
* job: ID of the job
Answer:
No error: the file
@@ -66,7 +66,7 @@ On error: an 404 http code
Url: use the request type "download-archive" from the configuration answer.
Parameter as GET or POST:
* type: "job"
* job: Id of the job
* job: ID of the job
Answer:
No error: the file
@@ -77,10 +77,10 @@ On error: an 404 http code
Url: use the request type "request-job" from the configuration answer.
Parameter as GET or POST:
* computemethod: What are my computer capability, 0 for using gpu and cpu (the computer is capable of using both but it will not use it at the same time), 1 for cpu only, 2 for gpu only.
* computemethod: What compute types are available on this machine. 0 for CPU or GPU, 1 for CPU only, 2 for GPU only.
* cpu_cores: Number of cores currently available for rendering (optional).
* gpu_model: Model name of the GPU available for rendering
* gpu_ram: GPU's memory (in byte)
* gpu_ram: GPU memory size (in bytes)
Answer in case of error:
<?xml version="1.0" encoding="utf-8" ?>
@@ -89,11 +89,11 @@ where X:
* 0 => No error
* 200 => No job available, the client should wait few minutes before requesting a new job (typical value is 1hour).
* 201 => The client does not have rendering right.
* 202 => Client's session is dead. Client should do a config request before requesting a new job.
* 203 => Client's session have been disabled (usually because the client is sending broken frame). The client warms the end user and logout.
* 205 => No renderer is available for Client's hardware (pair of OS and architecture). For example Blender is not available for MacOS 32bits.
* 206 => Server is in maintenance mode, it will not give frame to do (but it will keep the session alive).
* 207 => Server is too busy to run the scheduler, it will not give frame to do (but it will keep the session alive).
* 202 => Client's session is dead. Client should send another config request before requesting a new job.
* 203 => Client's session has been disabled (usually because the client is sending broken frames). The client should alert the end user and logout.
* 205 => No renderer is available for Client's hardware (pair of OS and architecture). For example, Blender is not available for MacOS 32bits.
* 206 => Server is in maintenance mode, and is not issuing jobs (but it will keep the session alive). Try again in a few minutes.
* 207 => Server is overloaded, and is not issuing jobs (but it will keep the session alive). Try again in a few minutes.
* something else => unknown error
Answer with no error:
@@ -123,7 +123,7 @@ if fileformat != 'BMP' and fileformat != 'PNG' and fileformat != 'JPEG' and file
Url: use the request type "validate-job" from the configuration answer.
Parameter as GET or POST:
* job: Job's id
* job: Job ID
* frame: Job's frame number
* rendertime: Job's render time
* extras: Job's extra data
@@ -139,16 +139,16 @@ where X:
* 0 => No error
* 300 => Missing parameter in request.
* 301 => Client generated a broken frame (usually an too old gpu who generated black frame).
* 302 => Client sent a file who is not an image.
* 302 => File uploaded was not an image.
* 303 => Failed to upload the image to the server.
* 304 => Client's session is disabled or dead.
* something else => unknown error
=== Session heart bit ===
=== Session heartbeat ===
Url: use the request type "keepmealive" from the configuration answer.
Parameter as GET or POST:
* job: Id of the rendering job
* job: ID of the rendering job
* frame: Frame number of the rendering job
* extras: Extras data get on job request of the rendering job
* rendertime: current render time (optional)
@@ -159,13 +159,13 @@ Answer:
<keepmealive status="X" />
where X:
* 0 => No error.
* 400 => Stop this job (usually because the job has be cancelled on the server side).
* 400 => Stop this job (usually because the job has been cancelled).
=== Error send ===
Url: use the request type "error" from the configuration answer.
Parameter as GET or POST:
* job: job's id
* job: job ID
* frame: job's frame number
* extras: job's extra data
* rendertime (optional): job's frame number