From 011827f5c7ec40b0195b65b666b54a8e7bdc8a61 Mon Sep 17 00:00:00 2001 From: Harry-zklcdc Date: Sun, 30 Mar 2025 01:25:21 +0800 Subject: [PATCH] =?UTF-8?q?[Fix]=20=F0=9F=90=9B=20PreCheck=20the=20Config?= =?UTF-8?q?=20if=20Instance=20has=20Changed=20#21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/api/v1/admin/instance/modify.go | 12 +++++++++++- routers/api/v1/user/instances/modify.go | 12 +++++++++++- services/dispatcher/modify.go | 16 +++++++++++++--- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/routers/api/v1/admin/instance/modify.go b/routers/api/v1/admin/instance/modify.go index 6958162..87b06de 100644 --- a/routers/api/v1/admin/instance/modify.go +++ b/routers/api/v1/admin/instance/modify.go @@ -66,7 +66,17 @@ func modifyHandler(ctx iris.Context) { return } - if req.CpuOnly == instance.CpuOnly && req.CpuOnly { + hasChanges := false + if req.CpuOnly != instance.CpuOnly { + hasChanges = true + } + if req.GpuCount != nil && *req.GpuCount != instance.GpuCount { + hasChanges = true + } + if req.VolumeSize != nil && *req.VolumeSize != instance.VolumeSize { + hasChanges = true + } + if !hasChanges { middleware.Error(ctx, middleware.CodeBadRequest, iris.StatusBadRequest) return } diff --git a/routers/api/v1/user/instances/modify.go b/routers/api/v1/user/instances/modify.go index 57cdfd3..7f2b7a3 100644 --- a/routers/api/v1/user/instances/modify.go +++ b/routers/api/v1/user/instances/modify.go @@ -72,7 +72,17 @@ func modifyHandler(ctx iris.Context) { return } - if req.CpuOnly == instance.CpuOnly && req.CpuOnly { + hasChanges := false + if req.CpuOnly != instance.CpuOnly { + hasChanges = true + } + if req.GpuCount != nil && *req.GpuCount != instance.GpuCount { + hasChanges = true + } + if req.VolumeSize != nil && *req.VolumeSize != instance.VolumeSize { + hasChanges = true + } + if !hasChanges { middleware.Error(ctx, middleware.CodeBadRequest, iris.StatusBadRequest) return } diff --git a/services/dispatcher/modify.go b/services/dispatcher/modify.go index c94552c..fe221a0 100644 --- a/services/dispatcher/modify.go +++ b/services/dispatcher/modify.go @@ -43,9 +43,19 @@ func modify(serverID uint, data Data) (err error) { return errors.New("instance status error") } - if data.CpuOnly == instance.CpuOnly && data.CpuOnly { - lc.Error("instance already cpu_only mode") - return errors.New("instance already cpu_only mode") + hasChanges := false + if data.CpuOnly != instance.CpuOnly { + hasChanges = true + } + if data.GpuCount != nil && *data.GpuCount != instance.GpuCount { + hasChanges = true + } + if data.VolumeSize != nil && *data.VolumeSize != instance.VolumeSize { + hasChanges = true + } + if !hasChanges { + lc.Error("no changes") + return errors.New("no changes") } oldVolumeSize := instance.VolumeSize