Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2012-02-25 19:38:28 +0400
committerMartin Poirier <theeth@yahoo.com>2012-02-25 19:38:28 +0400
commit6b9f9771a51450e48d47a816833d100b6ec178bd (patch)
treefc32d6ea91f5e30907014ed6949bb3838e39d764 /netrender
parentbd5ff24747c72373e6ea694040f9fd2a264d02ea (diff)
[#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.
Diffstat (limited to 'netrender')
-rw-r--r--netrender/client.py4
-rw-r--r--netrender/master.py6
-rw-r--r--netrender/slave.py6
-rw-r--r--netrender/utils.py24
4 files changed, 24 insertions, 16 deletions
diff --git a/netrender/client.py b/netrender/client.py
index 069d5bdb..f246dcd8 100644
--- a/netrender/client.py
+++ b/netrender/client.py
@@ -443,9 +443,7 @@ class NetworkRenderEngine(bpy.types.RenderEngine):
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")
diff --git a/netrender/master.py b/netrender/master.py
index d5989f8c..69a185b1 100644
--- a/netrender/master.py
+++ b/netrender/master.py
@@ -979,8 +979,7 @@ class RenderMasterServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
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 @@ class RenderMasterServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
# 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()
diff --git a/netrender/slave.py b/netrender/slave.py
index fe3979a7..d8d82e8d 100644
--- a/netrender/slave.py
+++ b/netrender/slave.py
@@ -144,8 +144,7 @@ def render_slave(engine, netsettings, threads):
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 @@ def render_slave(engine, netsettings, threads):
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
diff --git a/netrender/utils.py b/netrender/utils.py
index c173e02d..7a2abb6b 100644
--- a/netrender/utils.py
+++ b/netrender/utils.py
@@ -269,6 +269,23 @@ def hashData(data):
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 @@ def createLocalPath(rfile, prefixdirectory, prefixpath, forcelocal):
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 @@ def createLocalPath(rfile, prefixdirectory, prefixpath, forcelocal):
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)