lblis & lbbg & lbr & lbb create add fetch owner id

This commit is contained in:
tangbin
2020-04-20 18:51:05 +08:00
parent 76ee769eaf
commit c977fd02ce
4 changed files with 37 additions and 3 deletions
@@ -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 {
@@ -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 {
@@ -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)
+9 -1
View File
@@ -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)
}