mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 06:09:39 +08:00
fix(region): validate kickstart enabled (#24560)
This commit is contained in:
@@ -727,6 +727,13 @@ type ServerCreateInput struct {
|
||||
Pod *PodCreateInput `json:"pod"`
|
||||
}
|
||||
|
||||
func (c *KickstartConfig) IsEnabled() bool {
|
||||
if c.Enabled != nil && !*c.Enabled {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// ServerUpdateKickstartStatusInput 更新虚拟机 kickstart 状态的输入
|
||||
type ServerUpdateKickstartStatusInput struct {
|
||||
// kickstart 状态
|
||||
|
||||
@@ -2300,7 +2300,7 @@ func (manager *SGuestManager) validateCreateData(
|
||||
}
|
||||
|
||||
// validate KickstartConfig
|
||||
if input.KickstartConfig != nil {
|
||||
if input.KickstartConfig != nil && input.KickstartConfig.IsEnabled() {
|
||||
if err := validateKickstartConfig(input.KickstartConfig); err != nil {
|
||||
return nil, httperrors.NewInputParameterError("Invalid kickstart config: %v", err)
|
||||
}
|
||||
@@ -2807,7 +2807,7 @@ func (guest *SGuest) PostCreate(ctx context.Context, userCred mcclient.TokenCred
|
||||
kickstartConfig := &api.KickstartConfig{}
|
||||
if err := kickstartConfigJson.Unmarshal(kickstartConfig); err != nil {
|
||||
log.Errorf("unmarshal kickstart config fail: %s", err)
|
||||
} else {
|
||||
} else if kickstartConfig.IsEnabled() {
|
||||
if err := guest.SetKickstartConfig(ctx, kickstartConfig, userCred); err != nil {
|
||||
log.Errorf("Failed to set kickstart config for guest %s: %v", guest.Name, err)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user