From 037b4c1d2c43cd900721c91775df8a2882c6ddb9 Mon Sep 17 00:00:00 2001 From: wanyaoqi <18528551+wanyaoqi@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:10:13 +0800 Subject: [PATCH] fix(region): validate kickstart enabled (#24560) --- pkg/apis/compute/api.go | 7 +++++++ pkg/compute/models/guests.go | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/apis/compute/api.go b/pkg/apis/compute/api.go index ce7c5cd156..3f9cd1601c 100644 --- a/pkg/apis/compute/api.go +++ b/pkg/apis/compute/api.go @@ -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 状态 diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 41b8ba0914..4a9945c594 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -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 {