From fb95b4279419b1aa5ed261ad4525129b7d6ffda5 Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Fri, 1 Mar 2019 12:29:50 +0800 Subject: [PATCH] add verify server --- pkg/hostman/guestman/guestman.go | 1 + pkg/hostman/guestman/qemu-kvm.go | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/hostman/guestman/guestman.go b/pkg/hostman/guestman/guestman.go index cd15102474..b6c5828f8e 100644 --- a/pkg/hostman/guestman/guestman.go +++ b/pkg/hostman/guestman/guestman.go @@ -114,6 +114,7 @@ func (m *SGuestManager) OnVerifyExistingGuestsSucc(servers []jsonutils.JSONObjec } else { var unknownServerrs = make([]*SKVMGuestInstance, 0) for _, server := range m.CandidateServers { + go server.RequestVerifyDirtyServer() log.Errorf("Server %s not found on this host", server.GetName()) unknownServerrs = append(unknownServerrs, server) } diff --git a/pkg/hostman/guestman/qemu-kvm.go b/pkg/hostman/guestman/qemu-kvm.go index 71f7b345ae..5b6908183e 100644 --- a/pkg/hostman/guestman/qemu-kvm.go +++ b/pkg/hostman/guestman/qemu-kvm.go @@ -193,6 +193,18 @@ func (s *SKVMGuestInstance) DirtyServerRequestStart() { } } +func (s *SKVMGuestInstance) RequestVerifyDirtyServer() { + hostId, _ := s.Desc.GetString("host_id") + var body = jsonutils.NewDict() + body.Set("guest_id", jsonutils.NewString(s.Id)) + body.Set("host_id", jsonutils.NewString(hostId)) + _, err := modules.Servers.PerformClassAction( + hostutils.GetComputeSession(context.Background()), "dirty-server-verify", body) + if err != nil { + log.Errorf("Dirty server request start error: %s", err) + } +} + // Delay Process func (s *SKVMGuestInstance) asyncScriptStart(ctx context.Context, params interface{}) (jsonutils.JSONObject, error) { data, ok := params.(*jsonutils.JSONDict) @@ -273,7 +285,7 @@ func (s *SKVMGuestInstance) ImportServer(pendingDelete bool) { log.Infof("Server dirty shotdown %s", s.GetName()) if jsonutils.QueryBoolean(s.Desc, "is_master", false) || jsonutils.QueryBoolean(s.Desc, "is_slave", false) { - s.DirtyServerRequestStart() + go s.DirtyServerRequestStart() } else { s.StartGuest(context.Background(), jsonutils.NewDict()) }