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:


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to