@@ -24,6 +24,7 @@ import (
24
24
"net/http/httptest"
25
25
"reflect"
26
26
"testing"
27
+ "time"
27
28
28
29
"github.com/gogo/protobuf/proto"
29
30
"github.com/googleapis/gnostic/OpenAPIv2"
@@ -198,6 +199,26 @@ func TestGetServerResources(t *testing.T) {
198
199
{Name : "jobs" , Namespaced : true , Kind : "Job" },
199
200
},
200
201
}
202
+ extensionsbeta3 := metav1.APIResourceList {GroupVersion : "extensions/v1beta3" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
203
+ extensionsbeta4 := metav1.APIResourceList {GroupVersion : "extensions/v1beta4" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
204
+ extensionsbeta5 := metav1.APIResourceList {GroupVersion : "extensions/v1beta5" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
205
+ extensionsbeta6 := metav1.APIResourceList {GroupVersion : "extensions/v1beta6" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
206
+ extensionsbeta7 := metav1.APIResourceList {GroupVersion : "extensions/v1beta7" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
207
+ extensionsbeta8 := metav1.APIResourceList {GroupVersion : "extensions/v1beta8" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
208
+ extensionsbeta9 := metav1.APIResourceList {GroupVersion : "extensions/v1beta9" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
209
+ extensionsbeta10 := metav1.APIResourceList {GroupVersion : "extensions/v1beta10" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
210
+
211
+ appsbeta1 := metav1.APIResourceList {GroupVersion : "apps/v1beta1" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
212
+ appsbeta2 := metav1.APIResourceList {GroupVersion : "apps/v1beta2" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
213
+ appsbeta3 := metav1.APIResourceList {GroupVersion : "apps/v1beta3" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
214
+ appsbeta4 := metav1.APIResourceList {GroupVersion : "apps/v1beta4" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
215
+ appsbeta5 := metav1.APIResourceList {GroupVersion : "apps/v1beta5" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
216
+ appsbeta6 := metav1.APIResourceList {GroupVersion : "apps/v1beta6" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
217
+ appsbeta7 := metav1.APIResourceList {GroupVersion : "apps/v1beta7" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
218
+ appsbeta8 := metav1.APIResourceList {GroupVersion : "apps/v1beta8" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
219
+ appsbeta9 := metav1.APIResourceList {GroupVersion : "apps/v1beta9" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
220
+ appsbeta10 := metav1.APIResourceList {GroupVersion : "apps/v1beta10" , APIResources : []metav1.APIResource {{Name : "deployments" , Namespaced : true , Kind : "Deployment" }}}
221
+
201
222
tests := []struct {
202
223
resourcesList * metav1.APIResourceList
203
224
path string
@@ -232,6 +253,42 @@ func TestGetServerResources(t *testing.T) {
232
253
list = & beta
233
254
case "/apis/extensions/v1beta2" :
234
255
list = & beta2
256
+ case "/apis/extensions/v1beta3" :
257
+ list = & extensionsbeta3
258
+ case "/apis/extensions/v1beta4" :
259
+ list = & extensionsbeta4
260
+ case "/apis/extensions/v1beta5" :
261
+ list = & extensionsbeta5
262
+ case "/apis/extensions/v1beta6" :
263
+ list = & extensionsbeta6
264
+ case "/apis/extensions/v1beta7" :
265
+ list = & extensionsbeta7
266
+ case "/apis/extensions/v1beta8" :
267
+ list = & extensionsbeta8
268
+ case "/apis/extensions/v1beta9" :
269
+ list = & extensionsbeta9
270
+ case "/apis/extensions/v1beta10" :
271
+ list = & extensionsbeta10
272
+ case "/apis/apps/v1beta1" :
273
+ list = & appsbeta1
274
+ case "/apis/apps/v1beta2" :
275
+ list = & appsbeta2
276
+ case "/apis/apps/v1beta3" :
277
+ list = & appsbeta3
278
+ case "/apis/apps/v1beta4" :
279
+ list = & appsbeta4
280
+ case "/apis/apps/v1beta5" :
281
+ list = & appsbeta5
282
+ case "/apis/apps/v1beta6" :
283
+ list = & appsbeta6
284
+ case "/apis/apps/v1beta7" :
285
+ list = & appsbeta7
286
+ case "/apis/apps/v1beta8" :
287
+ list = & appsbeta8
288
+ case "/apis/apps/v1beta9" :
289
+ list = & appsbeta9
290
+ case "/apis/apps/v1beta10" :
291
+ list = & appsbeta10
235
292
case "/api" :
236
293
list = & metav1.APIVersions {
237
294
Versions : []string {
@@ -241,11 +298,34 @@ func TestGetServerResources(t *testing.T) {
241
298
case "/apis" :
242
299
list = & metav1.APIGroupList {
243
300
Groups : []metav1.APIGroup {
301
+ {
302
+ Name : "apps" ,
303
+ Versions : []metav1.GroupVersionForDiscovery {
304
+ {GroupVersion : "apps/v1beta1" , Version : "v1beta1" },
305
+ {GroupVersion : "apps/v1beta2" , Version : "v1beta2" },
306
+ {GroupVersion : "apps/v1beta3" , Version : "v1beta3" },
307
+ {GroupVersion : "apps/v1beta4" , Version : "v1beta4" },
308
+ {GroupVersion : "apps/v1beta5" , Version : "v1beta5" },
309
+ {GroupVersion : "apps/v1beta6" , Version : "v1beta6" },
310
+ {GroupVersion : "apps/v1beta7" , Version : "v1beta7" },
311
+ {GroupVersion : "apps/v1beta8" , Version : "v1beta8" },
312
+ {GroupVersion : "apps/v1beta9" , Version : "v1beta9" },
313
+ {GroupVersion : "apps/v1beta10" , Version : "v1beta10" },
314
+ },
315
+ },
244
316
{
245
317
Name : "extensions" ,
246
318
Versions : []metav1.GroupVersionForDiscovery {
247
319
{GroupVersion : "extensions/v1beta1" , Version : "v1beta1" },
248
320
{GroupVersion : "extensions/v1beta2" , Version : "v1beta2" },
321
+ {GroupVersion : "extensions/v1beta3" , Version : "v1beta3" },
322
+ {GroupVersion : "extensions/v1beta4" , Version : "v1beta4" },
323
+ {GroupVersion : "extensions/v1beta5" , Version : "v1beta5" },
324
+ {GroupVersion : "extensions/v1beta6" , Version : "v1beta6" },
325
+ {GroupVersion : "extensions/v1beta7" , Version : "v1beta7" },
326
+ {GroupVersion : "extensions/v1beta8" , Version : "v1beta8" },
327
+ {GroupVersion : "extensions/v1beta9" , Version : "v1beta9" },
328
+ {GroupVersion : "extensions/v1beta10" , Version : "v1beta10" },
249
329
},
250
330
},
251
331
},
@@ -265,8 +345,8 @@ func TestGetServerResources(t *testing.T) {
265
345
w .Write (output )
266
346
}))
267
347
defer server .Close ()
268
- client := NewDiscoveryClientForConfigOrDie (& restclient.Config {Host : server .URL })
269
348
for _ , test := range tests {
349
+ client := NewDiscoveryClientForConfigOrDie (& restclient.Config {Host : server .URL })
270
350
got , err := client .ServerResourcesForGroupVersion (test .request )
271
351
if test .expectErr {
272
352
if err == nil {
@@ -283,12 +363,40 @@ func TestGetServerResources(t *testing.T) {
283
363
}
284
364
}
285
365
366
+ client := NewDiscoveryClientForConfigOrDie (& restclient.Config {Host : server .URL })
367
+ start := time .Now ()
286
368
serverResources , err := client .ServerResources ()
287
369
if err != nil {
288
370
t .Errorf ("unexpected error: %v" , err )
289
371
}
372
+ end := time .Now ()
373
+ if d := end .Sub (start ); d > time .Second {
374
+ t .Errorf ("took too long to perform discovery: %s" , d )
375
+ }
290
376
serverGroupVersions := groupVersions (serverResources )
291
- expectedGroupVersions := []string {"v1" , "extensions/v1beta1" , "extensions/v1beta2" }
377
+ expectedGroupVersions := []string {
378
+ "v1" ,
379
+ "apps/v1beta1" ,
380
+ "apps/v1beta2" ,
381
+ "apps/v1beta3" ,
382
+ "apps/v1beta4" ,
383
+ "apps/v1beta5" ,
384
+ "apps/v1beta6" ,
385
+ "apps/v1beta7" ,
386
+ "apps/v1beta8" ,
387
+ "apps/v1beta9" ,
388
+ "apps/v1beta10" ,
389
+ "extensions/v1beta1" ,
390
+ "extensions/v1beta2" ,
391
+ "extensions/v1beta3" ,
392
+ "extensions/v1beta4" ,
393
+ "extensions/v1beta5" ,
394
+ "extensions/v1beta6" ,
395
+ "extensions/v1beta7" ,
396
+ "extensions/v1beta8" ,
397
+ "extensions/v1beta9" ,
398
+ "extensions/v1beta10" ,
399
+ }
292
400
if ! reflect .DeepEqual (expectedGroupVersions , serverGroupVersions ) {
293
401
t .Errorf ("unexpected group versions: %v" , diff .ObjectReflectDiff (expectedGroupVersions , serverGroupVersions ))
294
402
}
0 commit comments