[Durian-svn] [5977] farm scripts: various updates, multiple renders per slave, magic overview.blend
brecht
institute at blender.org
Tue Jun 29 17:00:28 CEST 2010
Revision: 5977
https://blenderinstitute.dyndns.org/durian-svn/?do=log&project=durian&path=/&rev=5977
Author: brecht
Date: 2010-06-29 17:00:28 +0200 (Tue, 29 Jun 2010)
Log Message:
-----------
farm scripts: various updates, multiple renders per slave, magic overview.blend
Modified Paths:
--------------
frm/blender_exr_to_avi.py
frm/cron_rsync_finals.sh
frm/ips.py
frm/master_avi_gen.py
frm/master_ui.css
frm/master_ui.py
frm/new_blend_2_frames.py
frm/new_blender_setup.py
frm/new_master.py
frm/new_node_update_clear.sh
frm/new_node_update_frames.sh
frm/new_node_update_movie.sh
Modified: frm/blender_exr_to_avi.py
===================================================================
--- frm/blender_exr_to_avi.py 2010-06-29 14:47:54 UTC (rev 5976)
+++ frm/blender_exr_to_avi.py 2010-06-29 15:00:28 UTC (rev 5977)
@@ -9,8 +9,8 @@
blendfile = sys.argv[-1]
# image_dir = "/shared/software/durian_farm/frames/03.4f/"
-if not image_dir.endswith(os.path.sep):
- image_dir += os.path.sep
+if not image_dir.endswith("/"):
+ image_dir += "/"
frames = new_blend_2_frames.blend_2_frames(blendfile)
files = []
Modified: frm/cron_rsync_finals.sh
===================================================================
--- frm/cron_rsync_finals.sh 2010-06-29 14:47:54 UTC (rev 5976)
+++ frm/cron_rsync_finals.sh 2010-06-29 15:00:28 UTC (rev 5977)
@@ -1,3 +1,4 @@
+#!/bin/bash
TMPFILE=`mktemp`
find /shared/render/ -name "*.exr" | grep final > $TMPFILE
rsync --progress -ave 'ssh -p 22' --files-from=$TMPFILE / guest at 192.168.3.18:/media/data/render/
Modified: frm/ips.py
===================================================================
--- frm/ips.py 2010-06-29 14:47:54 UTC (rev 5976)
+++ frm/ips.py 2010-06-29 15:00:28 UTC (rev 5977)
@@ -1,5 +1,23 @@
ips_all = []
+ips_all += ["192.168.3.103"] # Ben
+ips_all += ["192.168.3.26"] # Brecht
+ips_all += ["192.168.3.10"] # Campbell
+ips_all += ["192.168.3.23"] # Colin
+ips_all += ["192.168.3.30"] # Display System
+ips_all += ["192.168.3.11"] # Dolf
+ips_all += ["192.168.3.18"] # Pablo
+ips_all += ["192.168.3.27"] # Soenke
+ips_all += ["192.168.3.29"] # Weekly
+
+#ips_all += ["192.168.3.105"] # Unknown
+ips_all += ["192.168.3.107"] # Unknown
+ips_all += ["192.168.3.13"] # Beourne
+ips_all += ["192.168.3.22"] # Unknown
+ips_all += ["192.168.3.24"] # Unknown
+ips_all += ["192.168.3.28"] # Unknown
+
+
'''
ips_all += ["192.168.1.11"] # brecht's/amd
ips_all += ["192.168.1.12"] # ben
@@ -16,9 +34,4 @@
ips_all += ["192.168.1.27"] # nathan
'''
-ips_all += ["192.168.1.205"]
-ips_all += ["192.168.1.206"]
-ips_all += ["192.168.1.207"]
-ips_all += ["192.168.1.208"]
-
ips_all_farm = ips_all[:]
Modified: frm/master_avi_gen.py
===================================================================
--- frm/master_avi_gen.py 2010-06-29 14:47:54 UTC (rev 5976)
+++ frm/master_avi_gen.py 2010-06-29 15:00:28 UTC (rev 5977)
@@ -9,7 +9,7 @@
# assume guest
-BIN = "/shared/bin/blender_farm.sh"
+BIN = "/shared/bin/blender_avi.sh"
SCRIPT = os.path.join(FARM_DIR, "blender_exr_to_avi.py")
def file_date(path):
Modified: frm/master_ui.css
===================================================================
--- frm/master_ui.css 2010-06-29 14:47:54 UTC (rev 5976)
+++ frm/master_ui.css 2010-06-29 15:00:28 UTC (rev 5977)
@@ -1,8 +1,9 @@
body {
background-color:#000;
- color: #ddd;
- font-size:11px;
+ color: #cdc;
+ font-size:10px;
font-family: "Lucida Sans","Lucida Sans Unicode","Lucida Grande",Lucida,sans-serif;
+ cursor: default;
}
a {
text-decoration:none;
@@ -21,6 +22,7 @@
h2 {
font-size:120%;
margin: 1px;
+ color: #aaa;
}
@@ -34,7 +36,9 @@
h3 {
clear:both;
font-size:150%;
+ letter-spacing: -1px;
margin: 2px 0 5px 0;
+ color: #7a7;
}
hr {
@@ -63,7 +67,6 @@
.toggle {
text-decoration: underline;
- cursor: pointer;
}
.cache {
@@ -81,12 +84,12 @@
img.thumb {
display: none;
- cursor: pointer;
+
}
span.thumb {
text-decoration: underline;
- cursor: pointer;
+
}
input {
@@ -110,39 +113,48 @@
clear:both;
}
+table {
+ border-color: #000;
+ border-spacing: 0px;
+ border-collapse:collapse;
+ border-radius: 6px;
+ -moz-border-radius: 6px;
+ font-size: 120%;
+}
+
#table-jobs {
- background-color: #222;
- border-radius: 6px;
- -moz-border-radius: 6px;
- padding: 1px;
- width: 100%;
- color: #ccc;
+ background-color: #111;
+ width: 100%;
+ color: #aaa;
}
#table-jobs td {
- border-bottom: thin solid #333;
- word-wrap:break-word;
- padding-left: 10px;
+ border-bottom: thin solid #222;
+ word-wrap: break-word;
+ padding: 0px 0px 0px 5px;
}
#td-toggle {
width: 12px !important;
- background-color: #000 !important;
+ background-color: #000 ;
text-align: center;
padding: 1px 10px 1px 0px;
-/* border: thin solid #333; */
}
+#td-toggle:hover {
+ background-color: #800;
+}
+
thead{
font-size:80%;
- color: #ccc;
+ color: #aca;
padding: 0px;
- background-color: #111 !important;
+ background-color: #111 !important;
}
tr {
- font-size: 12px !important;
- background-color: #111;
+ letter-spacing: -1px;
+ background-color: #101313;
}
tr:hover {
@@ -151,23 +163,31 @@
color: #fff;
}
-.job-dir {color: #aaa}
-.job-file {font-weight: bold}
+.job-dir {color: #666}
+.job-file {font-weight: solid}
.job-add{
width:140px;
font-weight: bold;
- border: 2px solid #840;
- background: #620;
+ border: 2px solid #500;
+ background: #800;
cursor: pointer;
+ padding:2px;
+ text-shadow: 0px 0px 4px #000;
}
+.job-add:hover{
+ border: 2px solid #800;
+ background: #b11;
+ color: #fff;
+}
+
#status-disabled {
text-align:center;
- background-color: #880000 !important;
- color: #fff;
- text-shadow: 1px 1px 3px #000;
- cursor: default;
+ background-color: #770000 !important;
+ color: #fff !important;
+ text-shadow: 1px 1px 3px #000;
+ padding:0px;
}
#status-disabled:hover {
background-color: #990000 !important;
@@ -180,7 +200,6 @@
color: #fff;
border: thin solid #000;
text-shadow: 1px 1px 3px #000;
- cursor: default;
}
#status-inprogress:hover {
@@ -194,7 +213,6 @@
color: #fff;
font-weight: bold;
text-shadow: 1px 1px 3px #000;
- cursor: default;
}
#status-done:hover {
Modified: frm/master_ui.py
===================================================================
--- frm/master_ui.py 2010-06-29 14:47:54 UTC (rev 5976)
+++ frm/master_ui.py 2010-06-29 15:00:28 UTC (rev 5977)
@@ -16,6 +16,8 @@
from render_dirs import GEN_AVI_LOG
from render_dirs import GEN_AVI_BUSY
+#FARM_DIR = "/tmp"
+
TOTAL_PROGRESS = "No statistics yet."
JOBS = []
SLAVES = []
@@ -23,11 +25,13 @@
SLAVES_FILE = os.path.join(FARM_DIR, "slaves.pkl")
REPO_PATH = "/media/data/svnroot/durian"
HTTPD_IP = "192.168.3.14"
+#HTTPD_IP = "127.0.0.1"
HTTPD_PORT = 8333
RESTART = False
GENERATE_AVI = False
STOP_AVI = False
MOVE_OLD_FRAMES = None
+OVERVIEW_BLEND = "overview.blend"
def latest_svn_info():
command = "svnlook youngest " + REPO_PATH
@@ -41,7 +45,7 @@
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
log = p.communicate()[0].decode("utf-8").strip()
- logs += "revision %d: %s<br/>\n" % (i, log)
+ logs += "[%d]: %s<br/>\n" % (i, log)
return logs, rev
else:
@@ -124,9 +128,10 @@
if job.id == id: # only one job per file supported
return
- command = "svn up -r %s %s" % (revision, os.path.join(FARM_DIR, id))
- print(command)
- os.system(command)
+ if id != OVERVIEW_BLEND:
+ command = "svn up -r %s %s" % (revision, os.path.join(FARM_DIR, id))
+ print(command)
+ os.system(command)
job = Job(id, revision, quality)
JOBS.append(job)
@@ -266,6 +271,9 @@
def title(text):
output("<h1>" + text + "</h1>\n")
+ def subtitle(text):
+ output("<h2>" + text + "</h2>\n")
+
def section(text):
output("<h3>" + text + "</h3>\n")
@@ -341,8 +349,11 @@
return_file(os.path.join(FARM_DIR, self.path[1:]), 'text/plain', 1000)
elif self.path == '/graph.html':
return_file('frames/rrd/graph.html', 'text/html')
+ elif self.path.startswith("/progress_"):
+ return_file('progressbar%s' % self.path, 'image/png')
elif self.path.endswith('png'):
return_file('frames/rrd/%s' % self.path, 'image/png')
+
else:
# headers
self.send_response(http.client.OK)
@@ -368,7 +379,7 @@
output("<td id='td-toggle'>")
checkbox('job_set_enabled', job.id, job.enabled)
output("</td>\n")
- output("<td>" + job.id + "</td>\n")
+ output("<td><span class='job-dir'>" + job.id[:11] + "</span><span class='job-file'>" + job.id[11:] + "</span></td>\n")
output("<td>" + job.revision + "</td>\n")
output("<td>" + job.quality + "</td>\n")
if job.status=='Disabled':
@@ -397,7 +408,7 @@
output("<form method='post' action='/job_add'>\n")
output("<input name='id' value='' size='50'/>\n")
- output("<input name='latest' type='checkbox' onchange='this.form.revision.disabled = this.checked;'>Latest</input>\n")
+ output("<input name='latest' checked='yes' type='checkbox' onchange='this.form.revision.disabled = this.checked;'>Latest</input>\n")
output("<input name='revision' value='%s' size='10'/>\n" % (revision,))
output("<select name='quality'>\n")
for option in Job.quality_types:
@@ -406,36 +417,53 @@
output("\t<option %s value='%s'>%s</option>\n" % (state, option, option))
output("</select>\n")
- output("<input type='submit' value='Add Job'/>\n")
+ output("<input type='submit' class='job-add' value='Add Job'/>\n")
output("</form>\n")
output("<hr/>\n")
- output("<div id='extrainfo'>\n")
+ output("<div id='progressbars'>\n")
+ section("Per Scene Progress")
+ subtitle("Scene 01 <img src='progress_01.png' />")
+ subtitle("Scene 02 <img src='progress_02.png' />")
+ subtitle("Scene 03 <img src='progress_03.png' />")
+ subtitle("Scene 04 <img src='progress_04.png' />")
+ subtitle("Scene 05 <img src='progress_05.png' />")
+ subtitle("Scene 06 <img src='progress_06.png' />")
+ subtitle("Scene 07 <img src='progress_07.png' />")
+ subtitle("Scene 08 <img src='progress_08.png' />")
+ subtitle("Scene 09 <img src='progress_09.png' />")
+ output("</div>")
+
+ # latest image
+ output("<div id='latest-render'>")
+ section("Latest Render")
+ output("<a href='preview_big.png' target='_blank'><img src='preview.png' alt='latest render image'></a>")
@@ Diff output truncated at 10240 characters. @@
More information about the Durian-svn
mailing list