tolerate discovery errors in the restmapper

This commit is contained in:
David Eads
2017-11-06 08:22:44 -05:00
parent 210626577b
commit 8203b0b135

View File

@@ -79,22 +79,24 @@ func (e shortcutExpander) RESTMappings(gk schema.GroupKind, versions ...string)
func (e shortcutExpander) getShortcutMappings() ([]kubectl.ResourceShortcuts, error) { func (e shortcutExpander) getShortcutMappings() ([]kubectl.ResourceShortcuts, error) {
res := []kubectl.ResourceShortcuts{} res := []kubectl.ResourceShortcuts{}
// get server resources // get server resources
// This can return an error *and* the results it was able to find. We don't need to fail on the error.
apiResList, err := e.discoveryClient.ServerResources() apiResList, err := e.discoveryClient.ServerResources()
if err == nil { if err != nil {
for _, apiResources := range apiResList { glog.V(1).Infof("Error loading discovery information: %v", err)
for _, apiRes := range apiResources.APIResources { }
for _, shortName := range apiRes.ShortNames { for _, apiResources := range apiResList {
gv, err := schema.ParseGroupVersion(apiResources.GroupVersion) for _, apiRes := range apiResources.APIResources {
if err != nil { for _, shortName := range apiRes.ShortNames {
glog.V(1).Infof("Unable to parse groupversion = %s due to = %s", apiResources.GroupVersion, err.Error()) gv, err := schema.ParseGroupVersion(apiResources.GroupVersion)
continue if err != nil {
} glog.V(1).Infof("Unable to parse groupversion = %s due to = %s", apiResources.GroupVersion, err.Error())
rs := kubectl.ResourceShortcuts{ continue
ShortForm: schema.GroupResource{Group: gv.Group, Resource: shortName},
LongForm: schema.GroupResource{Group: gv.Group, Resource: apiRes.Name},
}
res = append(res, rs)
} }
rs := kubectl.ResourceShortcuts{
ShortForm: schema.GroupResource{Group: gv.Group, Resource: shortName},
LongForm: schema.GroupResource{Group: gv.Group, Resource: apiRes.Name},
}
res = append(res, rs)
} }
} }
} }