Fix kubectl explain for cronjobs

This commit is contained in:
Maciej Szulik 2018-01-24 17:22:38 +01:00
parent 2f4cca73af
commit c7efab40b6
2 changed files with 9 additions and 16 deletions

View File

@ -4120,6 +4120,8 @@ run_kubectl_explain_tests() {
# shortcuts work # shortcuts work
kubectl explain po kubectl explain po
kubectl explain po.status.message kubectl explain po.status.message
# cronjob work
kubectl explain cronjob
set +o nounset set +o nounset
set +o errexit set +o errexit

View File

@ -26,19 +26,18 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates" "k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/explain" "k8s.io/kubernetes/pkg/kubectl/explain"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/kubectl/util/i18n"
) )
var ( var (
explainLong = templates.LongDesc(` explainLong = templates.LongDesc(`
List the fields for supported resources List the fields for supported resources
This command describes the fields associated with each supported API resource. This command describes the fields associated with each supported API resource.
Fields are identified via a simple JSONPath identifier: Fields are identified via a simple JSONPath identifier:
<type>.<fieldName>[.<fieldName>] <type>.<fieldName>[.<fieldName>]
Add the --recursive flag to display all of the fields at once without descriptions. Add the --recursive flag to display all of the fields at once without descriptions.
Information about each field is retrieved from the server in OpenAPI format.`) Information about each field is retrieved from the server in OpenAPI format.`)
@ -81,7 +80,6 @@ func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, ar
recursive := cmdutil.GetFlagBool(cmd, "recursive") recursive := cmdutil.GetFlagBool(cmd, "recursive")
apiVersionString := cmdutil.GetFlagString(cmd, "api-version") apiVersionString := cmdutil.GetFlagString(cmd, "api-version")
apiVersion := schema.GroupVersion{}
mapper, _ := f.Object() mapper, _ := f.Object()
// TODO: After we figured out the new syntax to separate group and resource, allow // TODO: After we figured out the new syntax to separate group and resource, allow
@ -105,20 +103,13 @@ func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, ar
} }
} }
if len(apiVersionString) == 0 { if len(apiVersionString) != 0 {
groupMeta, err := scheme.Registry.Group(gvk.Group) apiVersion, err := schema.ParseGroupVersion(apiVersionString)
if err != nil {
return err
}
apiVersion = groupMeta.GroupVersion
} else {
apiVersion, err = schema.ParseGroupVersion(apiVersionString)
if err != nil { if err != nil {
return err return err
} }
gvk = apiVersion.WithKind(gvk.Kind)
} }
gvk = apiVersion.WithKind(gvk.Kind)
resources, err := f.OpenAPISchema() resources, err := f.OpenAPISchema()
if err != nil { if err != nil {