183 lines
7.4 KiB
Plaintext
183 lines
7.4 KiB
Plaintext
=== Session creation ===
|
|
|
|
Url: Server url
|
|
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 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 => No version given.
|
|
* 101 => Client is too old.
|
|
* 102 => Authentication failure.
|
|
* 103 => WebSession has expired.
|
|
* 104 => Missing parameter.
|
|
* something else => Unknown error.
|
|
|
|
Answer with no error:
|
|
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" />
|
|
<request type="request-job" path="/server/request_job.php" />
|
|
<request type="download-archive" path="/server/download.php" />
|
|
<request type="error" path="/server/error.php" />
|
|
<request type="keepmealive" path="/server/keepmealive.php" max-period="1440" />
|
|
<request type="logout" path="/account.php?mode=logout&worker=1" />
|
|
<request type="last-render-frame" path="/ajax.php?action=webclient_get_last_render_frame_ui&type=raw"/>
|
|
<request type="credits-earned" path="/ajax.php?action=credits_earned_on_session"/>
|
|
</config>
|
|
|
|
|
|
=== Session end ===
|
|
|
|
Url: use the request type "logout" from the configuration answer.
|
|
No additional parameter is required.
|
|
|
|
=== Download renderer archive ===
|
|
|
|
Url: use the request type "download-archive" from the configuration answer.
|
|
Parameter as GET or POST:
|
|
* type: "binary"
|
|
* job: ID of the job
|
|
|
|
Answer:
|
|
No error: the file
|
|
On error: an 404 http code
|
|
|
|
|
|
=== Download job archive ===
|
|
|
|
Url: use the request type "download-archive" from the configuration answer.
|
|
Parameter as GET or POST:
|
|
* type: "job"
|
|
* job: ID of the job
|
|
|
|
Answer:
|
|
No error: the file
|
|
On error: an 404 http code
|
|
|
|
|
|
=== Job request ===
|
|
|
|
Url: use the request type "request-job" from the configuration answer.
|
|
Parameter as GET or POST:
|
|
* 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 memory size (in bytes)
|
|
|
|
Answer in case of error:
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<jobrequest status="X" />
|
|
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 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:
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<jobrequest status="0">
|
|
<frames remaining="1187" />
|
|
<job id="1" use_gpu="1" archive_md5="11d046f9912267a29f99a731c7e4e3b0" path="compute_method.blend" frame="0340" synchronous_upload="1" name="human name" password="some_passowrd">
|
|
<renderer md5="ceda00890578762c6fac96f1a13f671a" commandline=".e --factory-startup --disable-autoexec -b .c -o .o -f .f -x 1" update_method="remainingtime"/>
|
|
<script>import bpy
|
|
# disable the GPU for Cycles
|
|
bpy.context.user_preferences.system.compute_device_type = "NONE"
|
|
|
|
# if it's a movie clip, switch to png
|
|
fileformat = bpy.context.scene.render.image_settings.file_format
|
|
if fileformat != 'BMP' and fileformat != 'PNG' and fileformat != 'JPEG' and fileformat != 'TARGA' and fileformat != 'TARGA_RAW' :
|
|
bpy.context.scene.render.image_settings.file_format = 'PNG'
|
|
#bpy.context.scene.render.file_extension = '.png'
|
|
bpy.context.scene.render.filepath = ''
|
|
|
|
</script>
|
|
</job>
|
|
</jobrequest>
|
|
|
|
|
|
|
|
=== Job validation ===
|
|
|
|
Url: use the request type "validate-job" from the configuration answer.
|
|
Parameter as GET or POST:
|
|
* job: Job ID
|
|
* frame: Job's frame number
|
|
* rendertime: Job's render time
|
|
* extras: Job's extra data
|
|
* file: Frame to validate as form-data post
|
|
* memoryused (optional): Max memory used for the render
|
|
* cores (optional): Number of cores used from the render
|
|
Parameter as form-urlencoded:
|
|
* file: the frame to send
|
|
|
|
Answer in case of error:
|
|
<jobvalidate status="X" />
|
|
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 => 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 heartbeat ===
|
|
|
|
Url: use the request type "keepmealive" from the configuration answer.
|
|
Parameter as GET or POST:
|
|
* 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)
|
|
* remainingtime: current remaining time to render the frame (optional)
|
|
|
|
Answer:
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<keepmealive status="X" />
|
|
where X:
|
|
* 0 => No error.
|
|
* 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 ID
|
|
* frame: job's frame number
|
|
* extras: job's extra data
|
|
* rendertime (optional): job's frame number
|
|
* memoryused (optional): max memory used for the render (in kilo bytes)
|
|
Parameter as form-urlencoded:
|
|
* file: the error log to send
|
|
|
|
|
|
Answer:
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
<error status="X" />
|
|
where X:
|
|
* 0 => No error
|
|
|