[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3295] trunk/py/scripts/addons/ netrender: netrender
Martin Poirier
theeth at yahoo.com
Sun Apr 22 23:06:03 CEST 2012
Revision: 3295
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3295
Author: theeth
Date: 2012-04-22 21:06:02 +0000 (Sun, 22 Apr 2012)
Log Message:
-----------
netrender
job and frame status cleanup (move to the model module)
record transitions between states in job to be able to get (among others) the started and finished time.
Modified Paths:
--------------
trunk/py/scripts/addons/netrender/balancing.py
trunk/py/scripts/addons/netrender/master.py
trunk/py/scripts/addons/netrender/master_html.py
trunk/py/scripts/addons/netrender/model.py
trunk/py/scripts/addons/netrender/operators.py
trunk/py/scripts/addons/netrender/slave.py
trunk/py/scripts/addons/netrender/ui.py
trunk/py/scripts/addons/netrender/utils.py
Modified: trunk/py/scripts/addons/netrender/balancing.py
===================================================================
--- trunk/py/scripts/addons/netrender/balancing.py 2012-04-22 01:57:15 UTC (rev 3294)
+++ trunk/py/scripts/addons/netrender/balancing.py 2012-04-22 21:06:02 UTC (rev 3295)
@@ -167,7 +167,7 @@
return "Priority to new jobs"
def test(self, job):
- return job.countFrames(status = FRAME_DONE) < self.limit
+ return job.countFrames(status = netrender.model.FRAME_DONE) < self.limit
def serialize(self):
return { "type": "priority",
"enabled": self.enabled,
@@ -193,7 +193,7 @@
return "Priority to jobs that haven't been dispatched recently"
def test(self, job):
- return job.countFrames(status = FRAME_DISPATCHED) == 0 and (time.time() - job.last_dispatched) / 60 > self.limit
+ return job.countFrames(status = netrender.model.FRAME_DISPATCHED) == 0 and (time.time() - job.last_dispatched) / 60 > self.limit
def serialize(self):
return { "type": "priority",
@@ -214,7 +214,7 @@
return "Exclude non queued or empty jobs"
def test(self, job):
- return job.status != JOB_QUEUED or job.countFrames(status = FRAME_QUEUED) == 0
+ return job.status != netrender.model.JOB_QUEUED or job.countFrames(status = netrender.model.FRAME_QUEUED) == 0
def serialize(self):
return { "type": "exception",
Modified: trunk/py/scripts/addons/netrender/master.py
===================================================================
--- trunk/py/scripts/addons/netrender/master.py 2012-04-22 01:57:15 UTC (rev 3294)
+++ trunk/py/scripts/addons/netrender/master.py 2012-04-22 21:06:02 UTC (rev 3295)
@@ -91,7 +91,7 @@
self.chunks = 1
# Force WAITING status on creation
- self.status = JOB_WAITING
+ self.status = netrender.model.JOB_WAITING
# special server properties
self.last_update = 0
@@ -135,25 +135,25 @@
def testFinished(self):
for f in self.frames:
- if f.status == FRAME_QUEUED or f.status == FRAME_DISPATCHED:
+ if f.status == netrender.model.FRAME_QUEUED or f.status == netrender.model.FRAME_DISPATCHED:
break
else:
- self.status = JOB_FINISHED
+ self.status = netrender.model.JOB_FINISHED
self.finish_time=time.time()
def pause(self, status = None):
- if self.status not in {JOB_PAUSED, JOB_QUEUED}:
+ if self.status not in {netrender.model.JOB_PAUSED, netrender.model.JOB_QUEUED}:
return
if status is None:
- self.status = JOB_PAUSED if self.status == JOB_QUEUED else JOB_QUEUED
+ self.status = netrender.model.JOB_PAUSED if self.status == netrender.model.JOB_QUEUED else netrender.model.JOB_QUEUED
elif status:
- self.status = JOB_QUEUED
+ self.status = netrender.model.JOB_QUEUED
else:
- self.status = JOB_PAUSED
+ self.status = netrender.model.JOB_PAUSED
def start(self):
- self.status = JOB_QUEUED
+ self.status = netrender.model.JOB_QUEUED
def addLog(self, frames):
@@ -176,12 +176,12 @@
f.reset(all)
if all:
- self.status = JOB_QUEUED
+ self.status = netrender.model.JOB_QUEUED
def getFrames(self):
frames = []
for f in self.frames:
- if f.status == FRAME_QUEUED:
+ if f.status == netrender.model.FRAME_QUEUED:
self.last_dispatched = time.time()
frames.append(f)
if len(frames) >= self.chunks:
@@ -198,7 +198,7 @@
self.number = frame
self.slave = None
self.time = 0
- self.status = FRAME_QUEUED
+ self.status = netrender.model.FRAME_QUEUED
self.command = command
self.log_path = None
@@ -210,11 +210,11 @@
return "%06d.exr" % self.number
def reset(self, all):
- if all or self.status == FRAME_ERROR:
+ if all or self.status == netrender.model.FRAME_ERROR:
self.log_path = None
self.slave = None
self.time = 0
- self.status = FRAME_QUEUED
+ self.status = netrender.model.FRAME_QUEUED
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -311,9 +311,9 @@
frame = job[frame_number]
if frame:
- if frame.status in (FRAME_QUEUED, FRAME_DISPATCHED):
+ if frame.status in (netrender.model.FRAME_QUEUED, netrender.model.FRAME_DISPATCHED):
self.send_head(http.client.ACCEPTED)
- elif frame.status == FRAME_DONE:
+ elif frame.status == netrender.model.FRAME_DONE:
self.server.stats("", "Sending result to client")
filename = job.getResultPath(frame.getRenderFilename())
@@ -322,7 +322,7 @@
self.send_head(content = "image/x-exr")
shutil.copyfileobj(f, self.wfile)
f.close()
- elif frame.status == FRAME_ERROR:
+ elif frame.status == netrender.model.FRAME_ERROR:
self.send_head(http.client.PARTIAL_CONTENT)
else:
# no such frame
@@ -348,7 +348,7 @@
zip_filepath = job.getResultPath("results.zip")
with zipfile.ZipFile(zip_filepath, "w") as zfile:
for frame in job.frames:
- if frame.status == FRAME_DONE:
+ if frame.status == netrender.model.FRAME_DONE:
for filename in frame.results:
filepath = job.getResultPath(filename)
@@ -379,9 +379,9 @@
frame = job[frame_number]
if frame:
- if frame.status in (FRAME_QUEUED, FRAME_DISPATCHED):
+ if frame.status in (netrender.model.FRAME_QUEUED, netrender.model.FRAME_DISPATCHED):
self.send_head(http.client.ACCEPTED)
- elif frame.status == FRAME_DONE:
+ elif frame.status == netrender.model.FRAME_DONE:
filename = job.getResultPath(frame.getRenderFilename())
thumbname = thumbnail.generate(filename)
@@ -394,7 +394,7 @@
else: # thumbnail couldn't be generated
self.send_head(http.client.PARTIAL_CONTENT)
return
- elif frame.status == FRAME_ERROR:
+ elif frame.status == netrender.model.FRAME_ERROR:
self.send_head(http.client.PARTIAL_CONTENT)
else:
# no such frame
@@ -419,7 +419,7 @@
frame = job[frame_number]
if frame:
- if not frame.log_path or frame.status in (FRAME_QUEUED, FRAME_DISPATCHED):
+ if not frame.log_path or frame.status in (netrender.model.FRAME_QUEUED, netrender.model.FRAME_DISPATCHED):
self.send_head(http.client.PROCESSING)
else:
self.server.stats("", "Sending log to client")
@@ -488,7 +488,7 @@
if job and frames:
for f in frames:
print("dispatch", f.number)
- f.status = FRAME_DISPATCHED
+ f.status = netrender.model.FRAME_DISPATCHED
f.slave = slave
slave.job = job
@@ -838,11 +838,11 @@
self.send_head(content = None)
if job.hasRenderResult():
- if job_result == FRAME_DONE:
+ if job_result == netrender.model.FRAME_DONE:
frame.addDefaultRenderResult()
self.write_file(job.getResultPath(frame.getRenderFilename()))
- elif job_result == FRAME_ERROR:
+ elif job_result == netrender.model.FRAME_ERROR:
# blacklist slave on this job on error
# slaves might already be in blacklist if errors on the whole chunk
if not slave.id in job.blacklist:
@@ -885,7 +885,7 @@
self.send_head(content = None)
- if job_result == FRAME_DONE:
+ if job_result == netrender.model.FRAME_DONE:
result_filename = self.headers['result-filename']
frame.results.append(result_filename)
@@ -1045,7 +1045,7 @@
if slave.job:
for f in slave.job_frames:
- slave.job[f].status = FRAME_ERROR
+ slave.job[f].status = netrender.model.FRAME_ERROR
for slave in removed:
self.removeSlave(slave)
@@ -1075,7 +1075,7 @@
def getJobs(self):
return self.jobs
- def countJobs(self, status = JOB_QUEUED):
+ def countJobs(self, status = netrender.model.JOB_QUEUED):
total = 0
for j in self.jobs:
if j.status == status:
Modified: trunk/py/scripts/addons/netrender/master_html.py
===================================================================
--- trunk/py/scripts/addons/netrender/master_html.py 2012-04-22 01:57:15 UTC (rev 3294)
+++ trunk/py/scripts/addons/netrender/master_html.py 2012-04-22 21:06:02 UTC (rev 3295)
@@ -134,16 +134,16 @@
serializedJob = job.serialize(withFiles=includeFiles, withFrames=includeFrames)
serializedJob["p_rule"] = handler.server.balancer.applyPriorities(job)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list