From 15c7e93f1422a88130181b39dec9b14cfda2b608 Mon Sep 17 00:00:00 2001 From: Vikranth Thati Date: Thu, 27 Dec 2018 12:31:45 +0530 Subject: [PATCH] Use pkg/util/json Marshal and Unmarshal instead of 'encoding/json' to preserve numbers, rather than casting to float64 automatically. --- .../cli-runtime/pkg/genericclioptions/printers/BUILD | 1 + .../pkg/genericclioptions/printers/template.go | 2 +- .../pkg/genericclioptions/printers/template_test.go | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/BUILD b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/BUILD index 2cbb55099d2..8792dad7188 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/BUILD +++ b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/BUILD @@ -20,6 +20,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/json:go_default_library", "//staging/src/k8s.io/client-go/util/jsonpath:go_default_library", "//vendor/sigs.k8s.io/yaml:go_default_library", ], diff --git a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template.go b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template.go index 5dd807dad99..ccff542262c 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template.go +++ b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template.go @@ -18,13 +18,13 @@ package printers import ( "encoding/base64" - "encoding/json" "fmt" "io" "reflect" "text/template" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/json" ) // GoTemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template. diff --git a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template_test.go b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template_test.go index 25841aa4def..e16f6181bcd 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template_test.go +++ b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers/template_test.go @@ -52,6 +52,14 @@ func TestTemplate(t *testing.T) { return "a base64 decode error", matched }, }, + { + name: "template 'eq' should not throw error for numbers", + template: "{{ eq .count 1}}", + obj: &v1.Event{ + Count: 1, + }, + expectOut: "true", + }, } for _, test := range testCase { t.Run(test.name, func(t *testing.T) {