From 8739393e526b9d84963c9e1d965aadfb7cf4ee89 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Thu, 6 Feb 2020 18:22:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E5=9B=A0tenantcache?= =?UTF-8?q?=E6=9C=AA=E7=BC=93=E5=AD=98tenant=E5=AF=BC=E8=87=B4=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E4=BA=91=E8=B4=A6=E5=8F=B7=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/cloudaccounts.go | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pkg/compute/models/cloudaccounts.go b/pkg/compute/models/cloudaccounts.go index eedcfa6f2f..a9d2903411 100644 --- a/pkg/compute/models/cloudaccounts.go +++ b/pkg/compute/models/cloudaccounts.go @@ -311,17 +311,15 @@ func (manager *SCloudaccountManager) ValidateCreateData(ctx context.Context, use return input, err } - data := jsonutils.Marshal(input).(*jsonutils.JSONDict) - tenantV := validators.NewModelIdOrNameValidator("tenant", "tenant", ownerId) - tenantV.Optional(true) - err = tenantV.Validate(data) - if err != nil { - return input, err - } - - err = data.Unmarshal(&input) - if err != nil { - return input, httperrors.NewInputParameterError("failed to unmarshal input params error: %v", err) + if len(input.Tenant) > 0 { + tenantObj, err := db.TenantCacheManager.FetchTenantByIdOrName(ctx, input.Tenant) + if err != nil { + if err == sql.ErrNoRows { + return input, httperrors.NewResourceNotFoundError("failed to found tenant %s", input.Tenant) + } + return input, httperrors.NewGeneralError(errors.Wrap(err, "FetchTenantByIdOrName")) + } + input.TenantId = tenantObj.GetId() } if !cloudprovider.IsSupported(input.Provider) {