xentaur

changeset 27:9821c9a972cd

autoredraw + link state
author igor
date Fri Sep 21 20:22:10 2007 +0300 (2007-09-21)
parents 9cef8b150473
children d22ff6f55dc5
files xentaur.py
line diff
     1.1 --- a/xentaur.py	Fri Sep 21 16:29:16 2007 +0300
     1.2 +++ b/xentaur.py	Fri Sep 21 20:22:10 2007 +0300
     1.3 @@ -102,17 +102,22 @@
     1.4      for host, bridges_raw in vbridges_table.iteritems():
     1.5          i=0
     1.6          for this_bridge in bridges_raw:
     1.7 -            if this_bridge in hidden_bridges:
     1.8 +            if this_bridge in hidden_bridges or not this_bridge:
     1.9                  continue 
    1.10 -            if [ host, this_bridge ] in broken_links:
    1.11 -                links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\",style=dashed]")
    1.12 -            else:
    1.13 +            if not [ host, this_bridge ] in temporary_links:
    1.14                  links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\"]")
    1.15 -            i+=1
    1.16 +                i+=1
    1.17 +       #         if [ host, this_bridge ] in broken_links:
    1.18 +       #             links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\",style=dashed]")
    1.19 +       #         else:
    1.20 +       #             links.append(host+" -- "+this_bridge+" [taillabel=\"fa"+str(i)+"/0\"]")
    1.21  
    1.22      for link in temporary_links:
    1.23          links.append(link[0]+" -- "+link[1]+" [color=blue,len=10,w=5,weight=5]")
    1.24  
    1.25 +    for link in broken_links:
    1.26 +        links.append(link[0]+" -- "+link[1]+" [taillabel=\"fa"+str(i)+"/0\",style=dashed]")
    1.27 +
    1.28      linklist=";\n    ".join(links)
    1.29  
    1.30      graph_dot = {
    1.31 @@ -155,6 +160,9 @@
    1.32      f.close()
    1.33      run_command("neato -Tpng -o xenomips.png xenomips.dot ")
    1.34  
    1.35 +def autoredraw():
    1.36 +    graph()
    1.37 +
    1.38  def start_all():
    1.39          create_bridges_script()
    1.40          create_screens_script()
    1.41 @@ -223,6 +231,11 @@
    1.42          return 1
    1.43      run_command("sudo brctl delif %s vif%s.%s" % (bridge, dom_id, int_number))
    1.44      vbridges_table[domain][int_number]=''
    1.45 +    if [ domain, bridge ] in temporary_links:
    1.46 +        temporary_links.remove([ domain, bridge ])
    1.47 +    else:
    1.48 +        broken_links.append([ domain, bridge ])
    1.49 +    autoredraw()
    1.50  
    1.51  def int_connect(domain, int_number, bridge):
    1.52      """
    1.53 @@ -236,6 +249,11 @@
    1.54          return 1
    1.55      run_command("sudo brctl addif %s vif%s.%s" % (bridge, dom_id, int_number))
    1.56      vbridges_table[domain][int_number]=bridge
    1.57 +    if [ domain, bridge ] in broken_links:
    1.58 +        broken_links.remove([ domain, bridge ])
    1.59 +    else:
    1.60 +        temporary_links.append([ domain, bridge ])
    1.61 +    autoredraw()
    1.62  
    1.63  def int_reconnect(domain, int_number, bridge):
    1.64      """