[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3018] trunk/py/scripts/addons/ netrender: [#30235] Net Render Master/Slave Not Working in OSX (Blender v2. 62 32 Bit)

Martin Poirier theeth at yahoo.com
Sat Feb 25 16:38:33 CET 2012


Revision: 3018
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3018
Author:   theeth
Date:     2012-02-25 15:38:28 +0000 (Sat, 25 Feb 2012)
Log Message:
-----------
[#30235] Net Render Master/Slave Not Working in OSX (Blender v2.62 32 Bit)

Reported by Ron Proctor

netrender didn't recursively create missing directory for user specified temporary paths.

Also added environment variables and user expansion to properly support env vars and user (~ and ~user) in paths.

Modified Paths:
--------------
    trunk/py/scripts/addons/netrender/client.py
    trunk/py/scripts/addons/netrender/master.py
    trunk/py/scripts/addons/netrender/slave.py
    trunk/py/scripts/addons/netrender/utils.py

Modified: trunk/py/scripts/addons/netrender/client.py
===================================================================
--- trunk/py/scripts/addons/netrender/client.py	2012-02-24 00:15:45 UTC (rev 3017)
+++ trunk/py/scripts/addons/netrender/client.py	2012-02-25 15:38:28 UTC (rev 3018)
@@ -443,9 +443,7 @@
             result_path = os.path.join(bpy.path.abspath(netsettings.path), "output.exr")
             
             folder = os.path.split(result_path)[0]
-            
-            if not os.path.exists(folder):
-                os.mkdir(folder)
+            verifyCreateDir(folder)
 
             f = open(result_path, "wb")
 

Modified: trunk/py/scripts/addons/netrender/master.py
===================================================================
--- trunk/py/scripts/addons/netrender/master.py	2012-02-24 00:15:45 UTC (rev 3017)
+++ trunk/py/scripts/addons/netrender/master.py	2012-02-25 15:38:28 UTC (rev 3018)
@@ -979,8 +979,7 @@
         else:
             self.path = path
 
-        if not os.path.exists(self.path):
-            os.mkdir(self.path)
+        verifyCreateDir(self.path)
 
         self.slave_timeout = 5 # 5 mins: need a parameter for that
 
@@ -1105,8 +1104,7 @@
 
         # create job directory
         job.save_path = os.path.join(self.path, "job_" + job.id)
-        if not os.path.exists(job.save_path):
-            os.mkdir(job.save_path)
+        verifyCreateDir(job.save_path)
 
         job.save()
 

Modified: trunk/py/scripts/addons/netrender/slave.py
===================================================================
--- trunk/py/scripts/addons/netrender/slave.py	2012-02-24 00:15:45 UTC (rev 3017)
+++ trunk/py/scripts/addons/netrender/slave.py	2012-02-25 15:38:28 UTC (rev 3018)
@@ -144,8 +144,7 @@
         slave_id = response.getheader("slave-id")
 
         NODE_PREFIX = os.path.join(slave_path, "slave_" + slave_id)
-        if not os.path.exists(NODE_PREFIX):
-            os.mkdir(NODE_PREFIX)
+        verifyCreateDir(NODE_PREFIX)
 
         engine.update_stats("", "Network render connected to master, waiting for jobs")
 
@@ -161,8 +160,7 @@
                 engine.update_stats("", "Network render processing job from master")
 
                 JOB_PREFIX = os.path.join(NODE_PREFIX, "job_" + job.id)
-                if not os.path.exists(JOB_PREFIX):
-                    os.mkdir(JOB_PREFIX)
+                verifyCreateDir(JOB_PREFIX)
 
                 # set tempdir for fsaa temp files
                 # have to set environ var because render is done in a subprocess and that's the easiest way to propagate the setting

Modified: trunk/py/scripts/addons/netrender/utils.py
===================================================================
--- trunk/py/scripts/addons/netrender/utils.py	2012-02-24 00:15:45 UTC (rev 3017)
+++ trunk/py/scripts/addons/netrender/utils.py	2012-02-25 15:38:28 UTC (rev 3018)
@@ -269,6 +269,23 @@
     m.update(data)
     return m.hexdigest()
 
+def verifyCreateDir(directory_path):
+    original_path = directory_path
+    directory_path = os.path.expanduser(directory_path)
+    directory_path = os.path.expandvars(directory_path)
+    if not os.path.exists(directory_path):
+        try:
+            os.makedirs(directory_path)
+            print("Created directory:", directory_path)
+            if original_path != directory_path:
+                print("Expanded from the following path:", original_path)
+        except:
+            print("Couldn't create directory:", directory_path)
+            if original_path != directory_path:
+                print("Expanded from the following path:", original_path)
+            raise
+    
+
 def cacheName(ob, point_cache):
     name = point_cache.name
     if name == "":
@@ -332,9 +349,7 @@
                     suffix = os.path.join(last, suffix)
 
                 directory = os.path.join(prefixdirectory, suffix)
-                
-                if not os.path.exists(directory):
-                    os.mkdir(directory)
+                verifyCreateDir(directory)
 
                 finalpath = os.path.join(directory, name)
             else:
@@ -350,8 +365,7 @@
         directory = directory.replace("../")
         directory = os.path.join(prefixdirectory, directory)
 
-        if not os.path.exists(directory):
-            os.mkdir(directory)
+        verifyCreateDir(directory)
 
         finalpath = os.path.join(directory, name)
 



More information about the Bf-extensions-cvs mailing list