From de86f23ef1290a6a9406de3d2c449a994b2ea131 Mon Sep 17 00:00:00 2001 From: joohwan Date: Mon, 15 Apr 2024 19:40:12 +0800 Subject: [PATCH] fix:better error Signed-off-by: joohwan --- .../image_prepull_controller.go | 3 +- cloud/pkg/taskmanager/manager/executor.go | 31 ++++++++++++------- .../node_upgrade_controller.go | 3 +- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/cloud/pkg/taskmanager/imageprepullcontroller/image_prepull_controller.go b/cloud/pkg/taskmanager/imageprepullcontroller/image_prepull_controller.go index 4fe078e4b70..7aa37b2283e 100644 --- a/cloud/pkg/taskmanager/imageprepullcontroller/image_prepull_controller.go +++ b/cloud/pkg/taskmanager/imageprepullcontroller/image_prepull_controller.go @@ -325,8 +325,7 @@ func (ndc *ImagePrePullController) imagePrePullJobUpdated(pullJob *v1alpha1.Imag func (ndc *ImagePrePullController) GetTaskNodes(name string) ([]string, error) { imagePrePullJob, err := ndc.CrdClient.OperationsV1alpha1().ImagePrePullJobs().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { - klog.Infof("ImagePrePullTask %s not exist", name) - return nil, err + return nil, fmt.Errorf("failed to get ImagePrePullTaskNodes(%s) , err: %v", name, err) } return imagePrePullJob.Spec.ImagePrePullTemplate.NodeNames, nil } diff --git a/cloud/pkg/taskmanager/manager/executor.go b/cloud/pkg/taskmanager/manager/executor.go index d3ec4b324be..3cbbe23ac23 100644 --- a/cloud/pkg/taskmanager/manager/executor.go +++ b/cloud/pkg/taskmanager/manager/executor.go @@ -40,6 +40,7 @@ import ( api "github.com/kubeedge/kubeedge/pkg/apis/fsm/v1alpha1" "github.com/kubeedge/kubeedge/pkg/apis/operations/v1alpha1" "github.com/kubeedge/kubeedge/pkg/util/fsm" + "github.com/pkg/errors" ) const TimeOutSecond = 300 @@ -210,25 +211,33 @@ func initExecutor(message util.TaskMessage) (*Executor, error) { if len(nodeStatus) == 0 { nodeList := controller.ValidateNode(message) if len(nodeList) == 0 { - nodes, _ := controller.GetTaskNodes(message.Name) - nodeStatus = make([]v1alpha1.TaskStatus, len(nodes)) - for i, nodeName := range nodes { - nodeStatus[i] = v1alpha1.TaskStatus{NodeName: nodeName, State: api.TaskFailed} - } - err = controller.UpdateNodeStatus(message.Name, nodeStatus) + nodes, err := controller.GetTaskNodes(message.Name) if err != nil { - return nil, err + return nil, errors.Wrap(err, "failed to retrieve nodes for tasks") + } + + if len(nodes) == 0 { + return nil, errors.New("no nodes available to handle tasks") + } + + nodeStatus = make([]v1alpha1.TaskStatus, 0, len(nodes)) + for _, nodeName := range nodes { + nodeStatus = append(nodeStatus, v1alpha1.TaskStatus{NodeName: nodeName, State: api.TaskFailed}) } - return nil, fmt.Errorf("no node need to be upgrade") + + if err := controller.UpdateNodeStatus(message.Name, nodeStatus); err != nil { + return nil, errors.Wrap(err, "failed to update node status") + } + return nil, nil } nodeStatus = make([]v1alpha1.TaskStatus, len(nodeList)) for i, node := range nodeList { nodeStatus[i] = v1alpha1.TaskStatus{NodeName: node.Name} } - err = controller.UpdateNodeStatus(message.Name, nodeStatus) - if err != nil { - return nil, err + + if err := controller.UpdateNodeStatus(message.Name, nodeStatus); err != nil { + return nil, errors.Wrap(err, "failed to update node status") } } e := &Executor{ diff --git a/cloud/pkg/taskmanager/nodeupgradecontroller/node_upgrade_controller.go b/cloud/pkg/taskmanager/nodeupgradecontroller/node_upgrade_controller.go index 66f4ef9fbf0..47b0450b775 100644 --- a/cloud/pkg/taskmanager/nodeupgradecontroller/node_upgrade_controller.go +++ b/cloud/pkg/taskmanager/nodeupgradecontroller/node_upgrade_controller.go @@ -213,8 +213,7 @@ func patchStatus(nodeUpgrade *v1alpha1.NodeUpgradeJob, status v1alpha1.NodeUpgra func (ndc *NodeUpgradeController) GetTaskNodes(name string) ([]string, error) { nodeUpgradeJob, err := ndc.CrdClient.OperationsV1alpha1().NodeUpgradeJobs().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { - klog.Infof("NodeUpgradeTask %s not exist", name) - return nil, err + return nil, fmt.Errorf("failed to get NodeUpgradeTaskNodes(%s) , err: %v", name, err) } return nodeUpgradeJob.Spec.NodeNames, nil }