From c977fd02cee86792cdbe3ec8b73248191f87f04f Mon Sep 17 00:00:00 2001 From: tangbin Date: Mon, 20 Apr 2020 17:30:22 +0800 Subject: [PATCH] lblis & lbbg & lbr & lbb create add fetch owner id --- pkg/compute/models/loadbalancerbackendgroups.go | 12 ++++++++++-- pkg/compute/models/loadbalancerbackends.go | 9 +++++++++ pkg/compute/models/loadbalancerlistenerrules.go | 9 +++++++++ pkg/compute/models/loadbalancerlisteners.go | 10 +++++++++- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/pkg/compute/models/loadbalancerbackendgroups.go b/pkg/compute/models/loadbalancerbackendgroups.go index 26d491e45d..bbf8603ee3 100644 --- a/pkg/compute/models/loadbalancerbackendgroups.go +++ b/pkg/compute/models/loadbalancerbackendgroups.go @@ -161,6 +161,16 @@ func (man *SLoadbalancerBackendGroupManager) QueryDistinctExtraField(q *sqlchemy return q, httperrors.ErrNotFound } +func (man *SLoadbalancerBackendGroupManager) FetchOwnerId(ctx context.Context, data jsonutils.JSONObject) (mcclient.IIdentityProvider, error) { + lbV := validators.NewModelIdOrNameValidator("loadbalancer", "loadbalancer", nil) + err := lbV.Validate(data.(*jsonutils.JSONDict)) + if err != nil { + return nil, err + } + + return lbV.Model.GetOwnerId(), nil +} + func (man *SLoadbalancerBackendGroupManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { lbV := validators.NewModelIdOrNameValidator("loadbalancer", "loadbalancer", ownerId) err := lbV.Validate(data) @@ -180,8 +190,6 @@ func (man *SLoadbalancerBackendGroupManager) ValidateCreateData(ctx context.Cont data.Update(jsonutils.Marshal(input)) lb := lbV.Model.(*SLoadbalancer) - // data.Set("manager_id", jsonutils.NewString(lb.ManagerId)) - // data.Set("cloudregion_id", jsonutils.NewString(lb.CloudregionId)) backends := []cloudprovider.SLoadbalancerBackend{} if data.Contains("backends") { if err := data.Unmarshal(&backends, "backends"); err != nil { diff --git a/pkg/compute/models/loadbalancerbackends.go b/pkg/compute/models/loadbalancerbackends.go index ae809765a2..158bd9e712 100644 --- a/pkg/compute/models/loadbalancerbackends.go +++ b/pkg/compute/models/loadbalancerbackends.go @@ -216,6 +216,15 @@ func (man *SLoadbalancerBackendManager) ValidateBackendVpc(lb *SLoadbalancer, gu return nil } +func (man *SLoadbalancerBackendManager) FetchOwnerId(ctx context.Context, data jsonutils.JSONObject) (mcclient.IIdentityProvider, error) { + backendGroupV := validators.NewModelIdOrNameValidator("backend_group", "loadbalancerbackendgroup", nil) + if err := backendGroupV.Validate(data.(*jsonutils.JSONDict)); err != nil { + return nil, err + } + + return backendGroupV.Model.GetOwnerId(), nil +} + func (man *SLoadbalancerBackendManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { backendGroupV := validators.NewModelIdOrNameValidator("backend_group", "loadbalancerbackendgroup", ownerId) if err := backendGroupV.Validate(data); err != nil { diff --git a/pkg/compute/models/loadbalancerlistenerrules.go b/pkg/compute/models/loadbalancerlistenerrules.go index aec5de29d6..5c1e1eadde 100644 --- a/pkg/compute/models/loadbalancerlistenerrules.go +++ b/pkg/compute/models/loadbalancerlistenerrules.go @@ -467,6 +467,15 @@ func (man *SLoadbalancerListenerRuleManager) QueryDistinctExtraField(q *sqlchemy return q, httperrors.ErrNotFound } +func (man *SLoadbalancerListenerRuleManager) FetchOwnerId(ctx context.Context, data jsonutils.JSONObject) (mcclient.IIdentityProvider, error) { + listenerV := validators.NewModelIdOrNameValidator("listener", "loadbalancerlistener", nil) + if err := listenerV.Validate(data.(*jsonutils.JSONDict)); err != nil { + return nil, err + } + + return listenerV.Model.GetOwnerId(), nil +} + func (man *SLoadbalancerListenerRuleManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { input := apis.VirtualResourceCreateInput{} err := data.Unmarshal(&input) diff --git a/pkg/compute/models/loadbalancerlisteners.go b/pkg/compute/models/loadbalancerlisteners.go index 237aa88162..d1935d4d87 100644 --- a/pkg/compute/models/loadbalancerlisteners.go +++ b/pkg/compute/models/loadbalancerlisteners.go @@ -296,6 +296,15 @@ func (man *SLoadbalancerListenerManager) QueryDistinctExtraField(q *sqlchemy.SQu return q, httperrors.ErrNotFound } +func (man *SLoadbalancerListenerManager) FetchOwnerId(ctx context.Context, data jsonutils.JSONObject) (mcclient.IIdentityProvider, error) { + lbV := validators.NewModelIdOrNameValidator("loadbalancer", "loadbalancer", nil) + if err := lbV.Validate(data.(*jsonutils.JSONDict)); err != nil { + return nil, err + } + + return lbV.Model.GetOwnerId(), nil +} + func (man *SLoadbalancerListenerManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { lbV := validators.NewModelIdOrNameValidator("loadbalancer", "loadbalancer", ownerId) if err := lbV.Validate(data); err != nil { @@ -327,7 +336,6 @@ func (man *SLoadbalancerListenerManager) ValidateCreateData(ctx context.Context, // if len(lb.ManagerId) > 0 { // data.Set("manager_id", jsonutils.NewString(lb.ManagerId)) // } - return region.GetDriver().ValidateCreateLoadbalancerListenerData(ctx, userCred, ownerId, data, lb, backendGroupV.Model) }