From cda1edfc45cfaedc935be32b939928b341ecb3f3 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 13 Nov 2018 16:16:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=EF=BC=9A=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=B8=BB=E6=9C=BA=E6=97=B6=E5=BF=BD=E7=95=A5=E5=81=9C=E6=9C=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/guests.go | 3 +++ pkg/compute/tasks/guest_delete_task.go | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index d2ebd85bfa..c75e3b595e 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -1343,6 +1343,9 @@ func (self *SGuest) Attach2Network(ctx context.Context, userCred mcclient.TokenC } } notes := jsonutils.NewDict() + if len(address) == 0 { + address = guestnic.IpAddr + } notes.Add(jsonutils.NewString(address), "ip_addr") db.OpsLog.LogAttachEvent(self, network, userCred, notes) return nil diff --git a/pkg/compute/tasks/guest_delete_task.go b/pkg/compute/tasks/guest_delete_task.go index a9c9dd7088..b0d50c4400 100644 --- a/pkg/compute/tasks/guest_delete_task.go +++ b/pkg/compute/tasks/guest_delete_task.go @@ -33,8 +33,10 @@ func (self *GuestDeleteTask) OnInit(ctx context.Context, obj db.IStandaloneModel self.SetStage("on_guest_stop_complete", nil) err := guest.GetDriver().RequestStopGuestForDelete(ctx, guest, self) if err != nil { - errMsg := jsonutils.NewString(err.Error()) - self.OnGuestStopCompleteFailed(ctx, obj, errMsg) + log.Errorf("RequestStopGuestForDelete fail %s", err) + // errMsg := jsonutils.NewString(err.Error()) + // self.OnGuestStopCompleteFailed(ctx, obj, errMsg) + self.OnGuestStopComplete(ctx, obj, data) } } @@ -56,6 +58,10 @@ func (self *GuestDeleteTask) OnGuestStopComplete(ctx context.Context, obj db.ISt } func (self *GuestDeleteTask) OnGuestStopCompleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) { + self.OnGuestStopComplete(ctx, obj, err) // ignore stop error +} + +func (self *GuestDeleteTask) OnGuestDeleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) { guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, models.VM_DELETE_FAIL, err.String()) db.OpsLog.LogEvent(guest, db.ACT_DELOCATE_FAIL, err, self.UserCred) @@ -94,6 +100,10 @@ func (self *GuestDeleteTask) OnGuestDetachDisksComplete(ctx context.Context, obj self.DoDeleteGuest(ctx, guest) } +func (self *GuestDeleteTask) OnGuestDetachDisksCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { + self.OnGuestDeleteFailed(ctx, obj, data) +} + func (self *GuestDeleteTask) DoDeleteGuest(ctx context.Context, guest *models.SGuest) { models.IsolatedDeviceManager.ReleaseDevicesOfGuest(guest, self.UserCred) host := guest.GetHost()