# HG changeset patch # User igor # Date 1184349121 -10800 # Node ID e34dd9ee49e5f85c7a4b60ba4eb4fde822911306 # Parent ab37f0ad70e58cda760d31638f623853d8efcc30 Функция write_to для записи на консоль виртуальных систем diff -r ab37f0ad70e5 -r e34dd9ee49e5 xentaur.py --- a/xentaur.py Fri Jul 13 16:57:33 2007 +0300 +++ b/xentaur.py Fri Jul 13 20:52:01 2007 +0300 @@ -1,13 +1,16 @@ #!/usr/bin/python -import sys +import sys,os,time import xenomips_vars xenomips_vars.N='1' sys.path.append('/etc/xen') from xenomipsN import vbridges_table, hidden_bridges, domains, broken_links, temporary_links, domain_types from IPython.Shell import IPShellEmbed + +screenrc=os.environ['HOME']+"/.screenrc_xentaur" + def create_bridges_script(): unbound_bridges=bridges create_unbound_bridges="\n".join(map(lambda x: "brctl show | awk '{print $1}' | grep -q "+x+" || brctl addbr "+x, unbound_bridges)) @@ -39,6 +42,10 @@ print """ cat < screenrc +hardstatus on +hardstatus alwayslastline +hardstatus string "%{gk}%c %{yk}%M%d %{wk}%?%-Lw%?%{bw}%n*%f%t%?(%u)%?%{wk}%?%+Lw%?" + screen -t console 0 bash %(screenlist)s SCREENRC @@ -53,7 +60,6 @@ return node+" [label=\" "+node+"\",shapefile=\"shapes/all/"+domain_type[node]+".png\",fontcolor=navy,fontsize=14]" def graph(): - nodelist="" bridgelist="" linklist="" @@ -157,9 +163,10 @@ os.execvp(program, (program,) + args) return os.wait()[0] -def run_command(line) - cmds=line.split() - run(cmds[0],cmds[1:]) +def run_command(line): + #cmds=line.split() + #run(cmds[0],*cmds[1:]) + run("/bin/sh", "-c", line) def add_domain(name,type): domains.append(name) @@ -168,11 +175,21 @@ def brake_link(domain,bridge): broken_links.append([domain,bridge]) -def type_to(screen,string) +def write_to(screen,string): + """ + write_to(screen,string): + + Type *string* to the screen with the number *screen* + + """ + screen_number=screen + f=open('/tmp/xentaurbuf', 'w') + f.write(string) + f.close() run_command("screen -X readreg p /tmp/xentaurbuf") - run_command("screen -X select 1 ") - run_command("screen -X paste p ") - run_command("sleep 1") + run_command("screen -X select "+str(screen_number)) + run_command("nohup screen -X paste p >& /dev/null") + time.sleep(0.05) run_command("screen -X select 0") #-----------------------------------------------------------------------