summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/apimachinery/pkg/util/yaml
diff options
context:
space:
mode:
authordependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>2020-12-09 09:17:32 +0000
committerDaniel J Walsh <dwalsh@redhat.com>2020-12-09 06:05:03 -0500
commit37fbf28d74927b959b36ceade7fde3402ea08e05 (patch)
treed053b6a2fd3e05946bbf71134d80efcb9a8a449c /vendor/k8s.io/apimachinery/pkg/util/yaml
parentdd295f297b6dd51d22c64c75f4ef4f80f953bbde (diff)
downloadpodman-37fbf28d74927b959b36ceade7fde3402ea08e05.tar.gz
podman-37fbf28d74927b959b36ceade7fde3402ea08e05.tar.bz2
podman-37fbf28d74927b959b36ceade7fde3402ea08e05.zip
Bump k8s.io/apimachinery from 0.19.4 to 0.20.0
Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.19.4 to 0.20.0. - [Release notes](https://github.com/kubernetes/apimachinery/releases) - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.19.4...v0.20.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'vendor/k8s.io/apimachinery/pkg/util/yaml')
-rw-r--r--vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go b/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go
index 492171faf..7fe706467 100644
--- a/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go
+++ b/vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go
@@ -26,10 +26,41 @@ import (
"strings"
"unicode"
+ jsonutil "k8s.io/apimachinery/pkg/util/json"
+
"k8s.io/klog/v2"
"sigs.k8s.io/yaml"
)
+// Unmarshal unmarshals the given data
+// If v is a *map[string]interface{}, *[]interface{}, or *interface{} numbers
+// are converted to int64 or float64
+func Unmarshal(data []byte, v interface{}) error {
+ preserveIntFloat := func(d *json.Decoder) *json.Decoder {
+ d.UseNumber()
+ return d
+ }
+ switch v := v.(type) {
+ case *map[string]interface{}:
+ if err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {
+ return err
+ }
+ return jsonutil.ConvertMapNumbers(*v, 0)
+ case *[]interface{}:
+ if err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {
+ return err
+ }
+ return jsonutil.ConvertSliceNumbers(*v, 0)
+ case *interface{}:
+ if err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {
+ return err
+ }
+ return jsonutil.ConvertInterfaceNumbers(v, 0)
+ default:
+ return yaml.Unmarshal(data, v)
+ }
+}
+
// ToJSON converts a single YAML document into a JSON document
// or returns an error. If the document appears to be JSON the
// YAML decoding path is not used (so that error messages are