Revision: 23094
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23094
Author: theeth
Date: 2009-09-09 22:56:49 +0200 (Wed, 09 Sep 2009)
Log Message:
-----------
support for external images, blacklisting slaves on errors and proper job
termination on cancel
Modified Paths:
--------------
branches/blender2.5/blender/release/io/netrender/client.py
branches/blender2.5/blender/release/io/netrender/master.py
branches/blender2.5/blender/release/io/netrender/slave.py
Modified: branches/blender2.5/blender/release/io/netrender/client.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/client.py 2009-09-09
19:59:52 UTC (rev 23093)
+++ branches/blender2.5/blender/release/io/netrender/client.py 2009-09-09
20:56:49 UTC (rev 23094)
@@ -26,6 +26,9 @@
if job_name == "[default]":
job_name = name
+ ###########################
+ # LIBRARIES
+ ###########################
for lib in bpy.data.libraries:
lib_path = lib.filename
@@ -34,11 +37,13 @@
job.addFile(lib_path)
+ ###########################
+ # POINT CACHES
+ ###########################
+
root, ext = os.path.splitext(name)
cache_path = path + os.sep + "blendcache_" + root + os.sep # need an
API call for that
- print("cache:", cache_path)
-
if os.path.exists(cache_path):
caches = {}
pattern = re.compile("([a-zA-Z0-9]+)_([0-9]+)_[0-9]+\.bphys")
@@ -80,8 +85,15 @@
previous_frame =
previous_item[0]
job.addFile(cache_path +
current_file, previous_frame + 1, next_frame - 1)
- print(job.files)
+ ###########################
+ # IMAGES
+ ###########################
+ for image in bpy.data.images:
+ if image.source == "FILE" and not image.packed_file:
+ job.addFile(image.filename)
+ # print(job.files)
+
job.name = job_name
for slave in scene.network_render.slaves_blacklist:
Modified: branches/blender2.5/blender/release/io/netrender/master.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/master.py 2009-09-09
19:59:52 UTC (rev 23093)
+++ branches/blender2.5/blender/release/io/netrender/master.py 2009-09-09
20:56:49 UTC (rev 23094)
@@ -477,33 +477,43 @@
print("writing result file")
self.server.stats("", "Receiving render result")
- job_id = self.headers['job-id']
+ slave_id = self.headers['slave-id']
- job = self.server.getJobByID(job_id)
+ slave = self.server.updateSlave(slave_id)
- if job:
- job_frame = int(self.headers['job-frame'])
- job_result = int(self.headers['job-result'])
- job_time = float(self.headers['job-time'])
+ if slave: # only if slave id is valid
+ job_id = self.headers['job-id']
- if job_result == DONE:
- length =
int(self.headers['content-length'])
- buf = self.rfile.read(length)
- f = open(job.save_path + "%04d" %
job_frame + ".exr", 'wb')
- f.write(buf)
- f.close()
+ job = self.server.getJobByID(job_id)
+
+ if job:
+ job_frame =
int(self.headers['job-frame'])
+ job_result =
int(self.headers['job-result'])
+ job_time =
float(self.headers['job-time'])
- del buf
+ frame = job[job_frame]
- job = self.server.getJobByID(job_id)
- frame = job[job_frame]
- frame.status = job_result
- frame.time = job_time
-
-
self.server.updateSlave(self.headers['slave-id'])
-
- self.send_head()
- else: # job not found
+ if job_result == DONE:
+ length =
int(self.headers['content-length'])
+ buf = self.rfile.read(length)
+ f = open(job.save_path + "%04d"
% job_frame + ".exr", 'wb')
+ f.write(buf)
+ f.close()
+
+ del buf
+ elif job_result == ERROR:
+ # blacklist slave on this job
on error
+ job.blacklist.append(slave.id)
+
+ frame.status = job_result
+ frame.time = job_time
+
+
self.server.updateSlave(self.headers['slave-id'])
+
+ self.send_head()
+ else: # job not found
+ self.send_head(http.client.NO_CONTENT)
+ else: # invalid slave id
self.send_head(http.client.NO_CONTENT)
#
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
elif self.path == "log":
Modified: branches/blender2.5/blender/release/io/netrender/slave.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/slave.py 2009-09-09
19:59:52 UTC (rev 23093)
+++ branches/blender2.5/blender/release/io/netrender/slave.py 2009-09-09
20:56:49 UTC (rev 23094)
@@ -119,6 +119,9 @@
run_t = current_t
if cancelled:
+ # kill process if needed
+ if process.poll() == None:
+ process.terminate()
continue # to next frame
total_t = time.time() - start_t
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs