From b849d65b3286fe279705ea6cd9c6b16d32a07707 Mon Sep 17 00:00:00 2001 From: Filipe Brandenburger Date: Tue, 9 Sep 2014 14:28:43 -0700 Subject: [PATCH] Uniformize handling of -server_version flag of kubecfg to match -version. In particular, add support for -server_version=raw and use matching format for the output of -version and -server_version. The "normal" format is essentially defined by (version.Info) String() method, so future updates to that method will be reflected on both. Full version information is still available by using the "raw" flag. Tested: - Used cluster/kubecfg.sh to query local build and the server. $ cluster/kubecfg.sh -version Kubernetes version 0.2+, build 9316edfc0d2b28923fbb6eafa38458350859f926 $ cluster/kubecfg.sh -server_version Server: Kubernetes version 0.2, build a0abb3815755d6a77eed2d07bb0aa7d255e4e769 $ cluster/kubecfg.sh -version=raw version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-25-g9316edfc0d2b28", GitCommit:"9316edfc0d2b28923fbb6eafa38458350859f926", GitTreeState:"clean"} $ cluster/kubecfg.sh -server_version=raw version.Info{Major:"0", Minor:"2", GitVersion:"v0.2", GitCommit:"a0abb3815755d6a77eed2d07bb0aa7d255e4e769", GitTreeState:"clean"} Fixes: #1092 Signed-off-by: Filipe Brandenburger --- cmd/kubecfg/kubecfg.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/kubecfg/kubecfg.go b/cmd/kubecfg/kubecfg.go index 584a13f68f8..501fc494702 100644 --- a/cmd/kubecfg/kubecfg.go +++ b/cmd/kubecfg/kubecfg.go @@ -39,7 +39,7 @@ import ( ) var ( - serverVersion = flag.Bool("server_version", false, "Print the server's version number.") + serverVersion = verflag.Version("server_version", verflag.VersionFalse, "Print the server's version information and quit") preventSkew = flag.Bool("expect_version_match", false, "Fail if server's version doesn't match own version.") httpServer = flag.String("h", "", "The host to connect to.") config = flag.String("c", "", "Path to the config file.") @@ -152,14 +152,19 @@ func main() { } } - if *serverVersion { + if *serverVersion != verflag.VersionFalse { got, err := kubeClient.ServerVersion() if err != nil { fmt.Printf("Couldn't read version from server: %v\n", err) os.Exit(1) } - fmt.Printf("Server Version: %#v\n", got) - os.Exit(0) + if *serverVersion == verflag.VersionRaw { + fmt.Printf("%#v\n", *got) + os.Exit(0) + } else { + fmt.Printf("Server: Kubernetes %s\n", got) + os.Exit(0) + } } if *preventSkew {