Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Commit 1e21054

Browse files
Hide common codec methods under helpers
The pending codec -> conversion split changes the signature of Encode and Decode to be more complicated. Create a stub helper with the exact semantics of today and do the simple mechanical refactor here to reduce the cost of that change.
1 parent 229f40e commit 1e21054

File tree

25 files changed

+103
-81
lines changed

25 files changed

+103
-81
lines changed

examples/examples_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ func TestExampleObjectSchemas(t *testing.T) {
422422
if err != nil {
423423
t.Errorf("Could not get codec for %s: %s", expectedType, err)
424424
}
425-
if err := codec.DecodeInto(data, expectedType); err != nil {
425+
if err := runtime.DecodeInto(codec, data, expectedType); err != nil {
426426
t.Errorf("%s did not decode correctly: %v\n%s", path, err, string(data))
427427
return
428428
}

pkg/api/helpers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func AddToNodeAddresses(addresses *[]NodeAddress, addAddresses ...NodeAddress) {
153153
}
154154

155155
func HashObject(obj runtime.Object, codec runtime.Codec) (string, error) {
156-
data, err := codec.Encode(obj)
156+
data, err := runtime.Encode(codec, obj)
157157
if err != nil {
158158
return "", err
159159
}

pkg/api/serialization_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) {
6767
t.Logf("fully qualified kind for %v is %v with codec %v", reflect.TypeOf(item), gvk, codec)
6868

6969
name := reflect.TypeOf(item).Elem().Name()
70-
data, err := codec.Encode(item)
70+
data, err := runtime.Encode(codec, item)
7171
if err != nil {
7272
t.Errorf("%v: %v (%s)", name, err, printer.Sprintf("%#v", item))
7373
return
7474
}
7575

76-
obj2, err := codec.Decode(data)
76+
obj2, err := runtime.Decode(codec, data)
7777
if err != nil {
7878
t.Errorf("0: %v: %v\nCodec: %v\nData: %s\nSource: %#v", name, err, codec, string(data), printer.Sprintf("%#v", item))
7979
return
@@ -84,7 +84,7 @@ func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) {
8484
}
8585

8686
obj3 := reflect.New(reflect.TypeOf(item).Elem()).Interface().(runtime.Object)
87-
err = codec.DecodeInto(data, obj3)
87+
err = runtime.DecodeInto(codec, data, obj3)
8888
if err != nil {
8989
t.Errorf("2: %v: %v", name, err)
9090
return
@@ -307,7 +307,7 @@ func BenchmarkDecodeCodec(b *testing.B) {
307307
width := len(items)
308308
encoded := make([][]byte, width)
309309
for i := range items {
310-
data, err := codec.Encode(&items[i])
310+
data, err := runtime.Encode(codec, &items[i])
311311
if err != nil {
312312
b.Fatal(err)
313313
}
@@ -316,7 +316,7 @@ func BenchmarkDecodeCodec(b *testing.B) {
316316

317317
b.ResetTimer()
318318
for i := 0; i < b.N; i++ {
319-
if _, err := codec.Decode(encoded[i%width]); err != nil {
319+
if _, err := runtime.Decode(codec, encoded[i%width]); err != nil {
320320
b.Fatal(err)
321321
}
322322
}
@@ -329,7 +329,7 @@ func BenchmarkDecodeIntoCodec(b *testing.B) {
329329
width := len(items)
330330
encoded := make([][]byte, width)
331331
for i := range items {
332-
data, err := codec.Encode(&items[i])
332+
data, err := runtime.Encode(codec, &items[i])
333333
if err != nil {
334334
b.Fatal(err)
335335
}
@@ -339,7 +339,7 @@ func BenchmarkDecodeIntoCodec(b *testing.B) {
339339
b.ResetTimer()
340340
for i := 0; i < b.N; i++ {
341341
obj := v1.Pod{}
342-
if err := codec.DecodeInto(encoded[i%width], &obj); err != nil {
342+
if err := runtime.DecodeInto(codec, encoded[i%width], &obj); err != nil {
343343
b.Fatal(err)
344344
}
345345
}
@@ -353,7 +353,7 @@ func BenchmarkDecodeIntoJSON(b *testing.B) {
353353
width := len(items)
354354
encoded := make([][]byte, width)
355355
for i := range items {
356-
data, err := codec.Encode(&items[i])
356+
data, err := runtime.Encode(codec, &items[i])
357357
if err != nil {
358358
b.Fatal(err)
359359
}
@@ -377,7 +377,7 @@ func BenchmarkDecodeIntoJSONCodecGen(b *testing.B) {
377377
width := len(items)
378378
encoded := make([][]byte, width)
379379
for i := range items {
380-
data, err := kcodec.Encode(&items[i])
380+
data, err := runtime.Encode(kcodec, &items[i])
381381
if err != nil {
382382
b.Fatal(err)
383383
}

pkg/api/testing/compat/compatibility_tester.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestCompatibility(
4949

5050
// Decode
5151
codec := runtime.CodecFor(api.Scheme, version)
52-
obj, err := codec.Decode(input)
52+
obj, err := runtime.Decode(codec, input)
5353
if err != nil {
5454
t.Fatalf("Unexpected error: %v", err)
5555
}
@@ -61,7 +61,7 @@ func TestCompatibility(
6161
}
6262

6363
// Encode
64-
output, err := codec.Encode(obj)
64+
output, err := runtime.Encode(codec, obj)
6565
if err != nil {
6666
t.Fatalf("Unexpected error: %v", err)
6767
}

pkg/apis/extensions/v1beta1/defaults_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ func TestSetDefaultJob(t *testing.T) {
275275
}
276276

277277
func roundTrip(t *testing.T, obj runtime.Object) runtime.Object {
278-
data, err := Codec.Encode(obj)
278+
data, err := runtime.Encode(Codec, obj)
279279
if err != nil {
280280
t.Errorf("%v\n %#v", err, obj)
281281
return nil

pkg/apiserver/apiserver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ func writeJSON(statusCode int, codec runtime.Codec, object runtime.Object, w htt
406406

407407
func prettyJSON(codec runtime.Codec, object runtime.Object, w http.ResponseWriter) {
408408
formatted := &bytes.Buffer{}
409-
output, err := codec.Encode(object)
409+
output, err := runtime.Encode(codec, object)
410410
if err != nil {
411411
errorJSONFatal(err, codec, w)
412412
}
@@ -431,7 +431,7 @@ func errorJSONFatal(err error, codec runtime.Codec, w http.ResponseWriter) int {
431431
util.HandleError(fmt.Errorf("apiserver was unable to write a JSON response: %v", err))
432432
status := errToAPIStatus(err)
433433
code := int(status.Code)
434-
output, err := codec.Encode(status)
434+
output, err := runtime.Encode(codec, status)
435435
if err != nil {
436436
w.WriteHeader(code)
437437
fmt.Fprintf(w, "%s: %s", status.Reason, status.Message)

pkg/apiserver/apiserver_test.go

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,11 @@ func handleInternal(storage map[string]rest.Storage, admissionControl admission.
276276

277277
func TestSimpleSetupRight(t *testing.T) {
278278
s := &apiservertesting.Simple{ObjectMeta: api.ObjectMeta{Name: "aName"}}
279-
wire, err := codec.Encode(s)
279+
wire, err := runtime.Encode(codec, s)
280280
if err != nil {
281281
t.Fatal(err)
282282
}
283-
s2, err := codec.Decode(wire)
283+
s2, err := runtime.Decode(codec, wire)
284284
if err != nil {
285285
t.Fatal(err)
286286
}
@@ -291,11 +291,11 @@ func TestSimpleSetupRight(t *testing.T) {
291291

292292
func TestSimpleOptionsSetupRight(t *testing.T) {
293293
s := &apiservertesting.SimpleGetOptions{}
294-
wire, err := codec.Encode(s)
294+
wire, err := runtime.Encode(codec, s)
295295
if err != nil {
296296
t.Fatal(err)
297297
}
298-
s2, err := codec.Decode(wire)
298+
s2, err := runtime.Decode(codec, wire)
299299
if err != nil {
300300
t.Fatal(err)
301301
}
@@ -618,7 +618,7 @@ func extractBody(response *http.Response, object runtime.Object) (string, error)
618618
if err != nil {
619619
return string(body), err
620620
}
621-
err = codec.DecodeInto(body, object)
621+
err = runtime.DecodeInto(codec, body, object)
622622
return string(body), err
623623
}
624624

@@ -1514,7 +1514,7 @@ func TestConnectResponderObject(t *testing.T) {
15141514
if connectStorage.receivedID != itemID {
15151515
t.Errorf("Unexpected item id. Expected: %s. Actual: %s.", itemID, connectStorage.receivedID)
15161516
}
1517-
obj, err := codec.Decode(body)
1517+
obj, err := runtime.Decode(codec, body)
15181518
if err != nil {
15191519
t.Fatal(err)
15201520
}
@@ -1555,7 +1555,7 @@ func TestConnectResponderError(t *testing.T) {
15551555
if connectStorage.receivedID != itemID {
15561556
t.Errorf("Unexpected item id. Expected: %s. Actual: %s.", itemID, connectStorage.receivedID)
15571557
}
1558-
obj, err := codec.Decode(body)
1558+
obj, err := runtime.Decode(codec, body)
15591559
if err != nil {
15601560
t.Fatal(err)
15611561
}
@@ -1725,7 +1725,7 @@ func TestDeleteWithOptions(t *testing.T) {
17251725
item := &api.DeleteOptions{
17261726
GracePeriodSeconds: &grace,
17271727
}
1728-
body, err := codec.Encode(item)
1728+
body, err := runtime.Encode(codec, item)
17291729
if err != nil {
17301730
t.Fatalf("unexpected error: %v", err)
17311731
}
@@ -1789,7 +1789,7 @@ func TestLegacyDeleteIgnoresOptions(t *testing.T) {
17891789
defer server.Close()
17901790

17911791
item := api.NewDeleteOptions(300)
1792-
body, err := codec.Encode(item)
1792+
body, err := runtime.Encode(codec, item)
17931793
if err != nil {
17941794
t.Fatalf("unexpected error: %v", err)
17951795
}
@@ -1942,7 +1942,7 @@ func TestUpdate(t *testing.T) {
19421942
},
19431943
Other: "bar",
19441944
}
1945-
body, err := codec.Encode(item)
1945+
body, err := runtime.Encode(codec, item)
19461946
if err != nil {
19471947
// The following cases will fail, so die now
19481948
t.Fatalf("unexpected error: %v", err)
@@ -1979,7 +1979,7 @@ func TestUpdateInvokesAdmissionControl(t *testing.T) {
19791979
},
19801980
Other: "bar",
19811981
}
1982-
body, err := codec.Encode(item)
1982+
body, err := runtime.Encode(codec, item)
19831983
if err != nil {
19841984
// The following cases will fail, so die now
19851985
t.Fatalf("unexpected error: %v", err)
@@ -2008,7 +2008,7 @@ func TestUpdateRequiresMatchingName(t *testing.T) {
20082008
item := &apiservertesting.Simple{
20092009
Other: "bar",
20102010
}
2011-
body, err := codec.Encode(item)
2011+
body, err := runtime.Encode(codec, item)
20122012
if err != nil {
20132013
// The following cases will fail, so die now
20142014
t.Fatalf("unexpected error: %v", err)
@@ -2040,7 +2040,7 @@ func TestUpdateAllowsMissingNamespace(t *testing.T) {
20402040
},
20412041
Other: "bar",
20422042
}
2043-
body, err := codec.Encode(item)
2043+
body, err := runtime.Encode(codec, item)
20442044
if err != nil {
20452045
// The following cases will fail, so die now
20462046
t.Fatalf("unexpected error: %v", err)
@@ -2078,7 +2078,7 @@ func TestUpdateAllowsMismatchedNamespaceOnError(t *testing.T) {
20782078
},
20792079
Other: "bar",
20802080
}
2081-
body, err := codec.Encode(item)
2081+
body, err := runtime.Encode(codec, item)
20822082
if err != nil {
20832083
// The following cases will fail, so die now
20842084
t.Fatalf("unexpected error: %v", err)
@@ -2115,7 +2115,7 @@ func TestUpdatePreventsMismatchedNamespace(t *testing.T) {
21152115
},
21162116
Other: "bar",
21172117
}
2118-
body, err := codec.Encode(item)
2118+
body, err := runtime.Encode(codec, item)
21192119
if err != nil {
21202120
// The following cases will fail, so die now
21212121
t.Fatalf("unexpected error: %v", err)
@@ -2150,7 +2150,7 @@ func TestUpdateMissing(t *testing.T) {
21502150
},
21512151
Other: "bar",
21522152
}
2153-
body, err := codec.Encode(item)
2153+
body, err := runtime.Encode(codec, item)
21542154
if err != nil {
21552155
t.Errorf("unexpected error: %v", err)
21562156
}
@@ -2179,7 +2179,7 @@ func TestCreateNotFound(t *testing.T) {
21792179
client := http.Client{}
21802180

21812181
simple := &apiservertesting.Simple{Other: "foo"}
2182-
data, err := codec.Encode(simple)
2182+
data, err := runtime.Encode(codec, simple)
21832183
if err != nil {
21842184
t.Errorf("unexpected error: %v", err)
21852185
}
@@ -2205,7 +2205,7 @@ func TestCreateChecksDecode(t *testing.T) {
22052205
client := http.Client{}
22062206

22072207
simple := &api.Pod{}
2208-
data, err := codec.Encode(simple)
2208+
data, err := runtime.Encode(codec, simple)
22092209
if err != nil {
22102210
t.Errorf("unexpected error: %v", err)
22112211
}
@@ -2395,7 +2395,7 @@ func TestCreateWithName(t *testing.T) {
23952395
client := http.Client{}
23962396

23972397
simple := &apiservertesting.Simple{Other: "foo"}
2398-
data, err := codec.Encode(simple)
2398+
data, err := runtime.Encode(codec, simple)
23992399
if err != nil {
24002400
t.Errorf("unexpected error: %v", err)
24012401
}
@@ -2422,7 +2422,7 @@ func TestUpdateChecksDecode(t *testing.T) {
24222422
client := http.Client{}
24232423

24242424
simple := &api.Pod{}
2425-
data, err := codec.Encode(simple)
2425+
data, err := runtime.Encode(codec, simple)
24262426
if err != nil {
24272427
t.Errorf("unexpected error: %v", err)
24282428
}
@@ -2498,7 +2498,7 @@ func TestCreate(t *testing.T) {
24982498
simple := &apiservertesting.Simple{
24992499
Other: "bar",
25002500
}
2501-
data, err := codec.Encode(simple)
2501+
data, err := runtime.Encode(codec, simple)
25022502
if err != nil {
25032503
t.Errorf("unexpected error: %v", err)
25042504
}
@@ -2557,7 +2557,7 @@ func TestCreateInNamespace(t *testing.T) {
25572557
simple := &apiservertesting.Simple{
25582558
Other: "bar",
25592559
}
2560-
data, err := codec.Encode(simple)
2560+
data, err := runtime.Encode(codec, simple)
25612561
if err != nil {
25622562
t.Errorf("unexpected error: %v", err)
25632563
}
@@ -2616,7 +2616,7 @@ func TestCreateInvokesAdmissionControl(t *testing.T) {
26162616
simple := &apiservertesting.Simple{
26172617
Other: "bar",
26182618
}
2619-
data, err := codec.Encode(simple)
2619+
data, err := runtime.Encode(codec, simple)
26202620
if err != nil {
26212621
t.Errorf("unexpected error: %v", err)
26222622
}
@@ -2744,7 +2744,7 @@ func TestCreateTimeout(t *testing.T) {
27442744
defer server.Close()
27452745

27462746
simple := &apiservertesting.Simple{Other: "foo"}
2747-
data, err := codec.Encode(simple)
2747+
data, err := runtime.Encode(codec, simple)
27482748
if err != nil {
27492749
t.Errorf("unexpected error: %v", err)
27502750
}
@@ -2836,7 +2836,7 @@ func TestCreateChecksAPIVersion(t *testing.T) {
28362836

28372837
simple := &apiservertesting.Simple{}
28382838
//using newCodec and send the request to testVersion URL shall cause a discrepancy in apiVersion
2839-
data, err := newCodec.Encode(simple)
2839+
data, err := runtime.Encode(newCodec, simple)
28402840
if err != nil {
28412841
t.Errorf("unexpected error: %v", err)
28422842
}
@@ -2866,7 +2866,7 @@ func TestCreateDefaultsAPIVersion(t *testing.T) {
28662866
client := http.Client{}
28672867

28682868
simple := &apiservertesting.Simple{}
2869-
data, err := codec.Encode(simple)
2869+
data, err := runtime.Encode(codec, simple)
28702870
if err != nil {
28712871
t.Errorf("unexpected error: %v", err)
28722872
}
@@ -2901,7 +2901,7 @@ func TestUpdateChecksAPIVersion(t *testing.T) {
29012901
client := http.Client{}
29022902

29032903
simple := &apiservertesting.Simple{ObjectMeta: api.ObjectMeta{Name: "bar"}}
2904-
data, err := newCodec.Encode(simple)
2904+
data, err := runtime.Encode(newCodec, simple)
29052905
if err != nil {
29062906
t.Errorf("unexpected error: %v", err)
29072907
}

0 commit comments

Comments
 (0)