[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24651] trunk/blender/release/scripts/io/ netrender: Code cleanup in netrender
Martin Poirier
theeth at yahoo.com
Wed Nov 18 18:07:43 CET 2009
Revision: 24651
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24651
Author: theeth
Date: 2009-11-18 18:07:42 +0100 (Wed, 18 Nov 2009)
Log Message:
-----------
Code cleanup in netrender
Modified Paths:
--------------
trunk/blender/release/scripts/io/netrender/client.py
trunk/blender/release/scripts/io/netrender/operators.py
trunk/blender/release/scripts/io/netrender/slave.py
trunk/blender/release/scripts/io/netrender/utils.py
Modified: trunk/blender/release/scripts/io/netrender/client.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/client.py 2009-11-18 16:54:33 UTC (rev 24650)
+++ trunk/blender/release/scripts/io/netrender/client.py 2009-11-18 17:07:42 UTC (rev 24651)
@@ -200,14 +200,14 @@
def render_slave(self, scene):
- slave.render_slave(self, scene)
+ slave.render_slave(self, scene.network_render)
def render_client(self, scene):
netsettings = scene.network_render
self.update_stats("", "Network render client initiation")
- conn = clientConnection(scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
# Sending file
Modified: trunk/blender/release/scripts/io/netrender/operators.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/operators.py 2009-11-18 16:54:33 UTC (rev 24650)
+++ trunk/blender/release/scripts/io/netrender/operators.py 2009-11-18 17:07:42 UTC (rev 24651)
@@ -36,8 +36,9 @@
def execute(self, context):
scene = context.scene
+ netsettings = scene.network_render
- conn = clientConnection(scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
# Sending file
@@ -62,8 +63,9 @@
def execute(self, context):
scene = context.scene
+ netsettings = scene.network_render
- conn = clientConnection(scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
# Sending file
@@ -86,7 +88,7 @@
def execute(self, context):
netsettings = context.scene.network_render
- conn = clientConnection(context.scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
conn.request("GET", "/status")
@@ -187,7 +189,7 @@
def execute(self, context):
netsettings = context.scene.network_render
- conn = clientConnection(context.scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
conn.request("GET", "/slaves")
@@ -233,7 +235,7 @@
def execute(self, context):
netsettings = context.scene.network_render
- conn = clientConnection(context.scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
job = bpy.netrender_jobs[netsettings.active_job_index]
@@ -261,7 +263,7 @@
def execute(self, context):
netsettings = context.scene.network_render
- conn = clientConnection(context.scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
conn.request("POST", "/clear")
@@ -291,7 +293,7 @@
netsettings = context.scene.network_render
rd = context.scene.render_data
- conn = clientConnection(context.scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
job = bpy.netrender_jobs[netsettings.active_job_index]
@@ -332,26 +334,16 @@
return True
def execute(self, context):
- netsettings = context.scene.network_render
+ address, port = clientScan()
+
+ if address:
+ scene = context.scene
+ netsettings = scene.network_render
+ netsettings.server_address = address
+ netsettings.server_port = port
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
- s.settimeout(30)
-
- s.bind(('', 8000))
-
- buf, address = s.recvfrom(64)
-
- print("received:", buf)
-
- netsettings.server_address = address[0]
- netsettings.server_port = int(str(buf, encoding='utf8'))
- except socket.timeout:
- print("no server info")
-
return ('FINISHED',)
-
+
def invoke(self, context, event):
return self.execute(context)
@@ -369,7 +361,7 @@
# open connection to make sure server exists
- conn = clientConnection(context.scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
conn.close()
Modified: trunk/blender/release/scripts/io/netrender/slave.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/slave.py 2009-11-18 16:54:33 UTC (rev 24650)
+++ trunk/blender/release/scripts/io/netrender/slave.py 2009-11-18 17:07:42 UTC (rev 24651)
@@ -23,6 +23,8 @@
from netrender.utils import *
import netrender.model
+BLENDER_PATH = sys.argv[0]
+
CANCEL_POLL_SPEED = 2
MAX_TIMEOUT = 10
INCREMENT_TIMEOUT = 1
@@ -85,13 +87,12 @@
return job_full_path
-def render_slave(engine, scene):
- netsettings = scene.network_render
+def render_slave(engine, netsettings):
timeout = 1
engine.update_stats("", "Network render node initiation")
- conn = clientConnection(scene)
+ conn = clientConnection(netsettings.server_address, netsettings.server_port)
if conn:
conn.request("POST", "/slave", repr(slave_Info().serialize()))
@@ -150,7 +151,7 @@
frame_args += ["-f", str(frame.number)]
val = SetErrorMode()
- process = subprocess.Popen([sys.argv[0], "-b", job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ process = subprocess.Popen([BLENDER_PATH, "-b", job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
RestoreErrorMode(val)
elif job.type == netrender.model.JOB_PROCESS:
command = job.frames[0].command
@@ -240,3 +241,6 @@
return
conn.close()
+
+if __name__ == "__main__":
+ pass
\ No newline at end of file
Modified: trunk/blender/release/scripts/io/netrender/utils.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/utils.py 2009-11-18 16:54:33 UTC (rev 24650)
+++ trunk/blender/release/scripts/io/netrender/utils.py 2009-11-18 17:07:42 UTC (rev 24651)
@@ -16,14 +16,18 @@
#
# ##### END GPL LICENSE BLOCK #####
-import bpy
import sys, os
import re
-import http, http.client, http.server, urllib
+import http, http.client, http.server, urllib, socket
import subprocess, shutil, time, hashlib
import netrender.model
+try:
+ import bpy
+except:
+ bpy = None
+
VERSION = b"0.5"
# Jobs status
@@ -39,28 +43,48 @@
ERROR = 3
STATUS_TEXT = {
- QUEUED: "Queued",
- DISPATCHED: "Dispatched",
- DONE: "Done",
- ERROR: "Error"
- }
+ QUEUED: "Queued",
+ DISPATCHED: "Dispatched",
+ DONE: "Done",
+ ERROR: "Error"
+ }
def rnaType(rna_type):
- bpy.types.register(rna_type)
+ if bpy: bpy.types.register(rna_type)
return rna_type
def rnaOperator(rna_op):
- bpy.ops.add(rna_op)
+ if bpy: bpy.ops.add(rna_op)
return rna_op
-def clientConnection(scene):
- netsettings = scene.network_render
+def clientScan():
+ try:
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
+ s.settimeout(30)
+
+ s.bind(('', 8000))
- if netsettings.server_address == "[default]":
- bpy.ops.render.netclientscan()
+ buf, address = s.recvfrom(64)
- conn = http.client.HTTPConnection(netsettings.server_address, netsettings.server_port)
+ print("received:", buf)
+ address = address[0]
+ port = int(str(buf, encoding='utf8'))
+ return (address, port)
+ except socket.timeout:
+ print("no server info")
+ return ("", 8000) # return default values
+
+def clientConnection(address, port):
+ if address == "[default]":
+ if bpy:
+ bpy.ops.render.netclientscan()
+ else:
+ address, port = clientScan()
+
+ conn = http.client.HTTPConnection(address, port)
+
if clientVerifyVersion(conn):
return conn
else:
More information about the Bf-blender-cvs
mailing list