@@ -17,7 +17,6 @@ limitations under the License.
1717package apiutil
1818
1919import (
20- "errors"
2120 "sync"
2221 "sync/atomic"
2322
@@ -145,7 +144,7 @@ func (drm *dynamicRESTMapper) init() (err error) {
145144// checkAndReload attempts to call the given callback, which is assumed to be dependent
146145// on the data in the restmapper.
147146//
148- // If the callback returns an error that matches the given error , it will attempt to reload
147+ // If the callback returns an error matching meta.IsNoMatchErr , it will attempt to reload
149148// the RESTMapper's data and re-call the callback once that's occurred.
150149// If the callback returns any other error, the function will return immediately regardless.
151150//
@@ -154,7 +153,7 @@ func (drm *dynamicRESTMapper) init() (err error) {
154153// the callback.
155154// It's thread-safe, and worries about thread-safety for the callback (so the callback does
156155// not need to attempt to lock the restmapper).
157- func (drm * dynamicRESTMapper ) checkAndReload (needsReloadErr error , checkNeedsReload func () error ) error {
156+ func (drm * dynamicRESTMapper ) checkAndReload (checkNeedsReload func () error ) error {
158157 // first, check the common path -- data is fresh enough
159158 // (use an IIFE for the lock's defer)
160159 err := func () error {
@@ -164,10 +163,7 @@ func (drm *dynamicRESTMapper) checkAndReload(needsReloadErr error, checkNeedsRel
164163 return checkNeedsReload ()
165164 }()
166165
167- // NB(directxman12): `Is` and `As` have a confusing relationship --
168- // `Is` is like `== or does this implement .Is`, whereas `As` says
169- // `can I type-assert into`
170- needsReload := errors .As (err , & needsReloadErr )
166+ needsReload := meta .IsNoMatchError (err )
171167 if ! needsReload {
172168 return err
173169 }
@@ -178,7 +174,7 @@ func (drm *dynamicRESTMapper) checkAndReload(needsReloadErr error, checkNeedsRel
178174
179175 // ... and double-check that we didn't reload in the meantime
180176 err = checkNeedsReload ()
181- needsReload = errors . As (err , & needsReloadErr )
177+ needsReload = meta . IsNoMatchError (err )
182178 if ! needsReload {
183179 return err
184180 }
@@ -206,7 +202,7 @@ func (drm *dynamicRESTMapper) KindFor(resource schema.GroupVersionResource) (sch
206202 return schema.GroupVersionKind {}, err
207203 }
208204 var gvk schema.GroupVersionKind
209- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
205+ err := drm .checkAndReload (func () error {
210206 var err error
211207 gvk , err = drm .staticMapper .KindFor (resource )
212208 return err
@@ -219,7 +215,7 @@ func (drm *dynamicRESTMapper) KindsFor(resource schema.GroupVersionResource) ([]
219215 return nil , err
220216 }
221217 var gvks []schema.GroupVersionKind
222- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
218+ err := drm .checkAndReload (func () error {
223219 var err error
224220 gvks , err = drm .staticMapper .KindsFor (resource )
225221 return err
@@ -233,7 +229,7 @@ func (drm *dynamicRESTMapper) ResourceFor(input schema.GroupVersionResource) (sc
233229 }
234230
235231 var gvr schema.GroupVersionResource
236- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
232+ err := drm .checkAndReload (func () error {
237233 var err error
238234 gvr , err = drm .staticMapper .ResourceFor (input )
239235 return err
@@ -246,7 +242,7 @@ func (drm *dynamicRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([
246242 return nil , err
247243 }
248244 var gvrs []schema.GroupVersionResource
249- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
245+ err := drm .checkAndReload (func () error {
250246 var err error
251247 gvrs , err = drm .staticMapper .ResourcesFor (input )
252248 return err
@@ -259,7 +255,7 @@ func (drm *dynamicRESTMapper) RESTMapping(gk schema.GroupKind, versions ...strin
259255 return nil , err
260256 }
261257 var mapping * meta.RESTMapping
262- err := drm .checkAndReload (& meta. NoKindMatchError {}, func () error {
258+ err := drm .checkAndReload (func () error {
263259 var err error
264260 mapping , err = drm .staticMapper .RESTMapping (gk , versions ... )
265261 return err
@@ -272,7 +268,7 @@ func (drm *dynamicRESTMapper) RESTMappings(gk schema.GroupKind, versions ...stri
272268 return nil , err
273269 }
274270 var mappings []* meta.RESTMapping
275- err := drm .checkAndReload (& meta. NoKindMatchError {}, func () error {
271+ err := drm .checkAndReload (func () error {
276272 var err error
277273 mappings , err = drm .staticMapper .RESTMappings (gk , versions ... )
278274 return err
@@ -285,7 +281,7 @@ func (drm *dynamicRESTMapper) ResourceSingularizer(resource string) (string, err
285281 return "" , err
286282 }
287283 var singular string
288- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
284+ err := drm .checkAndReload (func () error {
289285 var err error
290286 singular , err = drm .staticMapper .ResourceSingularizer (resource )
291287 return err
0 commit comments