[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28453] trunk/blender/release/scripts/io/ netrender: NetRender tweaks by Brecht

Martin Poirier theeth at yahoo.com
Tue Apr 27 05:14:41 CEST 2010


Revision: 28453
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28453
Author:   theeth
Date:     2010-04-27 05:14:40 +0200 (Tue, 27 Apr 2010)

Log Message:
-----------
NetRender tweaks by Brecht

* Client connection is made from panel poll functions even if
netrender is disabled
* Network render slave should print when it has connected to server,
now it says "node initiation", I initially thought this meant it was
not connected yet.
* Web interface should auto-refresh, I got confused if job and slaves
were actually found or not.

Modified Paths:
--------------
    trunk/blender/release/scripts/io/netrender/master.py
    trunk/blender/release/scripts/io/netrender/master_html.py
    trunk/blender/release/scripts/io/netrender/slave.py
    trunk/blender/release/scripts/io/netrender/ui.py

Modified: trunk/blender/release/scripts/io/netrender/master.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/master.py	2010-04-27 02:30:41 UTC (rev 28452)
+++ trunk/blender/release/scripts/io/netrender/master.py	2010-04-27 03:14:40 UTC (rev 28453)
@@ -190,6 +190,11 @@
 edit_pattern = re.compile("/edit_([a-zA-Z0-9]+)")
 
 class RenderHandler(http.server.BaseHTTPRequestHandler):
+    def log_message(self, format, *args):
+        # override because the original calls self.address_string(), which
+        # is extremely slow due to some timeout..
+        sys.stderr.write("[%s] %s\n" % (self.log_date_time_string(), format%args))
+
     def send_head(self, code = http.client.OK, headers = {}, content = "application/octet-stream"):
         self.send_response(code)
         self.send_header("Content-type", content)
@@ -1010,7 +1015,7 @@
             s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
             s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
 
-        start_time = time.time()
+        start_time = time.time() - 2
 
         while not test_break():
             try:
@@ -1018,7 +1023,7 @@
             except select.error:
                 pass
 
-            if time.time() - start_time >= 10: # need constant here
+            if time.time() - start_time >= 2: # need constant here
                 httpd.timeoutSlaves()
 
                 httpd.updateUsage()
@@ -1031,3 +1036,4 @@
         httpd.server_close()
         if clear:
             clearMaster(httpd.path)
+

Modified: trunk/blender/release/scripts/io/netrender/master_html.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/master_html.py	2010-04-27 02:30:41 UTC (rev 28452)
+++ trunk/blender/release/scripts/io/netrender/master_html.py	2010-04-27 03:14:40 UTC (rev 28453)
@@ -29,6 +29,7 @@
 
     def head(title):
         output("<html><head>")
+        output("<meta http-equiv='refresh' content=5>")
         output("<script src='/html/netrender.js' type='text/javascript'></script>")
 #		output("<script src='/html/json2.js' type='text/javascript'></script>")
         output("<title>")

Modified: trunk/blender/release/scripts/io/netrender/slave.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/slave.py	2010-04-27 02:30:41 UTC (rev 28452)
+++ trunk/blender/release/scripts/io/netrender/slave.py	2010-04-27 03:14:40 UTC (rev 28453)
@@ -105,6 +105,8 @@
         if not os.path.exists(NODE_PREFIX):
             os.mkdir(NODE_PREFIX)
 
+        engine.update_stats("", "Network render connected to master, waiting for jobs")
+
         while not engine.test_break():
             conn.request("GET", "/job", headers={"slave-id":slave_id})
             response = conn.getresponse()
@@ -113,6 +115,7 @@
                 timeout = 1 # reset timeout on new job
 
                 job = netrender.model.RenderJob.materialize(eval(str(response.read(), encoding='utf8')))
+                engine.update_stats("", "Network render processing job from master")
 
                 JOB_PREFIX = NODE_PREFIX + "job_" + job.id + os.sep
                 if not os.path.exists(JOB_PREFIX):
@@ -245,6 +248,8 @@
                         conn.request("PUT", "/render", headers=headers)
                         if conn.getresponse().status == http.client.NO_CONTENT:
                             continue
+
+                engine.update_stats("", "Network render connected to master, waiting for jobs")
             else:
                 if timeout < MAX_TIMEOUT:
                     timeout += INCREMENT_TIMEOUT

Modified: trunk/blender/release/scripts/io/netrender/ui.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/ui.py	2010-04-27 02:30:41 UTC (rev 28452)
+++ trunk/blender/release/scripts/io/netrender/ui.py	2010-04-27 03:14:40 UTC (rev 28453)
@@ -213,9 +213,10 @@
     def poll(self, context):
         scene = context.scene
         netsettings = scene.network_render
+        if netsettings.mode != "RENDER_CLIENT":
+            return False
         verify_address(netsettings)
         return (super().poll(context)
-                and netsettings.mode == "RENDER_CLIENT"
                 and netsettings.server_address != "[default]")
 
     def draw(self, context):
@@ -251,9 +252,10 @@
     def poll(self, context):
         scene = context.scene
         netsettings = scene.network_render
+        if netsettings.mode != "RENDER_CLIENT":
+            return False
         verify_address(netsettings)
         return (super().poll(context)
-                and netsettings.mode == "RENDER_CLIENT"
                 and netsettings.server_address != "[default]")
 
     def draw(self, context):
@@ -288,9 +290,10 @@
     def poll(self, context):
         scene = context.scene
         netsettings = scene.network_render
+        if netsettings.mode != "RENDER_CLIENT":
+            return False
         verify_address(netsettings)
         return (super().poll(context)
-                and netsettings.mode == "RENDER_CLIENT"
                 and netsettings.server_address != "[default]")
 
     def draw(self, context):





More information about the Bf-blender-cvs mailing list