# HG changeset patch # User igor # Date 1190395330 -10800 # Node ID 9821c9a972cd3fcf0f4f925b0342ec4d6640b63b # Parent 9cef8b150473e5277f1a597bb71c534420d51093 autoredraw + link state diff -r 9cef8b150473 -r 9821c9a972cd xentaur.py --- a/xentaur.py Fri Sep 21 16:29:16 2007 +0300 +++ b/xentaur.py Fri Sep 21 20:22:10 2007 +0300 @@ -102,17 +102,22 @@ for host, bridges_raw in vbridges_table.iteritems(): i=0 for this_bridge in bridges_raw: - if this_bridge in hidden_bridges: + if this_bridge in hidden_bridges or not this_bridge: continue - if [ host, this_bridge ] in broken_links: - links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\",style=dashed]") - else: + if not [ host, this_bridge ] in temporary_links: links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\"]") - i+=1 + i+=1 + # if [ host, this_bridge ] in broken_links: + # links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\",style=dashed]") + # else: + # links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\"]") for link in temporary_links: links.append(link[0]+" -- "+link[1]+" [color=blue,len=10,w=5,weight=5]") + for link in broken_links: + links.append(link[0]+" -- "+link[1]+" [taillabel=\"fa"+str(i)+"/0\",style=dashed]") + linklist=";\n ".join(links) graph_dot = { @@ -155,6 +160,9 @@ f.close() run_command("neato -Tpng -o xenomips.png xenomips.dot ") +def autoredraw(): + graph() + def start_all(): create_bridges_script() create_screens_script() @@ -223,6 +231,11 @@ return 1 run_command("sudo brctl delif %s vif%s.%s" % (bridge, dom_id, int_number)) vbridges_table[domain][int_number]='' + if [ domain, bridge ] in temporary_links: + temporary_links.remove([ domain, bridge ]) + else: + broken_links.append([ domain, bridge ]) + autoredraw() def int_connect(domain, int_number, bridge): """ @@ -236,6 +249,11 @@ return 1 run_command("sudo brctl addif %s vif%s.%s" % (bridge, dom_id, int_number)) vbridges_table[domain][int_number]=bridge + if [ domain, bridge ] in broken_links: + broken_links.remove([ domain, bridge ]) + else: + temporary_links.append([ domain, bridge ]) + autoredraw() def int_reconnect(domain, int_number, bridge): """