[Durian-svn] [2771] Some more fixes & tweaks, should be ready to use now after we add the extra nodes.
brecht
institute at blender.org
Mon May 3 15:12:26 CEST 2010
Revision: 2771
https://blenderinstitute.dyndns.org/durian-svn/?do=log&project=durian&path=/&rev=2771
Author: brecht
Date: 2010-05-03 15:12:26 +0200 (Mon, 03 May 2010)
Log Message:
-----------
Some more fixes & tweaks, should be ready to use now after we add the extra nodes.
Modified Paths:
--------------
frm/master_ui.py
frm/new_master.py
frm/new_node_command.sh
frm/new_node_update_movie.sh
Modified: frm/master_ui.py
===================================================================
--- frm/master_ui.py 2010-05-03 13:07:26 UTC (rev 2770)
+++ frm/master_ui.py 2010-05-03 13:12:26 UTC (rev 2771)
@@ -21,6 +21,7 @@
HTTPD_PORT = 8333
RESTART = False
GENERATE_AVI = False
+MOVE_OLD_FRAMES = None
def latest_svn_info():
command = "svnlook youngest " + REPO_PATH
@@ -118,8 +119,8 @@
JOBS.append(job)
Job.dump()
- import new_master
- new_master.move_old_frames(job)
+ if MOVE_OLD_FRAMES:
+ MOVE_OLD_FRAMES(job)
def job_remove(id):
# disabling first ensures that any slaves rendering this stop the job
@@ -273,15 +274,22 @@
else:
output("""<button onclick='request("/exec", "%s")'>%s</button>""" % (function, name))
- def return_file(path, content_type):
+ def return_file(path, content_type, maxlines=0):
self.send_response(http.client.OK)
self.send_header("Content-type", content_type)
self.end_headers()
try:
- f = open(path, 'rb')
- shutil.copyfileobj(f, self.wfile)
- f.close()
+ if maxlines:
+ f = open(path, 'r')
+ lines = f.readlines()[-maxlines:]
+ for line in lines:
+ self.wfile.write(bytes(line, encoding='utf8'))
+ f.close()
+ else:
+ f = open(path, 'rb')
+ shutil.copyfileobj(f, self.wfile)
+ f.close()
except IOError:
print("error opening file", path)
pass
@@ -293,7 +301,7 @@
elif self.path == '/preview.png':
return_file(os.path.join(FARM_DIR, 'slideshow/preview_small00001.png'), 'image/png')
elif self.path.startswith("/logs"):
- return_file(os.path.join(FARM_DIR, self.path[1:]), 'text/plain')
+ return_file(os.path.join(FARM_DIR, self.path[1:]), 'text/plain', 1000)
else:
# headers
self.send_response(http.client.OK)
@@ -302,7 +310,7 @@
# html begin
output("<html><head>\n")
- output("<meta http-equiv='refresh' content=30>\n")
+ output("<meta http-equiv='refresh' content=5>\n")
output("<title>Durian Farm</title>\n")
output("<link rel='stylesheet' href='master_ui.css' type='text/css'>\n")
output("<script src='master_ui.js' type='text/javascript'></script>")
Modified: frm/new_master.py
===================================================================
--- frm/new_master.py 2010-05-03 13:07:26 UTC (rev 2770)
+++ frm/new_master.py 2010-05-03 13:12:26 UTC (rev 2771)
@@ -3,7 +3,7 @@
# TODO
# * auto-generate avis after job is done, non-blocking
# * detect crashes so it does not get stuck on these frames
-# * httpd address already in use happens sometimes on kill
+# * link durian directory to durian_farm_svn on nodes
import os
import time
@@ -68,7 +68,10 @@
for slave in master_ui.SLAVES:
if slave.ip == ip:
- slave.status = open(busy_path, "r").read().strip()
+ try:
+ slave.status = open(busy_path, "r").read().strip()
+ except IOError:
+ pass
def jobs_status_update():
total_done = 0
@@ -191,6 +194,8 @@
if os.path.exists(image):
make_old(image)
+master_ui.MOVE_OLD_FRAMES = move_old_frames
+
def is_busy(ip):
return os.path.exists(log_file(ip, ext="busy"))
@@ -268,13 +273,13 @@
# add/remove available slaves
slaves = available_slaves()
- for slave in sorted(slaves - slaves_prev):
+ for slave in slaves - slaves_prev:
# new systems
print("Adding:", slave.ip)
slaves_state[slave.ip] = (None, 0, 0)
changed = True
- for slave in sorted(slaves_prev - slaves):
+ for slave in slaves_prev - slaves:
# removed systems
print("Removing:", slave.ip)
clear_busy(slave.ip)
@@ -345,11 +350,14 @@
def main():
import time
- while 1:
- stage_in()
- #clear_all()
- # while 1:
- # time.sleep(2)
+ try:
+ while 1:
+ stage_in()
+ #clear_all()
+ # while 1:
+ # time.sleep(2)
+ except KeyboardInterrupt:
+ pass
master_ui.close()
if __name__ == "__main__":
Modified: frm/new_node_command.sh
===================================================================
--- frm/new_node_command.sh 2010-05-03 13:07:26 UTC (rev 2770)
+++ frm/new_node_command.sh 2010-05-03 13:12:26 UTC (rev 2771)
@@ -1,4 +1,5 @@
#!/bin/bash
# wrapper so we can do a simple killall to stop any a command
+echo $@
$@
Modified: frm/new_node_update_movie.sh
===================================================================
--- frm/new_node_update_movie.sh 2010-05-03 13:07:26 UTC (rev 2770)
+++ frm/new_node_update_movie.sh 2010-05-03 13:12:26 UTC (rev 2771)
@@ -2,18 +2,20 @@
PATH=$PATH:/shared/software/durian_farm
export IP=`ip.sh`
BUSY=$FARM_DIR/logs/$IP.busy
+SVN_IP="192.168.1.14"
DIR="/media/data/durian_farm_svn"
echo "Updating Movie Files" > $BUSY
-if [ -d $DIR ]; then
+if [ -d $DIR/pro ]; then
cd $DIR/pro
svn cleanup
+ svn revert -R .
$FARM_DIR/new_node_command.sh svn up --force -r$1
else
- mkdir $DIR
- $FARM_DIR/new_node_command.sh svn co --force svn://biserver/durian/pro $DIR/pro
+ mkdir -p $DIR
+ $FARM_DIR/new_node_command.sh svn co --force -r$1 svn://$SVN_IP/durian/pro $DIR/pro
fi
rm $BUSY
More information about the Durian-svn
mailing list