Merge pull request #46598 from xiangpengzhao/fix-kubectl-version

Automatic merge from submit-queue (batch tested with PRs 46210, 48607, 46874, 46598, 49240)

Make "kubectl version" json format output more readable.

**What this PR does / why we need it**:
##39858 adds a flag --output to `kubectl version`, but the json format output is displayed in one line. It's not so readable. This PR fixes it.

and

- adds a shorthand for `output`
- ~~refactors that: if `--short` is specified, `--output` will be ignored~~

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #43750

**Special notes for your reviewer**:
/cc @php-coder @alejandroEsc 

**Release note**:

```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue 2017-07-21 17:00:21 -07:00 committed by GitHub
commit 22cc294364
2 changed files with 3 additions and 3 deletions

View File

@ -327,7 +327,7 @@ kube::test::version::object_to_file() {
kube::test::version::json_object_to_file() {
flags=$1
file=$2
kubectl version $flags --output json | sed -e s/'\"'/''/g -e s/'}'/''/g -e s/'{'/''/g -e s/'clientVersion:'/'clientVersion:,'/ -e s/'serverVersion:'/'serverVersion:,'/ | tr , '\n' > "${file}"
kubectl version $flags --output json | sed -e s/' '/''/g -e s/'\"'/''/g -e s/'}'/''/g -e s/'{'/''/g -e s/'clientVersion:'/'clientVersion:,'/ -e s/'serverVersion:'/'serverVersion:,'/ | tr , '\n' > "${file}"
}
kube::test::version::json_client_server_object_to_file() {

View File

@ -66,7 +66,7 @@ func NewCmdVersion(f cmdutil.Factory, out io.Writer) *cobra.Command {
}
cmd.Flags().BoolP("client", "c", false, "Client version only (no server required).")
cmd.Flags().BoolP("short", "", false, "Print just the version number.")
cmd.Flags().String("output", "", "one of 'yaml' or 'json'")
cmd.Flags().StringP("output", "o", "", "One of 'yaml' or 'json'.")
cmd.Flags().MarkShorthandDeprecated("client", "please use --client instead.")
return cmd
}
@ -117,7 +117,7 @@ func (o *VersionOptions) Run(f cmdutil.Factory, out io.Writer) error {
}
fmt.Fprintln(out, string(marshalled))
case "json":
marshalled, err := json.Marshal(&versionInfo)
marshalled, err := json.MarshalIndent(&versionInfo, "", " ")
if err != nil {
return err
}