From 83f09321cab7a3b12b67ef83e4bf8db27f8d9bf5 Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Fri, 19 Oct 2018 12:07:57 +0800 Subject: [PATCH] fix: kvm find vnc port index out of range --- pkg/compute/guestdrivers/kvm.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkg/compute/guestdrivers/kvm.go b/pkg/compute/guestdrivers/kvm.go index 4b43f4f79d..fa50ef7e95 100644 --- a/pkg/compute/guestdrivers/kvm.go +++ b/pkg/compute/guestdrivers/kvm.go @@ -3,8 +3,8 @@ package guestdrivers import ( "context" "fmt" - "regexp" "strconv" + "strings" "yunion.io/x/jsonutils" "yunion.io/x/log" @@ -43,10 +43,9 @@ func (self *SKVMGuestDriver) OnDeleteGuestFinalCleanup(ctx context.Context, gues } func findVNCPort(results string) int { - reg := regexp.MustCompile(`(\d+\.\d+\.\d+\.\d+):([\d]+)`) - finds := reg.FindStringSubmatch(results) - log.Debugf("finds=%s", finds) - port, _ := strconv.Atoi(finds[2]) + vncInfo := strings.Split(results, "\n") + addrParts := strings.Split(vncInfo[1], ":") + port, _ := strconv.Atoi(addrParts[len(addrParts)-1]) return port }