mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-01 15:07:17 +08:00
Merge pull request #9345 from wanyaoqi/bugfix/wyq/fix-gpu-server-change-config-fail
fix(region): gpu server change config use reserved resources
This commit is contained in:
@@ -86,6 +86,11 @@ type ScheduleInput struct {
|
||||
// we don't need reallocate network
|
||||
ReuseNetwork bool `json:"reuse_network"`
|
||||
|
||||
// Change config
|
||||
ChangeConfig bool
|
||||
// guest who change config has isolated device
|
||||
HasIsolatedDevice bool
|
||||
|
||||
PendingUsages []jsonutils.JSONObject
|
||||
}
|
||||
|
||||
|
||||
@@ -2542,7 +2542,7 @@ func (self *SGuest) PerformChangeConfig(ctx context.Context, userCred mcclient.T
|
||||
}
|
||||
|
||||
// schedulr forecast
|
||||
schedDesc := self.confToSchedDesc(addCpu, addMem, addDisk)
|
||||
schedDesc := self.changeConfToSchedDesc(addCpu, addMem, addDisk)
|
||||
s := auth.GetAdminSession(ctx, options.Options.Region, "")
|
||||
canChangeConf, err := modules.SchedManager.DoScheduleForecast(s, schedDesc, 1)
|
||||
if err != nil {
|
||||
@@ -2588,7 +2588,7 @@ func (self *SGuest) PerformChangeConfig(ctx context.Context, userCred mcclient.T
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (self *SGuest) confToSchedDesc(addCpu, addMem, addDisk int) *schedapi.ScheduleInput {
|
||||
func (self *SGuest) changeConfToSchedDesc(addCpu, addMem, addDisk int) *schedapi.ScheduleInput {
|
||||
guestDisks := self.GetDisks()
|
||||
diskInfo := guestDisks[0].ToDiskConfig()
|
||||
diskInfo.SizeMb = addDisk
|
||||
@@ -2605,6 +2605,8 @@ func (self *SGuest) confToSchedDesc(addCpu, addMem, addDisk int) *schedapi.Sched
|
||||
Project: self.ProjectId,
|
||||
Domain: self.DomainId,
|
||||
},
|
||||
ChangeConfig: true,
|
||||
HasIsolatedDevice: len(self.GetIsolatedDevices()) > 0,
|
||||
}
|
||||
return desc
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ func (h *PredicateHelper) UseReserved() bool {
|
||||
usable := false
|
||||
data := h.Unit.SchedData()
|
||||
isoDevs := data.IsolatedDevices
|
||||
if len(isoDevs) > 0 {
|
||||
if len(isoDevs) > 0 || (data.ChangeConfig && data.HasIsolatedDevice) {
|
||||
usable = true
|
||||
}
|
||||
return usable
|
||||
|
||||
Reference in New Issue
Block a user