diff --git a/pkg/compute/guestdrivers/kvm.go b/pkg/compute/guestdrivers/kvm.go index e18887bd0c..f449d7529f 100644 --- a/pkg/compute/guestdrivers/kvm.go +++ b/pkg/compute/guestdrivers/kvm.go @@ -4,8 +4,8 @@ import ( "context" "fmt" "net/http" - "regexp" "strconv" + "strings" "yunion.io/x/jsonutils" "yunion.io/x/log" @@ -81,10 +81,9 @@ func (self *SKVMGuestDriver) RequestReloadDiskSnapshot(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 } diff --git a/pkg/util/azure/instance.go b/pkg/util/azure/instance.go index 1b180d9429..44954f993f 100644 --- a/pkg/util/azure/instance.go +++ b/pkg/util/azure/instance.go @@ -311,10 +311,8 @@ func (self *SInstance) GetStatus() string { if code := strings.Split(statuses.Code, "/"); len(code) == 2 { if code[0] == "PowerState" { switch code[1] { - case "stopped": + case "stopped", "deallocated": return models.VM_READY - case "deallocated": - return models.VM_DEALLOCATED case "running": return models.VM_RUNNING case "stopping":