@@ -17,7 +17,6 @@ limitations under the License.
17
17
package apiutil
18
18
19
19
import (
20
- "errors"
21
20
"sync"
22
21
"sync/atomic"
23
22
@@ -145,7 +144,7 @@ func (drm *dynamicRESTMapper) init() (err error) {
145
144
// checkAndReload attempts to call the given callback, which is assumed to be dependent
146
145
// on the data in the restmapper.
147
146
//
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
149
148
// the RESTMapper's data and re-call the callback once that's occurred.
150
149
// If the callback returns any other error, the function will return immediately regardless.
151
150
//
@@ -154,7 +153,7 @@ func (drm *dynamicRESTMapper) init() (err error) {
154
153
// the callback.
155
154
// It's thread-safe, and worries about thread-safety for the callback (so the callback does
156
155
// 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 {
158
157
// first, check the common path -- data is fresh enough
159
158
// (use an IIFE for the lock's defer)
160
159
err := func () error {
@@ -164,10 +163,7 @@ func (drm *dynamicRESTMapper) checkAndReload(needsReloadErr error, checkNeedsRel
164
163
return checkNeedsReload ()
165
164
}()
166
165
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 )
171
167
if ! needsReload {
172
168
return err
173
169
}
@@ -178,7 +174,7 @@ func (drm *dynamicRESTMapper) checkAndReload(needsReloadErr error, checkNeedsRel
178
174
179
175
// ... and double-check that we didn't reload in the meantime
180
176
err = checkNeedsReload ()
181
- needsReload = errors . As (err , & needsReloadErr )
177
+ needsReload = meta . IsNoMatchError (err )
182
178
if ! needsReload {
183
179
return err
184
180
}
@@ -206,7 +202,7 @@ func (drm *dynamicRESTMapper) KindFor(resource schema.GroupVersionResource) (sch
206
202
return schema.GroupVersionKind {}, err
207
203
}
208
204
var gvk schema.GroupVersionKind
209
- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
205
+ err := drm .checkAndReload (func () error {
210
206
var err error
211
207
gvk , err = drm .staticMapper .KindFor (resource )
212
208
return err
@@ -219,7 +215,7 @@ func (drm *dynamicRESTMapper) KindsFor(resource schema.GroupVersionResource) ([]
219
215
return nil , err
220
216
}
221
217
var gvks []schema.GroupVersionKind
222
- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
218
+ err := drm .checkAndReload (func () error {
223
219
var err error
224
220
gvks , err = drm .staticMapper .KindsFor (resource )
225
221
return err
@@ -233,7 +229,7 @@ func (drm *dynamicRESTMapper) ResourceFor(input schema.GroupVersionResource) (sc
233
229
}
234
230
235
231
var gvr schema.GroupVersionResource
236
- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
232
+ err := drm .checkAndReload (func () error {
237
233
var err error
238
234
gvr , err = drm .staticMapper .ResourceFor (input )
239
235
return err
@@ -246,7 +242,7 @@ func (drm *dynamicRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([
246
242
return nil , err
247
243
}
248
244
var gvrs []schema.GroupVersionResource
249
- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
245
+ err := drm .checkAndReload (func () error {
250
246
var err error
251
247
gvrs , err = drm .staticMapper .ResourcesFor (input )
252
248
return err
@@ -259,7 +255,7 @@ func (drm *dynamicRESTMapper) RESTMapping(gk schema.GroupKind, versions ...strin
259
255
return nil , err
260
256
}
261
257
var mapping * meta.RESTMapping
262
- err := drm .checkAndReload (& meta. NoKindMatchError {}, func () error {
258
+ err := drm .checkAndReload (func () error {
263
259
var err error
264
260
mapping , err = drm .staticMapper .RESTMapping (gk , versions ... )
265
261
return err
@@ -272,7 +268,7 @@ func (drm *dynamicRESTMapper) RESTMappings(gk schema.GroupKind, versions ...stri
272
268
return nil , err
273
269
}
274
270
var mappings []* meta.RESTMapping
275
- err := drm .checkAndReload (& meta. NoKindMatchError {}, func () error {
271
+ err := drm .checkAndReload (func () error {
276
272
var err error
277
273
mappings , err = drm .staticMapper .RESTMappings (gk , versions ... )
278
274
return err
@@ -285,7 +281,7 @@ func (drm *dynamicRESTMapper) ResourceSingularizer(resource string) (string, err
285
281
return "" , err
286
282
}
287
283
var singular string
288
- err := drm .checkAndReload (& meta. NoResourceMatchError {}, func () error {
284
+ err := drm .checkAndReload (func () error {
289
285
var err error
290
286
singular , err = drm .staticMapper .ResourceSingularizer (resource )
291
287
return err
0 commit comments