use pure py classes instead of a mix of rna stuff for ui. fix a couple of bugs
This commit is contained in:
@@ -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 = []
|
||||
@@ -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()
|
||||
|
||||
@@ -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})
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user