From 29245c931c3a7d2bf2796b82d83115576a4787c2 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 19 Mar 2019 18:58:25 +0800 Subject: [PATCH] fix: turn delete prepaid vm to postpaid, so as to allow deleting the vm --- pkg/compute/models/guests.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 0f2f09831c..e6fe7ac901 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -1826,6 +1826,18 @@ func (self *SGuest) syncRemoveCloudVM(ctx context.Context, userCred mcclient.Tok lockman.LockObject(ctx, self) defer lockman.ReleaseObject(ctx, self) + if self.BillingType == BILLING_TYPE_PREPAID { + diff, err := db.Update(self, func() error { + self.BillingType = BILLING_TYPE_POSTPAID + self.ExpiredAt = time.Time{} + return nil + }) + if err != nil { + return err + } + db.OpsLog.LogSyncUpdate(self, diff, userCred) + } + return self.SetStatus(userCred, VM_UNKNOWN, "Sync lost") }