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") }