Merge pull request #2758 from wanyaoqi/bugfix/wyq/misc-fix-0903

bugfix: fix vnc connect, filter qmp event, save image status
This commit is contained in:
yunion-ci-robot
2019-09-06 11:57:19 +08:00
committed by GitHub
4 changed files with 12 additions and 14 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ func findVNCPort2(results string) int {
vncInfo := strings.Split(results, "\n")
for i := 0; i < len(vncInfo); i++ {
if strings.HasSuffix(vncInfo[i], "(ipv4)") {
addrParts := strings.Split(vncInfo[3], ":")
addrParts := strings.Split(vncInfo[i], ":")
v := addrParts[len(addrParts)-1]
port, _ := strconv.Atoi(v[0 : len(v)-7])
return port
@@ -289,6 +289,7 @@ func (self *SVirtualizedGuestDriver) StartSuspendTask(ctx context.Context, userC
}
func (self *SVirtualizedGuestDriver) StartGuestSaveImage(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, params *jsonutils.JSONDict, parentTaskId string) error {
guest.SetStatus(userCred, api.VM_START_SAVE_DISK, "")
if task, err := taskman.TaskManager.NewTask(ctx, "GuestSaveImageTask", guest, userCred, params, parentTaskId, "", nil); err != nil {
return err
} else {
+4 -12
View File
@@ -16,7 +16,6 @@ package tasks
import (
"context"
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/log"
@@ -47,17 +46,10 @@ func (self *GuestSaveImageTask) OnInit(ctx context.Context, obj db.IStandaloneMo
}
func (self *GuestSaveImageTask) OnStopServerComplete(ctx context.Context, guest *models.SGuest, body jsonutils.JSONObject) {
if guest.Status != api.VM_READY {
reason := fmt.Sprintf("Server %s not in ready status", guest.Name)
log.Errorf(reason)
self.SetStageFailed(ctx, reason)
} else {
self.SetStage("on_save_root_image_complete", nil)
guest.SetStatus(self.GetUserCred(), api.VM_START_SAVE_DISK, "")
disks := guest.CategorizeDisks()
if err := disks.Root.StartDiskSaveTask(ctx, self.GetUserCred(), self.GetParams(), self.GetTaskId()); err != nil {
self.SetStageFailed(ctx, err.Error())
}
self.SetStage("on_save_root_image_complete", nil)
disks := guest.CategorizeDisks()
if err := disks.Root.StartDiskSaveTask(ctx, self.GetUserCred(), self.GetParams(), self.GetTaskId()); err != nil {
self.SetStageFailed(ctx, err.Error())
}
}
+6 -1
View File
@@ -26,6 +26,7 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/utils"
)
// https://github.com/qemu/qemu/blob/master/docs/interop/qmp-spec.txt
@@ -44,6 +45,8 @@ Not support oob yet
"package": "v3.0.0"}, "capabilities": [] } }
*/
var ignoreEvents = []string{`"RTC_CHANGE"`}
type qmpMonitorCallBack func(*Response)
type qmpEventCallback func(*Event)
@@ -222,7 +225,9 @@ func (m *QmpMonitor) read(r io.Reader) {
}
func (m *QmpMonitor) watchEvent(event *Event) {
log.Infof(event.String())
if !utils.IsInStringArray(event.Event, ignoreEvents) {
log.Infof(event.String())
}
if m.qmpEventFunc != nil {
go m.qmpEventFunc(event)
}