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]+)") ...@@ -201,6 +201,14 @@ pause_pattern = re.compile("/pause_([a-zA-Z0-9]+)")
edit_pattern = re.compile("/edit_([a-zA-Z0-9]+)") edit_pattern = re.compile("/edit_([a-zA-Z0-9]+)")
class RenderHandler(http.server.BaseHTTPRequestHandler): 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): def log_message(self, format, *args):
# override because the original calls self.address_string(), which # override because the original calls self.address_string(), which
# is extremely slow due to some timeout.. # is extremely slow due to some timeout..
...@@ -697,6 +705,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): ...@@ -697,6 +705,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if match: if match:
self.server.stats("", "Receiving job") self.server.stats("", "Receiving job")
length = int(self.headers['content-length'])
job_id = match.groups()[0] job_id = match.groups()[0]
file_index = int(match.groups()[1]) file_index = int(match.groups()[1])
...@@ -718,10 +727,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): ...@@ -718,10 +727,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
# add same temp file + renames as slave # add same temp file + renames as slave
f = open(file_path, "wb") self.write_file(file_path)
shutil.copyfileobj(self.rfile, f)
f.close()
render_file.filepath = file_path # set the new path render_file.filepath = file_path # set the new path
if job.testStart(): if job.testStart():
...@@ -764,9 +771,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): ...@@ -764,9 +771,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if job.hasRenderResult(): if job.hasRenderResult():
if job_result == DONE: if job_result == DONE:
f = open(os.path.join(job.save_path, "%06d.exr" % job_frame), 'wb') self.write_file(os.path.join(job.save_path, "%06d.exr" % job_frame))
shutil.copyfileobj(self.rfile, f)
f.close()
elif job_result == ERROR: elif job_result == ERROR:
# blacklist slave on this job on error # blacklist slave on this job on error
...@@ -809,9 +814,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): ...@@ -809,9 +814,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
self.send_head(content = None) self.send_head(content = None)
if job.hasRenderResult(): if job.hasRenderResult():
f = open(os.path.join(job.save_path, "%06d.jpg" % job_frame), 'wb') os.path.join(os.path.join(job.save_path, "%06d.jpg" % job_frame))
shutil.copyfileobj(self.rfile, f)
f.close()
else: # frame not found else: # frame not found
self.send_head(http.client.NO_CONTENT) self.send_head(http.client.NO_CONTENT)
...@@ -838,9 +841,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): ...@@ -838,9 +841,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler):
if frame and frame.log_path: if frame and frame.log_path:
self.send_head(content = None) self.send_head(content = None)
f = open(frame.log_path, 'ab') self.write_file(frame.log_path, 'ab')
shutil.copyfileobj(self.rfile, f)
f.close()
self.server.getSeenSlave(self.headers['slave-id']) 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