Skip to content

Commit

Permalink
fix: FindAnonymousStructPoint needs input as a pointer to struct
Browse files Browse the repository at this point in the history
  • Loading branch information
Qiu Jian committed Apr 22, 2020
1 parent e55bb82 commit ead8825
Show file tree
Hide file tree
Showing 14 changed files with 29 additions and 31 deletions.
6 changes: 4 additions & 2 deletions pkg/compute/models/cloudregionresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,10 @@ func (manager *SCloudregionResourceBaseManager) FetchCustomizeColumns(
regionIds := make([]string, len(objs))
for i := range objs {
var base *SCloudregionResourceBase
reflectutils.FindAnonymouStructPointer(objs[i], &base)
if base != nil && len(base.CloudregionId) > 0 {
err := reflectutils.FindAnonymouStructPointer(objs[i], &base)
if err != nil {
log.Errorf("Cannot find SCloudregionResourceBase in %#v: %s", objs[i], err)
} else if base != nil && len(base.CloudregionId) > 0 {
regionIds[i] = base.CloudregionId
}
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/dbinstance_accounts.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ func (manager *SDBInstanceAccountManager) FetchOwnerId(ctx context.Context, data
}
return instance.(*SDBInstance).GetOwnerId(), nil
}
return nil, nil
return db.FetchProjectInfo(ctx, data)
}

func (manager *SDBInstanceAccountManager) FilterByOwner(q *sqlchemy.SQuery, userCred mcclient.IIdentityProvider, scope rbacutils.TRbacScope) *sqlchemy.SQuery {
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/dbinstance_databases.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ func (manager *SDBInstanceDatabaseManager) FetchOwnerId(ctx context.Context, dat
}
return instance.(*SDBInstance).GetOwnerId(), nil
}
return nil, nil
return db.FetchProjectInfo(ctx, data)
}

func (manager *SDBInstanceDatabaseManager) FilterByOwner(q *sqlchemy.SQuery, userCred mcclient.IIdentityProvider, scope rbacutils.TRbacScope) *sqlchemy.SQuery {
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/elasticcache_instances.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ func elasticcacheSubResourceFetchOwnerId(ctx context.Context, data jsonutils.JSO
return ec.(*SElasticcache).GetOwnerId(), nil
}

return nil, nil
return db.FetchProjectInfo(ctx, data)
}

// elastic cache 子资源获取owner query
Expand Down
7 changes: 3 additions & 4 deletions pkg/compute/models/loadbalancerbackendgroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,11 +164,10 @@ func (man *SLoadbalancerBackendGroupManager) QueryDistinctExtraField(q *sqlchemy
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
if err == nil {
return lbV.Model.GetOwnerId(), nil
}

return lbV.Model.GetOwnerId(), nil
return man.SVirtualResourceBaseManager.FetchOwnerId(ctx, data)
}

func (man *SLoadbalancerBackendGroupManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
Expand Down
7 changes: 3 additions & 4 deletions pkg/compute/models/loadbalancerbackends.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,10 @@ func (man *SLoadbalancerBackendManager) ValidateBackendVpc(lb *SLoadbalancer, gu

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
if err := backendGroupV.Validate(data.(*jsonutils.JSONDict)); err == nil {
return backendGroupV.Model.GetOwnerId(), nil
}

return backendGroupV.Model.GetOwnerId(), nil
return man.SVirtualResourceBaseManager.FetchOwnerId(ctx, data)
}

func (man *SLoadbalancerBackendManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
Expand Down
8 changes: 4 additions & 4 deletions pkg/compute/models/loadbalancerclusterresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,11 @@ func (manager *SLoadbalancerClusterResourceBaseManager) FetchCustomizeColumns(
rows[i] = api.LoadbalancerClusterResourceInfo{}
if cluster, ok := clusters[clusterIds[i]]; ok {
rows[i].Cluster = cluster.Name
zones[i] = SZoneResourceBase{cluster.ZoneId}
wires[i] = SWireResourceBase{cluster.WireId}
zones[i] = &SZoneResourceBase{cluster.ZoneId}
wires[i] = &SWireResourceBase{cluster.WireId}
} else {
zones[i] = SZoneResourceBase{}
wires[i] = SWireResourceBase{}
zones[i] = &SZoneResourceBase{}
wires[i] = &SWireResourceBase{}
}
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/compute/models/loadbalancerlistenerresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func (manager *SLoadbalancerListenerResourceBaseManager) FetchCustomizeColumns(
var base *SLoadbalancerListenerResourceBase
err := reflectutils.FindAnonymouStructPointer(objs[i], &base)
if err != nil {
log.Errorf("Cannot find SCloudregionResourceBase in object %s", objs[i])
log.Errorf("Cannot find SLoadbalancerListenerResourceBase in object %#v: %s", objs[i], err)
continue
}
listenerIds[i] = base.ListenerId
Expand All @@ -119,7 +119,7 @@ func (manager *SLoadbalancerListenerResourceBaseManager) FetchCustomizeColumns(
rows[i].Listener = listener.Name
rows[i].LoadbalancerId = listener.LoadbalancerId
}
lbs[i] = SLoadbalancerResourceBase{rows[i].LoadbalancerId}
lbs[i] = &SLoadbalancerResourceBase{rows[i].LoadbalancerId}
}

lbRows := manager.SLoadbalancerResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, lbs, fields, isList)
Expand Down
7 changes: 3 additions & 4 deletions pkg/compute/models/loadbalancerlistenerrules.go
Original file line number Diff line number Diff line change
Expand Up @@ -469,11 +469,10 @@ func (man *SLoadbalancerListenerRuleManager) QueryDistinctExtraField(q *sqlchemy

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
if err := listenerV.Validate(data.(*jsonutils.JSONDict)); err == nil {
return listenerV.Model.GetOwnerId(), nil
}

return listenerV.Model.GetOwnerId(), nil
return man.SVirtualResourceBaseManager.FetchOwnerId(ctx, data)
}

func (man *SLoadbalancerListenerRuleManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
Expand Down
7 changes: 3 additions & 4 deletions pkg/compute/models/loadbalancerlisteners.go
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,10 @@ func (man *SLoadbalancerListenerManager) QueryDistinctExtraField(q *sqlchemy.SQu

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
if err := lbV.Validate(data.(*jsonutils.JSONDict)); err == nil {
return lbV.Model.GetOwnerId(), nil
}

return lbV.Model.GetOwnerId(), nil
return man.SVirtualResourceBaseManager.FetchOwnerId(ctx, data)
}

func (man *SLoadbalancerListenerManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/loadbalancerresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ func (manager *SLoadbalancerResourceBaseManager) FetchCustomizeColumns(
var base *SLoadbalancerResourceBase
err := reflectutils.FindAnonymouStructPointer(objs[i], &base)
if err != nil {
log.Errorf("Cannot find SCloudregionResourceBase in object %s", objs[i])
log.Errorf("Cannot find SLoadbalancerResourceBase in object %#v: %s", objs[i], err)
continue
}
lbIds[i] = base.LoadbalancerId
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/secgrouprules.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func (manager *SSecurityGroupRuleManager) FetchOwnerId(ctx context.Context, data
}
return secgroup.(*SSecurityGroup).GetOwnerId(), nil
}
return nil, nil
return db.FetchProjectInfo(ctx, data)
}

func (manager *SSecurityGroupRuleManager) FilterByOwner(q *sqlchemy.SQuery, userCred mcclient.IIdentityProvider, scope rbacutils.TRbacScope) *sqlchemy.SQuery {
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/wireresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func (manager *SWireResourceBaseManager) FetchCustomizeColumns(
var base *SWireResourceBase
err := reflectutils.FindAnonymouStructPointer(objs[i], &base)
if err != nil {
log.Errorf("Cannot find SCloudregionResourceBase in object %s", objs[i])
log.Errorf("Cannot find SWireResourceBase in object %#v: %s", objs[i], err)
continue
}
wireIds[i] = base.WireId
Expand Down
2 changes: 1 addition & 1 deletion pkg/compute/models/zoneresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func (manager *SZoneResourceBaseManager) FetchCustomizeColumns(
var base *SZoneResourceBase
err := reflectutils.FindAnonymouStructPointer(objs[i], &base)
if err != nil {
log.Errorf("Cannot find SCloudregionResourceBase in object %s", objs[i])
log.Errorf("Cannot find SZoneResourceBase in object %#v: %s", objs[i], err)
continue
}
zoneIds[i] = base.ZoneId
Expand Down

0 comments on commit ead8825

Please sign in to comment.