diff --git a/pkg/compute/models/loadbalancerbackendgroups.go b/pkg/compute/models/loadbalancerbackendgroups.go index 5497716265..63f356438b 100644 --- a/pkg/compute/models/loadbalancerbackendgroups.go +++ b/pkg/compute/models/loadbalancerbackendgroups.go @@ -102,6 +102,16 @@ func (man *SLoadbalancerBackendGroupManager) ListItemFilter(ctx context.Context, return q, nil } +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) diff --git a/pkg/compute/models/loadbalancerbackends.go b/pkg/compute/models/loadbalancerbackends.go index 9c009b56db..01b044efdb 100644 --- a/pkg/compute/models/loadbalancerbackends.go +++ b/pkg/compute/models/loadbalancerbackends.go @@ -146,6 +146,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 0ec5031dba..e40d4af2c8 100644 --- a/pkg/compute/models/loadbalancerlistenerrules.go +++ b/pkg/compute/models/loadbalancerlistenerrules.go @@ -397,6 +397,15 @@ func (man *SLoadbalancerListenerRuleManager) ListItemFilter(ctx context.Context, return q, nil } +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 312fa1a3ef..86d1376ad6 100644 --- a/pkg/compute/models/loadbalancerlisteners.go +++ b/pkg/compute/models/loadbalancerlisteners.go @@ -234,6 +234,15 @@ func (man *SLoadbalancerListenerManager) ListItemFilter(ctx context.Context, q * return q, nil } +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 {