[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23054] branches/blender2.5/blender/ release/io/netrender: use pure py classes instead of a mix of rna stuff for ui.

Martin Poirier theeth at yahoo.com
Tue Sep 8 03:18:10 CEST 2009


Revision: 23054
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23054
Author:   theeth
Date:     2009-09-08 03:18:06 +0200 (Tue, 08 Sep 2009)

Log Message:
-----------
use pure py classes instead of a mix of rna stuff for ui. fix a couple of bugs

Modified Paths:
--------------
    branches/blender2.5/blender/release/io/netrender/__init__.py
    branches/blender2.5/blender/release/io/netrender/master.py
    branches/blender2.5/blender/release/io/netrender/operators.py
    branches/blender2.5/blender/release/io/netrender/slave.py
    branches/blender2.5/blender/release/io/netrender/ui.py

Modified: branches/blender2.5/blender/release/io/netrender/__init__.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/__init__.py	2009-09-08 00:23:33 UTC (rev 23053)
+++ branches/blender2.5/blender/release/io/netrender/__init__.py	2009-09-08 01:18:06 UTC (rev 23054)
@@ -7,3 +7,11 @@
 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

Modified: branches/blender2.5/blender/release/io/netrender/master.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/master.py	2009-09-08 00:23:33 UTC (rev 23053)
+++ branches/blender2.5/blender/release/io/netrender/master.py	2009-09-08 01:18:06 UTC (rev 23054)
@@ -155,11 +155,11 @@
 						
 						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 @@
 					
 					buf = self.rfile.read(length)
 					
+					# add same temp file + renames as slave
+					
 					f = open(file_path, "wb")
 					f.write(buf)
 					f.close()

Modified: branches/blender2.5/blender/release/io/netrender/operators.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/operators.py	2009-09-08 00:23:33 UTC (rev 23053)
+++ branches/blender2.5/blender/release/io/netrender/operators.py	2009-09-08 01:18:06 UTC (rev 23054)
@@ -61,18 +61,17 @@
 			
 			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 @@
 		
 		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 @@
 		
 		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 @@
 			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 @@
 		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})
 			

Modified: branches/blender2.5/blender/release/io/netrender/slave.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/slave.py	2009-09-08 00:23:33 UTC (rev 23053)
+++ branches/blender2.5/blender/release/io/netrender/slave.py	2009-09-08 01:18:06 UTC (rev 23054)
@@ -30,13 +30,14 @@
 	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 @@
 		
 		f.close()
 		
+		os.renames(temp_path, job_full_path)
+		
 	return job_full_path
 
 

Modified: branches/blender2.5/blender/release/io/netrender/ui.py
===================================================================
--- branches/blender2.5/blender/release/io/netrender/ui.py	2009-09-08 00:23:33 UTC (rev 23053)
+++ branches/blender2.5/blender/release/io/netrender/ui.py	2009-09-08 01:18:06 UTC (rev 23054)
@@ -6,6 +6,8 @@
 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 @@
 		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 @@
 		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 @@
 		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 @@
 		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 @@
 		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])

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list