Skip to content
Snippets Groups Projects
Commit cfb12a23 authored by Martin Poirier's avatar Martin Poirier
Browse files

netrender fix for master receiving files

Based on patch [#28108] by Wintch Analyzer
parent 2f80c8db
No related branches found
No related tags found
No related merge requests found
......@@ -201,6 +201,14 @@ pause_pattern = re.compile("/pause_([a-zA-Z0-9]+)")
edit_pattern = re.compile("/edit_([a-zA-Z0-9]+)")
class RenderHandler(http.server.BaseHTTPRequestHandler):
def write_file(self, file_path, mode = 'wb'):
length = int(self.headers['content-length'])
f = open(file_path, mode)
buf = self.rfile.read(length)
f.write(buf)
f.close()
del buf
def log_message(self, format, *args):
# override because the original calls self.address_string(), which
# is extremely slow due to some timeout..
......@@ -697,6 +705,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if match:
self.server.stats("", "Receiving job")
length = int(self.headers['content-length'])
job_id = match.groups()[0]
file_index = int(match.groups()[1])
......@@ -718,10 +727,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
# add same temp file + renames as slave
f = open(file_path, "wb")
shutil.copyfileobj(self.rfile, f)
f.close()
self.write_file(file_path)
render_file.filepath = file_path # set the new path
if job.testStart():
......@@ -764,9 +771,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if job.hasRenderResult():
if job_result == DONE:
f = open(os.path.join(job.save_path, "%06d.exr" % job_frame), 'wb')
shutil.copyfileobj(self.rfile, f)
f.close()
self.write_file(os.path.join(job.save_path, "%06d.exr" % job_frame))
elif job_result == ERROR:
# blacklist slave on this job on error
......@@ -809,9 +814,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
self.send_head(content = None)
if job.hasRenderResult():
f = open(os.path.join(job.save_path, "%06d.jpg" % job_frame), 'wb')
shutil.copyfileobj(self.rfile, f)
f.close()
os.path.join(os.path.join(job.save_path, "%06d.jpg" % job_frame))
else: # frame not found
self.send_head(http.client.NO_CONTENT)
......@@ -838,9 +841,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if frame and frame.log_path:
self.send_head(content = None)
f = open(frame.log_path, 'ab')
shutil.copyfileobj(self.rfile, f)
f.close()
self.write_file(frame.log_path, 'ab')
self.server.getSeenSlave(self.headers['slave-id'])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment