From 117ec7ab58215bd642f0e6a44fafafed069ae786 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 16 Mar 2015 23:40:27 -0400 Subject: [PATCH 1/2] Invalid JSON in examples and tests --- limitrange/valid-pod.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/limitrange/valid-pod.json b/limitrange/valid-pod.json index 01a79159..8e3d50e6 100644 --- a/limitrange/valid-pod.json +++ b/limitrange/valid-pod.json @@ -13,8 +13,8 @@ "name": "kubernetes-serve-hostname", "image": "kubernetes/serve_hostname", "cpu": 1000, - "memory": 1048576, + "memory": 1048576 }] } - }, + } } From 9512dec26a93a9dd710d9fa7fee85398b71e0129 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 16 Mar 2015 23:43:59 -0400 Subject: [PATCH 2/2] Replace automatic YAML decoding with opt-in YAML decoding Base codecs no longer automically handle YAML. Instead, clients must convert to JSON first via yaml.ToJSON and runtime.YAMLDecoder. --- examples_test.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/examples_test.go b/examples_test.go index a672401d..8c5ce092 100644 --- a/examples_test.go +++ b/examples_test.go @@ -29,6 +29,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest" "github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" + "github.com/GoogleCloudPlatform/kubernetes/pkg/util/yaml" "github.com/golang/glog" ) @@ -88,6 +89,15 @@ func walkJSONFiles(inDir string, fn func(name, path string, data []byte)) error return err } name := strings.TrimSuffix(file, ext) + + if ext == ".yaml" { + out, err := yaml.ToJSON(data) + if err != nil { + return err + } + data = out + } + fn(name, path, data) } return nil @@ -215,14 +225,18 @@ func TestReadme(t *testing.T) { //t.Logf("testing (%s): \n%s", subtype, content) expectedType := &api.Pod{} - if err := latest.Codec.DecodeInto([]byte(content), expectedType); err != nil { + json, err := yaml.ToJSON([]byte(content)) + if err != nil { + t.Errorf("%s could not be converted to JSON: %v\n%s", path, err, string(content)) + } + if err := latest.Codec.DecodeInto(json, expectedType); err != nil { t.Errorf("%s did not decode correctly: %v\n%s", path, err, string(content)) continue } if errors := validateObject(expectedType); len(errors) > 0 { t.Errorf("%s did not validate correctly: %v", path, errors) } - _, err := latest.Codec.Encode(expectedType) + _, err = latest.Codec.Encode(expectedType) if err != nil { t.Errorf("Could not encode object: %v", err) continue