From 3961c28168d71888d801efadb2d2a3f6fd90a0e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Tue, 17 Oct 2023 12:26:27 -0500 Subject: [PATCH] fix(region): standardization stage name (#18299) --- pkg/cloudcommon/db/taskman/tasks.go | 38 +++++++++---------- pkg/compute/guestdrivers/base.go | 4 +- .../baremetal_convert_hypervisor_task.go | 2 +- pkg/compute/tasks/cloud_account_sync_task.go | 2 +- pkg/compute/tasks/guest_attach_disk_task.go | 2 +- pkg/compute/tasks/guest_change_config_task.go | 2 +- pkg/compute/tasks/guest_create_disk_task.go | 8 ++-- pkg/compute/tasks/guest_create_task.go | 6 +-- .../tasks/guest_detach_all_disks_task.go | 2 +- .../tasks/guest_save_instance_image_task.go | 2 +- pkg/compute/tasks/guest_sync_task.go | 4 +- 11 files changed, 34 insertions(+), 38 deletions(-) diff --git a/pkg/cloudcommon/db/taskman/tasks.go b/pkg/cloudcommon/db/taskman/tasks.go index 8466e8b895e..d3ae9ea5477 100644 --- a/pkg/cloudcommon/db/taskman/tasks.go +++ b/pkg/cloudcommon/db/taskman/tasks.go @@ -441,36 +441,32 @@ func execITask(taskValue reflect.Value, task *STask, odata jsonutils.JSONObject, data = jsonutils.NewDict() } - var stageName string + stageName := task.Stage if taskFailed { stageName = fmt.Sprintf("%sFailed", task.Stage) - } else { - stageName = task.Stage + if strings.Contains(stageName, "_") { + stageName = fmt.Sprintf("%s_failed", task.Stage) + } + } + + if strings.Contains(stageName, "_") { + stageName = utils.Kebab2Camel(stageName, "_") } funcValue := taskValue.MethodByName(stageName) if !funcValue.IsValid() || funcValue.IsNil() { - log.Debugf("Stage %s not found, try kebab to camel and find again", stageName) + msg := fmt.Sprintf("Stage %s not found", stageName) if taskFailed { - stageName = fmt.Sprintf("%s_failed", task.Stage) - } - stageName = utils.Kebab2Camel(stageName, "_") - funcValue = taskValue.MethodByName(stageName) - - if !funcValue.IsValid() || funcValue.IsNil() { - msg := fmt.Sprintf("Stage %s not found", stageName) - if taskFailed { - // failed handler is optional, ignore the error - log.Warningf(msg) - msg, _ = data.GetString() - } else { - log.Errorf(msg) - } - task.SetStageFailed(ctx, jsonutils.NewString(msg)) - task.SaveRequestContext(&ctxData) - return + // failed handler is optional, ignore the error + log.Warningf(msg) + msg, _ = data.GetString() + } else { + log.Errorf(msg) } + task.SetStageFailed(ctx, jsonutils.NewString(msg)) + task.SaveRequestContext(&ctxData) + return } objManager := db.GetModelManager(task.ObjName) diff --git a/pkg/compute/guestdrivers/base.go b/pkg/compute/guestdrivers/base.go index 03d184a0d18..437231d773b 100644 --- a/pkg/compute/guestdrivers/base.go +++ b/pkg/compute/guestdrivers/base.go @@ -87,10 +87,10 @@ func (drv *SBaseGuestDriver) OnGuestCreateTaskComplete(ctx context.Context, gues } } if jsonutils.QueryBoolean(task.GetParams(), "auto_start", false) { - task.SetStage("on_auto_start_guest", nil) + task.SetStage("OnAutoStartGuest", nil) return guest.StartGueststartTask(ctx, task.GetUserCred(), nil, task.GetTaskId()) } else { - task.SetStage("on_sync_status_complete", nil) + task.SetStage("OnSyncStatusComplete", nil) return guest.StartSyncstatus(ctx, task.GetUserCred(), task.GetTaskId()) } } diff --git a/pkg/compute/tasks/baremetal_convert_hypervisor_task.go b/pkg/compute/tasks/baremetal_convert_hypervisor_task.go index 77deec8e4fa..00cfa523475 100644 --- a/pkg/compute/tasks/baremetal_convert_hypervisor_task.go +++ b/pkg/compute/tasks/baremetal_convert_hypervisor_task.go @@ -53,7 +53,7 @@ func (self *BaremetalConvertHypervisorTask) OnInit(ctx context.Context, obj db.I baremetal.SetStatus(self.UserCred, api.BAREMETAL_CONVERTING, "") - self.SetStage("on_guest_deploy_complete", nil) + self.SetStage("OnGuestDeployComplete", nil) guest := self.getGuest() params, _ := self.Params.Get("server_params") diff --git a/pkg/compute/tasks/cloud_account_sync_task.go b/pkg/compute/tasks/cloud_account_sync_task.go index c372530bf84..f04f31b6662 100644 --- a/pkg/compute/tasks/cloud_account_sync_task.go +++ b/pkg/compute/tasks/cloud_account_sync_task.go @@ -110,7 +110,7 @@ func (self *CloudAccountSyncInfoTask) OnCloudaccountSyncReady(ctx context.Contex cloudproviders := cloudaccount.GetEnabledCloudproviders() if len(cloudproviders) > 0 { - self.SetStage("on_cloudaccount_sync_complete", nil) + self.SetStage("OnCloudaccountSyncComplete", nil) for i := range cloudproviders { cloudproviders[i].StartSyncCloudProviderInfoTask(ctx, self.UserCred, &syncRange, self.GetId()) } diff --git a/pkg/compute/tasks/guest_attach_disk_task.go b/pkg/compute/tasks/guest_attach_disk_task.go index 6269d2d4ae0..99389737644 100644 --- a/pkg/compute/tasks/guest_attach_disk_task.go +++ b/pkg/compute/tasks/guest_attach_disk_task.go @@ -66,7 +66,7 @@ func (self *GuestAttachDiskTask) OnInit(ctx context.Context, obj db.IStandaloneM return } disk.SetStatus(self.UserCred, api.DISK_ATTACHING, "Disk attach") - self.SetStage("on_sync_config_complete", nil) + self.SetStage("OnSyncConfigComplete", nil) guest.GetDriver().RequestAttachDisk(ctx, guest, disk, self) } diff --git a/pkg/compute/tasks/guest_change_config_task.go b/pkg/compute/tasks/guest_change_config_task.go index 95c2a924c59..78026e0e9a8 100644 --- a/pkg/compute/tasks/guest_change_config_task.go +++ b/pkg/compute/tasks/guest_change_config_task.go @@ -346,7 +346,7 @@ func (task *GuestChangeConfigTask) OnGuestChangeCpuMemSpecFinish(ctx context.Con func (task *GuestChangeConfigTask) OnSyncConfigComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { guest := obj.(*models.SGuest) - task.SetStage("on_sync_status_complete", nil) + task.SetStage("OnSyncStatusComplete", nil) err := guest.StartSyncstatus(ctx, task.UserCred, task.GetTaskId()) if err != nil { task.markStageFailed(ctx, guest, jsonutils.NewString(fmt.Sprintf("StartSyncstatus fail %s", err))) diff --git a/pkg/compute/tasks/guest_create_disk_task.go b/pkg/compute/tasks/guest_create_disk_task.go index 0d8e71d7f49..8283cc3b463 100644 --- a/pkg/compute/tasks/guest_create_disk_task.go +++ b/pkg/compute/tasks/guest_create_disk_task.go @@ -35,7 +35,7 @@ type GuestCreateDiskTask struct { } func (self *GuestCreateDiskTask) OnInit(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { - self.SetStage("on_disk_prepared", nil) + self.SetStage("OnDiskPrepared", nil) guest := obj.(*models.SGuest) err := guest.GetDriver().DoGuestCreateDisksTask(ctx, guest, self) if err != nil { @@ -60,7 +60,7 @@ type KVMGuestCreateDiskTask struct { } func (self *KVMGuestCreateDiskTask) OnInit(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { - self.SetStage("on_kvm_disk_prepared", nil) + self.SetStage("OnKvmDiskPrepared", nil) self.OnKvmDiskPrepared(ctx, obj, data) } @@ -126,7 +126,7 @@ func (self *KVMGuestCreateDiskTask) OnKvmDiskPrepared(ctx context.Context, obj d if diskReady { guest := obj.(*models.SGuest) if guest.Status == api.VM_RUNNING { - self.SetStage("on_config_sync_complete", nil) + self.SetStage("OnConfigSyncComplete", nil) err := guest.StartSyncTask(ctx, self.UserCred, false, self.GetTaskId()) if err != nil { self.SetStageFailed(ctx, jsonutils.NewString(err.Error())) @@ -172,7 +172,7 @@ type ManagedGuestCreateDiskTask struct { } func (self *ManagedGuestCreateDiskTask) OnInit(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { - self.SetStage("on_managed_disk_prepared", nil) + self.SetStage("OnManagedDiskPrepared", nil) self.OnManagedDiskPrepared(ctx, obj, data) } diff --git a/pkg/compute/tasks/guest_create_task.go b/pkg/compute/tasks/guest_create_task.go index 017257c0a89..a2aa29afe54 100644 --- a/pkg/compute/tasks/guest_create_task.go +++ b/pkg/compute/tasks/guest_create_task.go @@ -43,7 +43,7 @@ func init() { func (self *GuestCreateTask) OnInit(ctx context.Context, obj db.IStandaloneModel, body jsonutils.JSONObject) { guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, api.VM_CREATE_NETWORK, "") - self.SetStage("on_wait_guest_networks_ready", nil) + self.SetStage("OnWaitGuestNetworksReady", nil) self.OnWaitGuestNetworksReady(ctx, obj, nil) } @@ -218,10 +218,10 @@ func (self *GuestCreateTask) OnDeployEipComplete(ctx context.Context, obj db.ISt } if jsonutils.QueryBoolean(self.GetParams(), "auto_start", false) { - self.SetStage("on_auto_start_guest", nil) + self.SetStage("OnAutoStartGuest", nil) guest.StartGueststartTask(ctx, self.GetUserCred(), nil, self.GetTaskId()) } else { - self.SetStage("on_sync_status_complete", nil) + self.SetStage("OnSyncStatusComplete", nil) guest.StartSyncstatus(ctx, self.GetUserCred(), self.GetTaskId()) } } diff --git a/pkg/compute/tasks/guest_detach_all_disks_task.go b/pkg/compute/tasks/guest_detach_all_disks_task.go index 0a3387b8b75..5911bb6f120 100644 --- a/pkg/compute/tasks/guest_detach_all_disks_task.go +++ b/pkg/compute/tasks/guest_detach_all_disks_task.go @@ -33,7 +33,7 @@ func init() { } func (self *GuestDetachAllDisksTask) OnInit(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { - self.SetStage("on_disk_delete_complete", nil) + self.SetStage("OnDiskDeleteComplete", nil) self.OnDiskDeleteComplete(ctx, obj, data) } diff --git a/pkg/compute/tasks/guest_save_instance_image_task.go b/pkg/compute/tasks/guest_save_instance_image_task.go index 2cac522dbfc..f0dd30b315c 100644 --- a/pkg/compute/tasks/guest_save_instance_image_task.go +++ b/pkg/compute/tasks/guest_save_instance_image_task.go @@ -71,7 +71,7 @@ func (self *GuestSaveGuestImageTask) OnSaveRootImageComplete(ctx context.Context } if restart, _ := self.GetParams().Bool("auto_start"); restart { - self.SetStage("on_start_server_complete", nil) + self.SetStage("OnStartServerComplete", nil) guest.StartGueststartTask(ctx, self.GetUserCred(), nil, self.GetTaskId()) } else { guest.SetStatus(self.UserCred, api.VM_READY, "") diff --git a/pkg/compute/tasks/guest_sync_task.go b/pkg/compute/tasks/guest_sync_task.go index 5d575b0261c..45a2372eb38 100644 --- a/pkg/compute/tasks/guest_sync_task.go +++ b/pkg/compute/tasks/guest_sync_task.go @@ -61,7 +61,7 @@ func (self *GuestSyncConfTask) OnSyncComplete(ctx context.Context, obj db.IStand self.StartRestartNetworkTask(ctx, guest) } else if data.Contains("task") { // XXX this is only applied to KVM, which will call task_complete twice - self.SetStage("on_disk_sync_complete", nil) + self.SetStage("OnDiskSyncComplete", nil) } else { self.OnDiskSyncComplete(ctx, guest, data) } @@ -129,7 +129,7 @@ func (self *GuestSyncConfTask) OnDiskSyncComplete(ctx context.Context, guest *mo if jsonutils.QueryBoolean(self.Params, "without_sync_status", false) { self.OnSyncStatusComplete(ctx, guest, nil) } else { - self.SetStage("on_sync_status_complete", nil) + self.SetStage("OnSyncStatusComplete", nil) guest.StartSyncstatus(ctx, self.GetUserCred(), self.GetTaskId()) } }