[et-mgmt-tools] [PATCH] waiting VNC port number
Saori Fukuta
fukuta.saori at jp.fujitsu.com
Wed Feb 21 03:07:42 UTC 2007
Hi,
I try to install with virt-install and sometimes vncviewer get an error
message that says "unable to connect to host:Connection refused(111)".
So, I cannot continue installation.
The attached patch to resolve this issues in the following way:
1) Check whether the domain has VNCport number.
2) If the number is exist, use the VNCport number.
3) If not, check again every 0.25 second up to 40 seconds.
Signed-off-by: Saori Fukuta <fukuta.saori at jp.fujitsu.com>
Thanks,
Saori Fukuta.
Index: virt-install (python-virtinst-0.100.0)
===================================================================
--- virt-install 2007-02-19 16:09:12.000000000 +0900
+++ virt-install.new 2007-02-19 16:12:05.000000000 +0900
@@ -306,11 +306,22 @@ def get_xml_string(dom, path):
return None
def vnc_console(dom):
- import time; time.sleep(2) # FIXME: ugh.
- vncport = get_xml_string(dom,
- "/domain/devices/graphics[@type='vnc']/@port")
+ import time
+ import commands
+ num = 0
+ vncport = None
+ cmd = "/usr/bin/xenstore-read /local/domain/%s/console/vnc-port" %(dom.ID())
+ while num < ( 40 / 0.25 ): # 40 seconds, .25 second sleeps
+ ( ret, port ) = commands.getstatusoutput( cmd )
+ if ret == 0:
+ vncport = port
+ break
+ else:
+ num += 1
+ time.sleep(0.25)
if vncport == None:
- vncport = 5900 + dom.ID()
+ print >> sys.stderr, "Unable to connect to graphical console; vncport number is not found."
+ return None
vncport = int(vncport)
vnchost = "localhost"
if not os.path.exists("/usr/bin/vncviewer"):
More information about the et-mgmt-tools
mailing list