From 6dfe3cb04f4230b38cd51742435cf9203253a34d Mon Sep 17 00:00:00 2001 From: zhengjiajin Date: Mon, 5 Feb 2018 19:50:54 +0800 Subject: [PATCH] add more error logs in kubectl run --- pkg/kubectl/cmd/run.go | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/pkg/kubectl/cmd/run.go b/pkg/kubectl/cmd/run.go index 6acf6e5548..25941cb615 100644 --- a/pkg/kubectl/cmd/run.go +++ b/pkg/kubectl/cmd/run.go @@ -30,6 +30,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/watch" api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" @@ -277,13 +278,14 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c params["env"] = cmdutil.GetFlagStringArray(cmd, "env") + allErrs := []error{} var runObjectMap = map[string]*RunObject{} runObject, err := createGeneratedObject(f, cmd, generator, names, params, cmdutil.GetFlagString(cmd, "overrides"), namespace) if err != nil { - return err + allErrs = append(allErrs, err) + } else { + runObjectMap[generatorName] = runObject } - runObjectMap[generatorName] = runObject - if cmdutil.GetFlagBool(cmd, "expose") { serviceGenerator := cmdutil.GetFlagString(cmd, "service-generator") if len(serviceGenerator) == 0 { @@ -291,9 +293,10 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c } serviceRunObject, err := generateService(f, cmd, args, serviceGenerator, params, namespace, cmdOut) if err != nil { - return err + allErrs = append(allErrs, err) + } else { + runObjectMap[generatorName] = serviceRunObject } - runObjectMap[generatorName] = serviceRunObject } if attach { @@ -401,13 +404,15 @@ func RunRun(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer, cmd *c } } - - outputFormat := cmdutil.GetFlagString(cmd, "output") - if outputFormat != "" || cmdutil.GetDryRunFlag(cmd) { - return f.PrintObject(cmd, false, runObject.Mapper, runObject.Object, cmdOut) + if runObject != nil { + outputFormat := cmdutil.GetFlagString(cmd, "output") + if outputFormat != "" || cmdutil.GetDryRunFlag(cmd) { + return f.PrintObject(cmd, false, runObject.Mapper, runObject.Object, cmdOut) + } + f.PrintSuccess(false, cmdOut, runObject.Mapping.Resource, args[0], cmdutil.GetDryRunFlag(cmd), "created") } - f.PrintSuccess(false, cmdOut, runObject.Mapping.Resource, args[0], cmdutil.GetDryRunFlag(cmd), "created") - return nil + + return utilerrors.NewAggregate(allErrs) } // waitForPod watches the given pod until the exitCondition is true