Merge pull request #4660 from deads2k/deads-make-default-display-yaml

fix kubectl config view to respect serialization formats
This commit is contained in:
Clayton Coleman 2015-02-24 07:56:57 -08:00
commit 76926ec314
2 changed files with 43 additions and 2 deletions

View File

@ -18,6 +18,7 @@ package config
import (
"bytes"
"fmt"
"io/ioutil"
"os"
"reflect"
@ -47,6 +48,36 @@ type configCommandTest struct {
expectedOutputs []string
}
func ExampleView() {
expectedConfig := newRedFederalCowHammerConfig()
test := configCommandTest{
args: []string{"view"},
startingConfig: newRedFederalCowHammerConfig(),
expectedConfig: expectedConfig,
}
output := test.run(nil)
fmt.Printf("%v", output)
// Output:
// apiVersion: v1
// clusters:
// - cluster:
// server: http://cow.org:8080
// name: cow-cluster
// contexts:
// - context:
// cluster: cow-cluster
// user: red-user
// name: federal-context
// current-context: ""
// kind: Config
// preferences: {}
// users:
// - name: red-user
// user:
// token: red-token
}
func TestSetCurrentContext(t *testing.T) {
expectedConfig := newRedFederalCowHammerConfig()
expectedConfig.CurrentContext = "the-new-context"
@ -540,7 +571,7 @@ func testConfigCommand(args []string, startingConfig clientcmdapi.Config) (strin
return buf.String(), *config
}
func (test configCommandTest) run(t *testing.T) {
func (test configCommandTest) run(t *testing.T) string {
out, actualConfig := testConfigCommand(test.args, test.startingConfig)
testSetNilMapsToEmpties(reflect.ValueOf(&test.expectedConfig))
@ -556,6 +587,8 @@ func (test configCommandTest) run(t *testing.T) {
t.Errorf("expected '%s' in output, got '%s'", expectedOutput, out)
}
}
return out
}
func testSetNilMapsToEmpties(curr reflect.Value) {
actualCurrValue := curr

View File

@ -26,6 +26,8 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd"
clientcmdapi "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api/latest"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
)
@ -50,14 +52,20 @@ $ kubectl config view --local`,
Run: func(cmd *cobra.Command, args []string) {
options.complete()
printer, _, err := cmdutil.PrinterForCommand(cmd)
printer, generic, err := cmdutil.PrinterForCommand(cmd)
if err != nil {
glog.FatalDepth(1, err)
}
if generic {
version := cmdutil.OutputVersion(cmd, latest.Version)
printer = kubectl.NewVersionedPrinter(printer, clientcmdapi.Scheme, version)
}
config, err := options.loadConfig()
if err != nil {
glog.FatalDepth(1, err)
}
err = printer.PrintObj(config, out)
if err != nil {
glog.FatalDepth(1, err)