xentaur

diff xentaur.py @ 29:87f19c6d1514

redrawing bridge state
author igor
date Fri Sep 21 21:29:28 2007 +0300 (2007-09-21)
parents d22ff6f55dc5
children 532f2ed25f70
line diff
     1.1 --- a/xentaur.py	Fri Sep 21 20:48:40 2007 +0300
     1.2 +++ b/xentaur.py	Fri Sep 21 21:29:28 2007 +0300
     1.3 @@ -9,6 +9,8 @@
     1.4  xen_config_name='fabergeN'
     1.5  exec 'from '+xen_config_name+' import bridges,vbridges_table, hidden_bridges, domains, broken_links, temporary_links, domain_types'
     1.6  
     1.7 +bridges_turned_down=[]
     1.8 +
     1.9  from IPython.Shell import IPShellEmbed
    1.10  
    1.11  
    1.12 @@ -85,6 +87,15 @@
    1.13          i+=1
    1.14      return node+" [label=\"  "+node+"\",shapefile=\"shapes/all/"+domain_type[node]+".png\",fontcolor=navy,fontsize=14]"
    1.15  
    1.16 +def graph_bridge(bridge):
    1.17 +    if bridge in hidden_bridges:
    1.18 +        return ""
    1.19 +    if bridge in bridges_turned_down:
    1.20 +        return "%s [shape=none,shapefile=\"shapes/all/switch_turned_down.png\"]" % (bridge)
    1.21 +    else:
    1.22 +        return "%s [shape=none,shapefile=\"shapes/all/switch.png\"]" % (bridge)
    1.23 +
    1.24 +
    1.25  def graph():
    1.26      nodelist=""
    1.27      bridgelist=""
    1.28 @@ -95,7 +106,7 @@
    1.29      nodelist=";\n    ".join(map(graph_node,nodes))
    1.30      if nodelist: nodelist += ";"
    1.31  
    1.32 -    bridgelist=";\n    ".join(set(bridges)-set(hidden_bridges))
    1.33 +    bridgelist=";\n    ".join(map(graph_bridge,bridges))
    1.34      if bridgelist: bridgelist += ";"
    1.35  
    1.36      links=[]
    1.37 @@ -203,13 +214,23 @@
    1.38      """
    1.39      Turn the bridge <bridge> down
    1.40      """
    1.41 -    run_command("sudo ip link set %s down" % bridge)
    1.42 +    if bridge in bridges_turned_down:
    1.43 +        print "Bridge %s is turned down already" % (bridge)
    1.44 +    else:
    1.45 +        bridges_turned_down.append(bridge)
    1.46 +        run_command("sudo ip link set %s down" % bridge)
    1.47 +        autoredraw()
    1.48  
    1.49  def bridge_up(bridge):
    1.50      """
    1.51      Turn the bridge <bridge> up
    1.52      """
    1.53 -    run_command("sudo ip link set %s up" % bridge)
    1.54 +    if not (bridge in bridges_turned_down):
    1.55 +        print "Bridge %s is turned up already" % (bridge)
    1.56 +    else:
    1.57 +        bridges_turned_down.remove(bridge)
    1.58 +        run_command("sudo ip link set %s up" % bridge)
    1.59 +        autoredraw()
    1.60  
    1.61  def show_bridge(bridge):
    1.62      """
    1.63 @@ -273,6 +294,7 @@
    1.64  
    1.65  
    1.66  def dump_start(bridge, filter=""):
    1.67 +    run_command("sudo tcpdump -w xentaur.dump -i %s %s" % (bridge,filter))
    1.68      return 0
    1.69  
    1.70  def dump_stop():