Make REST mappings for resources a unique list

This ensures the mappings list for resources(shortcuts, plural) unique,
instead of doing multiple requests to server for the same resource.
This commit is contained in:
Zhenguo Niu 2017-12-21 13:37:52 +08:00
parent 8f4f07fcc1
commit 6be1b975d2

View File

@ -622,11 +622,17 @@ func (b *Builder) resourceMappings() ([]*meta.RESTMapping, error) {
return nil, fmt.Errorf("you may only specify a single resource type") return nil, fmt.Errorf("you may only specify a single resource type")
} }
mappings := []*meta.RESTMapping{} mappings := []*meta.RESTMapping{}
seen := map[schema.GroupVersionKind]bool{}
for _, r := range b.resources { for _, r := range b.resources {
mapping, err := b.mappingFor(r) mapping, err := b.mappingFor(r)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// This ensures the mappings for resources(shortcuts, plural) unique
if seen[mapping.GroupVersionKind] {
continue
}
seen[mapping.GroupVersionKind] = true
mappings = append(mappings, mapping) mappings = append(mappings, mapping)
} }