Commit 3a2a01bd authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #44930 from fabianofranz/issue_44832

Automatic merge from submit-queue (batch tested with PRs 44044, 44766, 44930, 45109, 43301) Fixes get -oname for unstructured objects Fixes https://github.com/kubernetes/kubernetes/issues/44832 Make sure we display kind in `kubectl get -o name` for unknown resource types. **Release note**: ```release-note NONE ```
parents 10f90b66 1aa84d10
...@@ -1362,6 +1362,8 @@ __EOF__ ...@@ -1362,6 +1362,8 @@ __EOF__
kubectl "${kube_flags[@]}" get foos/test -o "jsonpath={.someField}" --allow-missing-template-keys=false kubectl "${kube_flags[@]}" get foos/test -o "jsonpath={.someField}" --allow-missing-template-keys=false
kubectl "${kube_flags[@]}" get foos -o "go-template={{range .items}}{{.someField}}{{end}}" --allow-missing-template-keys=false kubectl "${kube_flags[@]}" get foos -o "go-template={{range .items}}{{.someField}}{{end}}" --allow-missing-template-keys=false
kubectl "${kube_flags[@]}" get foos/test -o "go-template={{.someField}}" --allow-missing-template-keys=false kubectl "${kube_flags[@]}" get foos/test -o "go-template={{.someField}}" --allow-missing-template-keys=false
output_message=$(kubectl get foos/test -o name)
kube::test::if_has_string "${output_message}" 'foos/test'
# Test patching # Test patching
kube::log::status "Testing ThirdPartyResource patching" kube::log::status "Testing ThirdPartyResource patching"
......
...@@ -48,7 +48,10 @@ func NewBuilderFactory(clientAccessFactory ClientAccessFactory, objectMappingFac ...@@ -48,7 +48,10 @@ func NewBuilderFactory(clientAccessFactory ClientAccessFactory, objectMappingFac
} }
func (f *ring2Factory) PrinterForCommand(cmd *cobra.Command) (printers.ResourcePrinter, bool, error) { func (f *ring2Factory) PrinterForCommand(cmd *cobra.Command) (printers.ResourcePrinter, bool, error) {
mapper, typer := f.objectMappingFactory.Object() mapper, typer, err := f.objectMappingFactory.UnstructuredObject()
if err != nil {
return nil, false, err
}
// TODO: used by the custom column implementation and the name implementation, break this dependency // TODO: used by the custom column implementation and the name implementation, break this dependency
decoders := []runtime.Decoder{f.clientAccessFactory.Decoder(true), unstructured.UnstructuredJSONScheme} decoders := []runtime.Decoder{f.clientAccessFactory.Decoder(true), unstructured.UnstructuredJSONScheme}
return PrinterForCommand(cmd, mapper, typer, decoders) return PrinterForCommand(cmd, mapper, typer, decoders)
......
...@@ -62,26 +62,24 @@ func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error { ...@@ -62,26 +62,24 @@ func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error {
} }
} }
kind := obj.GetObjectKind().GroupVersionKind() groupVersionKind := obj.GetObjectKind().GroupVersionKind()
if len(kind.Kind) == 0 { if len(groupVersionKind.Kind) > 0 {
if gvks, _, err := p.Typer.ObjectKinds(obj); err == nil { if mappings, err := p.Mapper.RESTMappings(groupVersionKind.GroupKind(), groupVersionKind.Version); err == nil && len(mappings) > 0 {
for _, gvk := range gvks { fmt.Fprintf(w, "%s/%s\n", mappings[0].Resource, name)
if mappings, err := p.Mapper.RESTMappings(gvk.GroupKind(), gvk.Version); err == nil && len(mappings) > 0 { return nil
fmt.Fprintf(w, "%s/%s\n", mappings[0].Resource, name)
}
}
} else {
fmt.Fprintf(w, "<unknown>/%s\n", name)
} }
}
} else { if gvks, _, err := p.Typer.ObjectKinds(obj); err == nil {
if mappings, err := p.Mapper.RESTMappings(kind.GroupKind(), kind.Version); err == nil && len(mappings) > 0 { for _, gvk := range gvks {
fmt.Fprintf(w, "%s/%s\n", mappings[0].Resource, name) if mappings, err := p.Mapper.RESTMappings(gvk.GroupKind(), gvk.Version); err == nil && len(mappings) > 0 {
} else { fmt.Fprintf(w, "%s/%s\n", mappings[0].Resource, name)
fmt.Fprintf(w, "<unknown>/%s\n", name) return nil
}
} }
} }
fmt.Fprintf(w, "<unknown>/%s\n", name)
return nil return nil
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment