mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #909 in YUNIONIO/onecloud from ~QIUJIAN/onecloud:hotfix/qj-fix-vm-renew-not-effective to release/2.5.0
* commit 'a14fad1b9cd1b7fcd3ede71ad35d2e120155fef1': 修正:清理到期包年包月主机需要把删除保护去掉 minor fixes 修正对包年包月主机续费后没有效果的问题
This commit is contained in:
+1
-1
@@ -29,7 +29,7 @@ type BaseOptions struct {
|
||||
Debug bool `help:"Show debug information"`
|
||||
Version bool `help:"Show version"`
|
||||
Timeout int `default:"600" help:"Number of seconds to wait for a response"`
|
||||
Insecure bool `default:"false" help:"Allow skip server cert verification if URL is https" short-token:"k"`
|
||||
Insecure bool `default:"$YUNION_INSECURE|false" help:"Allow skip server cert verification if URL is https" short-token:"k"`
|
||||
|
||||
CertFile string `default:"$YUNION_CERT_FILE" help:"certificate file"`
|
||||
KeyFile string `default:"$YUNION_KEY_FILE" help:"private key file"`
|
||||
|
||||
@@ -580,5 +580,9 @@ func (self *SManagedVirtualizedGuestDriver) RequestRenewInstance(guest *models.S
|
||||
if err != nil {
|
||||
return time.Time{}, err
|
||||
}
|
||||
err = iVM.Refresh()
|
||||
if err != nil {
|
||||
return time.Time{}, err
|
||||
}
|
||||
return iVM.GetExpiredAt(), nil
|
||||
}
|
||||
|
||||
@@ -3430,6 +3430,7 @@ func (manager *SGuestManager) DeleteExpiredPrepaidServers(ctx context.Context, u
|
||||
}
|
||||
for i := 0; i < len(guests); i += 1 {
|
||||
// fake delete expired prepaid servers
|
||||
guests[i].SetDisableDelete(false)
|
||||
guests[i].StartDeleteGuestTask(ctx, userCred, "", false, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -726,3 +726,11 @@ func (self *SHost) DoSaveRenewInfo(ctx context.Context, userCred mcclient.TokenC
|
||||
db.OpsLog.LogEvent(self, db.ACT_RENEW, self.GetShortDesc(ctx), userCred)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SHost) SyncWithRealPrepaidVM(ctx context.Context, userCred mcclient.TokenCredential, iVM cloudprovider.ICloudVM) error {
|
||||
exp := iVM.GetExpiredAt()
|
||||
if self.ExpiredAt != exp {
|
||||
return self.DoSaveRenewInfo(ctx, userCred, nil, &exp)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1637,6 +1637,10 @@ func (self *SHost) SyncHostVMs(ctx context.Context, userCred mcclient.TokenCrede
|
||||
vhost := HostManager.GetHostByRealExternalId(added[i].GetGlobalId())
|
||||
if vhost != nil {
|
||||
// this recycle vm is not build yet, skip synchronize
|
||||
err = vhost.SyncWithRealPrepaidVM(ctx, userCred, added[i])
|
||||
if err != nil {
|
||||
syncResult.AddError(err)
|
||||
}
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@ package tasks
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"fmt"
|
||||
"yunion.io/x/log"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
@@ -73,6 +73,8 @@ func (self *PrepaidRecycleHostRenewTask) OnInit(ctx context.Context, obj db.ISta
|
||||
return
|
||||
}
|
||||
|
||||
log.Debugf("expire before %s", iVM.GetExpiredAt())
|
||||
|
||||
err = iVM.Renew(bc)
|
||||
if err != nil {
|
||||
msg := fmt.Sprintf("iVM.Renew fail %s", err)
|
||||
@@ -81,6 +83,16 @@ func (self *PrepaidRecycleHostRenewTask) OnInit(ctx context.Context, obj db.ISta
|
||||
return
|
||||
}
|
||||
|
||||
err = iVM.Refresh()
|
||||
if err != nil {
|
||||
msg := fmt.Sprintf("refresh after renew fail %s", err)
|
||||
log.Errorf(msg)
|
||||
self.SetStageFailed(ctx, msg)
|
||||
return
|
||||
}
|
||||
|
||||
log.Debugf("expire after %s", iVM.GetExpiredAt())
|
||||
|
||||
exp := iVM.GetExpiredAt()
|
||||
|
||||
err = host.DoSaveRenewInfo(ctx, self.UserCred, &bc, &exp)
|
||||
|
||||
Reference in New Issue
Block a user