kubectl exec: return descriptive error message when multi resource passed
`kubectl exec` command supports getting files as inputs. However, if the file contains multiple resources, it returns unclear error message; `cannot attach to *v1.List: selector for *v1.List not implemented`. Since `exec` command does not support multi resources, this PR handles that and returns descriptive error message earlier. Kubernetes-commit: 832644f0b38d536be7a5adce9bc62b0902710091
This commit is contained in:
parent
5e6630dc37
commit
7eb74e036f
|
|
@ -33,6 +33,7 @@ import (
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
cmdutil "k8s.io/kubectl/pkg/cmd/util"
|
cmdutil "k8s.io/kubectl/pkg/cmd/util"
|
||||||
"k8s.io/kubectl/pkg/cmd/util/podcmd"
|
"k8s.io/kubectl/pkg/cmd/util/podcmd"
|
||||||
"k8s.io/kubectl/pkg/polymorphichelpers"
|
"k8s.io/kubectl/pkg/polymorphichelpers"
|
||||||
|
|
@ -310,6 +311,10 @@ func (p *ExecOptions) Run() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if meta.IsListType(obj) {
|
||||||
|
return fmt.Errorf("cannot exec into multiple objects at a time")
|
||||||
|
}
|
||||||
|
|
||||||
p.Pod, err = p.ExecutablePodFn(p.restClientGetter, obj, p.GetPodTimeout)
|
p.Pod, err = p.ExecutablePodFn(p.restClientGetter, obj, p.GetPodTimeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue