From 4fa4083e8dc0b55926e1c430bf853f983a116ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Thu, 14 Feb 2019 17:26:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E9=87=8F=E5=90=8C=E6=AD=A5=E5=90=8E?= =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E6=9B=B4=E6=96=B0cloudaccount=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/cloudaccounts.go | 3 +++ pkg/compute/tasks/cloud_account_sync_task.go | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/compute/models/cloudaccounts.go b/pkg/compute/models/cloudaccounts.go index b9430ea7ea..9e6bae0886 100644 --- a/pkg/compute/models/cloudaccounts.go +++ b/pkg/compute/models/cloudaccounts.go @@ -344,10 +344,13 @@ func (self *SCloudaccount) StartSyncCloudProviderInfoTask(ctx context.Context, u taskItems = append(taskItems, &cloudProviders[i]) } } + originState := self.Status + self.MarkStartSync(userCred) task, err := taskman.TaskManager.NewParallelTask(ctx, "CloudAccountSyncInfoTask", taskItems, userCred, params, "", "", nil) if err != nil { log.Errorf("CloudAccountSyncInfoTask newTask error %s", err) + self.SetStatus(userCred, originState, err.Error()) } else { task.ScheduleRun(nil) } diff --git a/pkg/compute/tasks/cloud_account_sync_task.go b/pkg/compute/tasks/cloud_account_sync_task.go index 6806cf5508..5869316d9d 100644 --- a/pkg/compute/tasks/cloud_account_sync_task.go +++ b/pkg/compute/tasks/cloud_account_sync_task.go @@ -33,15 +33,13 @@ func (self *CloudAccountSyncInfoTask) OnInit(ctx context.Context, objs []db.ISta self.SetStageFailed(ctx, "cloudprovide fail to get valid cloudaccount") return } - account.MarkStartSync(self.UserCred) } else { - account.SetStatus(self.UserCred, models.CLOUD_PROVIDER_CONNECTED, "") - self.SetStageComplete(ctx, nil) + self.SetStageFailed(ctx, "no cloudprovider for sync") return } if _, err := account.GetSubAccounts(); err != nil { - account.SetStatus(self.UserCred, models.CLOUD_PROVIDER_DISCONNECTED, "") + account.SetStatus(self.UserCred, models.CLOUD_PROVIDER_DISCONNECTED, err.Error()) self.SetStageFailed(ctx, err.Error()) return }