in server/service/grc/kie/kie_distributor.go [147:189]
func (d *Distributor) Display(ctx context.Context, project, app, env string) ([]byte, error) {
list, _, err := d.listDataByKind(ctx, grcsvc.KindMatchGroup, project, app, env)
if err != nil {
return nil, err
}
policyMap := make(map[string]*gov.Policy)
for _, kind := range grcsvc.PolicyNames {
policies, _, err := d.listDataByKind(ctx, kind, project, app, env)
if err != nil {
continue
}
for _, policy := range policies.Data {
item, err := d.transform(policy, kind)
if err != nil {
log.Warn(fmt.Sprintf("transform config failed: key is [%s], value is [%s]", policy.Key, policy.Value))
continue
}
policyMap[item.Name+kind] = item
}
}
r := make([]*gov.DisplayData, 0, list.Total)
for _, item := range list.Data {
match, err := d.transform(item, grcsvc.KindMatchGroup)
if err != nil {
log.Warn(fmt.Sprintf("transform config failed: key is [%s], value is [%s]", item.Key, item.Value))
continue
}
var policies []*gov.Policy
for _, kind := range grcsvc.PolicyNames {
if policyMap[match.Name+kind] != nil {
policies = append(policies, policyMap[match.Name+kind])
}
}
result := &gov.DisplayData{
Policies: policies,
MatchGroup: match,
}
r = append(r, result)
}
b, _ := json.MarshalIndent(r, "", " ")
return b, nil
}