Commit 8965fcaf authored by Fabiano Franz's avatar Fabiano Franz

Fix handling lists in kubectl convert

parent 52ca344c
...@@ -22,6 +22,7 @@ import ( ...@@ -22,6 +22,7 @@ import (
"os" "os"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl"
...@@ -161,26 +162,32 @@ func (o *ConvertOptions) RunConvert() error { ...@@ -161,26 +162,32 @@ func (o *ConvertOptions) RunConvert() error {
return err return err
} }
count := 0 singular := false
err = r.Visit(func(info *resource.Info, err error) error { infos, err := r.IntoSingular(&singular).Infos()
if err != nil { if err != nil {
return err return err
} }
infos := []*resource.Info{info} if len(infos) == 0 {
objects, err := resource.AsVersionedObject(infos, false, o.outputVersion, o.encoder) return fmt.Errorf("no objects passed to convert")
}
objects, err := resource.AsVersionedObject(infos, !singular, o.outputVersion, o.encoder)
if err != nil { if err != nil {
return err return err
} }
count++ if meta.IsListType(objects) {
return o.printer.PrintObj(objects, o.out) _, items, err := cmdutil.FilterResourceList(objects, nil, nil)
})
if err != nil { if err != nil {
return err return err
} }
if count == 0 { filteredObj, err := cmdutil.ObjectListToVersionedObject(items, o.outputVersion)
return fmt.Errorf("no objects passed to convert") if err != nil {
return err
} }
return nil return o.printer.PrintObj(filteredObj, o.out)
}
return o.printer.PrintObj(objects, o.out)
} }
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