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

Fix handling lists in kubectl convert

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