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:
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)