diff options
author | Martin Poirier <theeth@yahoo.com> | 2009-10-01 22:57:22 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2009-10-01 22:57:22 +0400 |
commit | bc942eceacb638735dc4f4f68252c4c207147a70 (patch) | |
tree | 821dadd9029b208e98c0354c5713064066b737fb /release/scripts/io/netrender/model.py | |
parent | 57cf7d2d4a5b90efedf285f7d2782ed951b021cd (diff) |
netrender: first draft for process jobs, to be able to run arbitrary commands on slaves. This could be used to bake physics on network or whatnot.
Diffstat (limited to 'release/scripts/io/netrender/model.py')
-rw-r--r-- | release/scripts/io/netrender/model.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/release/scripts/io/netrender/model.py b/release/scripts/io/netrender/model.py index be97f8d0a81..ca2a42d87f6 100644 --- a/release/scripts/io/netrender/model.py +++ b/release/scripts/io/netrender/model.py @@ -72,9 +72,18 @@ class RenderSlave: return slave +JOB_BLENDER = 1 +JOB_PROCESS = 2 + +JOB_TYPES = { + JOB_BLENDER: "Blender", + JOB_PROCESS: "Process" + } + class RenderJob: def __init__(self): self.id = "" + self.type = JOB_BLENDER self.name = "" self.files = [] self.frames = [] @@ -87,8 +96,8 @@ class RenderJob: def addFile(self, file_path, start=-1, end=-1): self.files.append((file_path, start, end)) - def addFrame(self, frame_number): - frame = RenderFrame(frame_number) + def addFrame(self, frame_number, command = ""): + frame = RenderFrame(frame_number, command) self.frames.append(frame) return frame @@ -138,6 +147,7 @@ class RenderJob: max_frame = max((f.number for f in frames)) if frames else -1 return { "id": self.id, + "type": self.type, "name": self.name, "files": [f for f in self.files if f[1] == -1 or not frames or (f[1] <= min_frame <= f[2] or f[1] <= max_frame <= f[2])], "frames": [f.serialize() for f in self.frames if not frames or f in frames], @@ -155,6 +165,7 @@ class RenderJob: job = RenderJob() job.id = data["id"] + job.type = data["type"] job.name = data["name"] job.files = data["files"] job.frames = [RenderFrame.materialize(f) for f in data["frames"]] @@ -167,11 +178,12 @@ class RenderJob: return job class RenderFrame: - def __init__(self, number = 0): + def __init__(self, number = 0, command = ""): self.number = number self.time = 0 self.status = QUEUED self.slave = None + self.command = command def statusText(self): return STATUS_TEXT[self.status] @@ -181,7 +193,8 @@ class RenderFrame: "number": self.number, "time": self.time, "status": self.status, - "slave": None if not self.slave else self.slave.serialize() + "slave": None if not self.slave else self.slave.serialize(), + "command": self.command } @staticmethod @@ -194,5 +207,6 @@ class RenderFrame: frame.time = data["time"] frame.status = data["status"] frame.slave = RenderSlave.materialize(data["slave"]) + frame.command = data["command"] return frame |