diff options
author | Martin Poirier <theeth@yahoo.com> | 2009-09-08 05:18:06 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2009-09-08 05:18:06 +0400 |
commit | 00838f05d23cbd2dfefeab10d9d5345bbad25ea6 (patch) | |
tree | 506ccca80c0014abd2710c00305d1db50092a53b | |
parent | 8b6b31b41fc6ed07036ea30153131e6824fc7c7e (diff) |
use pure py classes instead of a mix of rna stuff for ui. fix a couple of bugs
-rw-r--r-- | release/io/netrender/__init__.py | 8 | ||||
-rw-r--r-- | release/io/netrender/master.py | 6 | ||||
-rw-r--r-- | release/io/netrender/operators.py | 53 | ||||
-rw-r--r-- | release/io/netrender/slave.py | 5 | ||||
-rw-r--r-- | release/io/netrender/ui.py | 96 |
5 files changed, 72 insertions, 96 deletions
diff --git a/release/io/netrender/__init__.py b/release/io/netrender/__init__.py index e0de2726a55..1eb91abb938 100644 --- a/release/io/netrender/__init__.py +++ b/release/io/netrender/__init__.py @@ -7,3 +7,11 @@ import slave import master import utils import ui + +# store temp data in bpy module + +import bpy + +bpy.data.netrender_jobs = [] +bpy.data.netrender_slaves = [] +bpy.data.netrender_blacklist = []
\ No newline at end of file diff --git a/release/io/netrender/master.py b/release/io/netrender/master.py index 6f360a4e7a9..4afda9ac67b 100644 --- a/release/io/netrender/master.py +++ b/release/io/netrender/master.py @@ -155,11 +155,11 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): if not frame: # no such frame - self.send_heat(http.client.NOT_FOUND) + self.send_heat(http.client.NO_CONTENT) return else: # no such job id - self.send_head(http.client.NOT_FOUND) + self.send_head(http.client.NO_CONTENT) return self.send_head() @@ -453,6 +453,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): buf = self.rfile.read(length) + # add same temp file + renames as slave + f = open(file_path, "wb") f.write(buf) f.close() diff --git a/release/io/netrender/operators.py b/release/io/netrender/operators.py index a1208aa1b46..30631b3b23d 100644 --- a/release/io/netrender/operators.py +++ b/release/io/netrender/operators.py @@ -61,18 +61,17 @@ class RENDER_OT_netclientstatus(bpy.types.Operator): while(len(netsettings.jobs) > 0): netsettings.jobs.remove(0) - + + bpy.data.netrender_jobs = [] + for j in jobs: + bpy.data.netrender_jobs.append(j) netsettings.jobs.add() job = netsettings.jobs[-1] - job_results = j.framesStatus() + j.results = j.framesStatus() # cache frame status - job.id = j.id job.name = j.name - job.length = len(j) - job.done = job_results[DONE] - job.error = job_results[ERROR] return ('FINISHED',) @@ -97,15 +96,13 @@ class RENDER_OT_netclientblacklistslave(bpy.types.Operator): if netsettings.active_slave_index >= 0: - slave = netrender.slaves[netsettings.active_slave_index] + # deal with data + slave = bpy.data.netrender_slaves.pop(netsettings.active_slave_index) + bpy.data.netrender_blacklist.append(slave) + # deal with rna netsettings.slaves_blacklist.add() - - netsettings.slaves_blacklist[-1].id = slave.id netsettings.slaves_blacklist[-1].name = slave.name - netsettings.slaves_blacklist[-1].address = slave.address - netsettings.slaves_blacklist[-1].last_seen = slave.last_seen - netsettings.slaves_blacklist[-1].stats = slave.stats netsettings.slaves.remove(netsettings.active_slave_index) netsettings.active_slave_index = -1 @@ -133,15 +130,13 @@ class RENDER_OT_netclientwhitelistslave(bpy.types.Operator): if netsettings.active_blacklisted_slave_index >= 0: - slave = netsettings.slaves_blacklist[netsettings.active_blacklisted_slave_index] + # deal with data + slave = bpy.data.netrender_blacklist.pop(netsettings.active_blacklisted_slave_index) + bpy.data.netrender_slaves.append(slave) + # deal with rna netsettings.slaves.add() - - netsettings.slaves[-1].id = slave.id netsettings.slaves[-1].name = slave.name - netsettings.slaves[-1].address = slave.address - netsettings.slaves[-1].last_seen = slave.last_seen - netsettings.slaves[-1].stats = slave.stats netsettings.slaves_blacklist.remove(netsettings.active_blacklisted_slave_index) netsettings.active_blacklisted_slave_index = -1 @@ -180,19 +175,21 @@ class RENDER_OT_netclientslaves(bpy.types.Operator): while(len(netsettings.slaves) > 0): netsettings.slaves.remove(0) + bpy.data.netrender_slaves = [] + for s in slaves: - for slave in netsettings.slaves_blacklist: + for i in range(len(bpy.data.netrender_blacklist)): + slave = bpy.data.netrender_blacklist[i] if slave.id == s.id: + bpy.data.netrender_blacklist[i] = s + netsettings.slaves_blacklist[i].name = s.name break + else: + bpy.data.netrender_slaves.append(s) - netsettings.slaves.add() - slave = netsettings.slaves[-1] - - slave.id = s.id - slave.name = s.name - slave.stats = s.stats - slave.address = s.address[0] - slave.last_seen = time.ctime(s.last_seen) + netsettings.slaves.add() + slave = netsettings.slaves[-1] + slave.name = s.name return ('FINISHED',) @@ -218,7 +215,7 @@ class RENDER_OT_netclientcancel(bpy.types.Operator): conn = clientConnection(context.scene) if conn: - job = netsettings.jobs[netsettings.active_job_index] + job = bpy.data.netrender_jobs[netsettings.active_job_index] conn.request("POST", "cancel", headers={"job-id":job.id}) diff --git a/release/io/netrender/slave.py b/release/io/netrender/slave.py index 3d7153a0c54..8cbfd4ea11f 100644 --- a/release/io/netrender/slave.py +++ b/release/io/netrender/slave.py @@ -30,13 +30,14 @@ def testFile(conn, JOB_PREFIX, file_path, main_path = None): job_full_path = prefixPath(JOB_PREFIX, file_path, main_path) if not os.path.exists(job_full_path): + temp_path = JOB_PREFIX + "slave.temp.blend" conn.request("GET", "file", headers={"job-id": job.id, "slave-id":slave_id, "job-file":file_path}) response = conn.getresponse() if response.status != http.client.OK: return None # file for job not returned by server, need to return an error code to server - f = open(job_full_path, "wb") + f = open(temp_path, "wb") buf = response.read(1024) while buf: @@ -45,6 +46,8 @@ def testFile(conn, JOB_PREFIX, file_path, main_path = None): f.close() + os.renames(temp_path, job_full_path) + return job_full_path diff --git a/release/io/netrender/ui.py b/release/io/netrender/ui.py index f8179fedbda..8faabe6ff2d 100644 --- a/release/io/netrender/ui.py +++ b/release/io/netrender/ui.py @@ -6,6 +6,8 @@ import subprocess, shutil, time, hashlib import netrender.slave as slave import netrender.master as master +from netrender.utils import * + VERSION = b"0.3" PATH_PREFIX = "/tmp/" @@ -69,10 +71,10 @@ class SCENE_PT_network_slaves(RenderButtonsPanel): layout = self.layout scene = context.scene - netrender = scene.network_render + netsettings = scene.network_render row = layout.row() - row.template_list(netrender, "slaves", netrender, "active_slave_index", rows=2) + row.template_list(netsettings, "slaves", netsettings, "active_slave_index", rows=2) col = row.column() @@ -80,14 +82,18 @@ class SCENE_PT_network_slaves(RenderButtonsPanel): subcol.itemO("render.netclientslaves", icon="ICON_FILE_REFRESH", text="") subcol.itemO("render.netclientblacklistslave", icon="ICON_ZOOMOUT", text="") - if netrender.active_slave_index >= 0 and len(netrender.slaves) > 0: + if len(bpy.data.netrender_slaves) == 0 and len(netsettings.slaves) > 0: + while(len(netsettings.slaves) > 0): + netsettings.slaves.remove(0) + + if netsettings.active_slave_index >= 0 and len(netsettings.slaves) > 0: layout.itemS() - slave = netrender.slaves[netrender.active_slave_index] + slave = bpy.data.netrender_slaves[netsettings.active_slave_index] layout.itemL(text="Name: " + slave.name) - layout.itemL(text="Address: " + slave.address) - layout.itemL(text="Seen: " + slave.last_seen) + layout.itemL(text="Address: " + slave.address[0]) + layout.itemL(text="Seen: " + time.ctime(slave.last_seen)) layout.itemL(text="Stats: " + slave.stats) bpy.types.register(SCENE_PT_network_slaves) @@ -104,26 +110,29 @@ class SCENE_PT_network_slaves_blacklist(RenderButtonsPanel): layout = self.layout scene = context.scene - netrender = scene.network_render + netsettings = scene.network_render row = layout.row() - row.template_list(netrender, "slaves_blacklist", netrender, "active_blacklisted_slave_index", rows=2) + row.template_list(netsettings, "slaves_blacklist", netsettings, "active_blacklisted_slave_index", rows=2) col = row.column() subcol = col.column(align=True) subcol.itemO("render.netclientwhitelistslave", icon="ICON_ZOOMOUT", text="") + if len(bpy.data.netrender_blacklist) == 0 and len(netsettings.slaves_blacklist) > 0: + while(len(netsettings.slaves_blacklist) > 0): + netsettings.slaves_blacklist.remove(0) - if netrender.active_blacklisted_slave_index >= 0 and len(netrender.slaves_blacklist) > 0: + if netsettings.active_blacklisted_slave_index >= 0 and len(netsettings.slaves_blacklist) > 0: layout.itemS() - slave = netrender.slaves_blacklist[netrender.active_blacklisted_slave_index] + slave = bpy.data.netrender_blacklist[netsettings.active_blacklisted_slave_index] layout.itemL(text="Name: " + slave.name) - layout.itemL(text="Address: " + slave.address) + layout.itemL(text="Address: " + slave.address[0]) layout.itemL(text="Seen: " + slave.last_seen) - layout.itemL(text="Stats: " + slave.stats) + layout.itemL(text="Stats: " + time.ctime(slave.stats)) bpy.types.register(SCENE_PT_network_slaves_blacklist) @@ -139,10 +148,10 @@ class SCENE_PT_network_jobs(RenderButtonsPanel): layout = self.layout scene = context.scene - netrender = scene.network_render + netsettings = scene.network_render row = layout.row() - row.template_list(netrender, "jobs", netrender, "active_job_index", rows=2) + row.template_list(netsettings, "jobs", netsettings, "active_job_index", rows=2) col = row.column() @@ -150,16 +159,19 @@ class SCENE_PT_network_jobs(RenderButtonsPanel): subcol.itemO("render.netclientstatus", icon="ICON_FILE_REFRESH", text="") subcol.itemO("render.netclientcancel", icon="ICON_ZOOMOUT", text="") + if len(bpy.data.netrender_jobs) == 0 and len(netsettings.jobs) > 0: + while(len(netsettings.jobs) > 0): + netsettings.jobs.remove(0) - if netrender.active_job_index >= 0 and len(netrender.jobs) > 0: + if netsettings.active_job_index >= 0 and len(netsettings.jobs) > 0: layout.itemS() - job = netrender.jobs[netrender.active_job_index] + job = bpy.data.netrender_jobs[netsettings.active_job_index] layout.itemL(text="Name: %s" % job.name) - layout.itemL(text="Length: %04i" % job.length) - layout.itemL(text="Done: %04i" % job.done) - layout.itemL(text="Error: %04i" % job.error) + layout.itemL(text="Length: %04i" % len(job)) + layout.itemL(text="Done: %04i" % job.results[DONE]) + layout.itemL(text="Error: %04i" % job.results[ERROR]) bpy.types.register(SCENE_PT_network_jobs) @@ -264,54 +276,8 @@ NetRenderSlave.StringProperty( attr="name", maxlen = 64, default = "") -NetRenderSlave.StringProperty( attr="address", - name="Address of the slave", - description="", - maxlen = 64, - default = "") - -NetRenderSlave.StringProperty( attr="last_seen", - name="Last time slave was seen by server", - description="", - maxlen = 64, - default = "") - -NetRenderSlave.StringProperty( attr="stats", - name="Hardware stats of the slave", - description="", - maxlen = 128, - default = "") - -NetRenderJob.StringProperty( attr="id", - name="ID of the job", - description="", - maxlen = 64, - default = "") - - NetRenderJob.StringProperty( attr="name", name="Name of the job", description="", maxlen = 128, default = "") - -NetRenderJob.IntProperty( attr="length", - name="Number of frames", - description="", - default = 0, - min= 0, - max=65535) - -NetRenderJob.IntProperty( attr="done", - name="Number of frames rendered", - description="", - default = 0, - min= 0, - max=65535) - -NetRenderJob.IntProperty( attr="error", - name="Number of frames in error", - description="", - default = 0, - min= 0, - max=65535) |