Skip to content

Commit

Permalink
fix: use unformatted templateName as args to PodName. Fixes #11250 (#…
Browse files Browse the repository at this point in the history
…11251)

Signed-off-by: James Slater <SlaterByte@users.noreply.github.com>
Co-authored-by: James Slater <SlaterByte@users.noreply.github.com>
  • Loading branch information
SlaterByte and SlaterByte committed Jul 4, 2023
1 parent b231579 commit e5dd864
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
20 changes: 10 additions & 10 deletions cmd/argo/commands/common/get.go
Expand Up @@ -478,25 +478,25 @@ func renderChild(w *tabwriter.Writer, wf *wfv1.Workflow, nInfo renderNode, depth

// Main method to print information of node in get
func printNode(w *tabwriter.Writer, node wfv1.NodeStatus, wfName, nodePrefix string, getArgs GetFlags, podNameVersion util.PodNameVersion) {
nodeName := fmt.Sprintf("%s %s", JobStatusIconMap[node.Phase], node.DisplayName)
nodeName := node.Name
fmtNodeName := fmt.Sprintf("%s %s", JobStatusIconMap[node.Phase], node.DisplayName)
if node.IsActiveSuspendNode() {
nodeName = fmt.Sprintf("%s %s", NodeTypeIconMap[node.Type], node.DisplayName)
fmtNodeName = fmt.Sprintf("%s %s", NodeTypeIconMap[node.Type], node.DisplayName)
}
templateName := ""
templateName := util.GetTemplateFromNode(node)
fmtTemplateName := ""
if node.TemplateRef != nil {
templateName = fmt.Sprintf("%s/%s", node.TemplateRef.Name, node.TemplateRef.Template)
fmtTemplateName = fmt.Sprintf("%s/%s", node.TemplateRef.Name, node.TemplateRef.Template)
} else if node.TemplateName != "" {
templateName = node.TemplateName
fmtTemplateName = node.TemplateName
}
var args []interface{}
duration := humanize.RelativeDurationShort(node.StartedAt.Time, node.FinishedAt.Time)
if node.Type == wfv1.NodeTypePod {
// node.Name is used here because nodeName may contain additionally formatting.
// We want to use the original naming to ensure the correct hash is dervied
podName := util.GeneratePodName(wfName, node.Name, templateName, node.ID, podNameVersion)
args = []interface{}{nodePrefix, nodeName, templateName, podName, duration, node.Message, ""}
podName := util.GeneratePodName(wfName, nodeName, templateName, node.ID, podNameVersion)
args = []interface{}{nodePrefix, fmtNodeName, fmtTemplateName, podName, duration, node.Message, ""}
} else {
args = []interface{}{nodePrefix, nodeName, templateName, "", "", node.Message, ""}
args = []interface{}{nodePrefix, fmtNodeName, fmtTemplateName, "", "", node.Message, ""}
}
if getArgs.Output == "wide" {
msg := args[len(args)-2]
Expand Down
11 changes: 8 additions & 3 deletions cmd/argo/commands/common/get_test.go
Expand Up @@ -59,6 +59,8 @@ func TestPrintNode(t *testing.T) {
timestamp := metav1.Time{
Time: time.Now(),
}

// Node without TemplateRef
node := wfv1.NodeStatus{
Name: nodeName,
Phase: wfv1.NodeRunning,
Expand All @@ -72,7 +74,9 @@ func TestPrintNode(t *testing.T) {
}
node.HostNodeName = kubernetesNodeName
// derive expected pod name:
expectedPodName := util.GeneratePodName(workflowName, nodeName, nodeTemplateName, nodeID, util.GetPodNameVersion())
templateName := util.GetTemplateFromNode(node)
expectedPodName := util.GeneratePodName(workflowName, nodeName, templateName, nodeID, util.GetPodNameVersion())

t.Log(expectedPodName)
testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s\t%s\t%s\t%s\t%s\n", JobStatusIconMap[wfv1.NodeRunning], nodeName, nodeTemplateName, expectedPodName, "0s", nodeMessage, ""), node, getArgs)

Expand Down Expand Up @@ -104,17 +108,18 @@ func TestPrintNode(t *testing.T) {
}

node.TemplateName = nodeTemplateName
expectedPodName = util.GeneratePodName(workflowName, nodeName, nodeTemplateName, nodeID, util.GetPodNameVersion())
testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s\t%s\t%s\t%s\t%s\n", JobStatusIconMap[wfv1.NodeRunning], nodeName, nodeTemplateName, expectedPodName, "0s", nodeMessage, ""), node, getArgs)

node.Type = wfv1.NodeTypeSuspend
testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s\t%s\t%s\t%s\t%s\n", NodeTypeIconMap[wfv1.NodeTypeSuspend], nodeName, nodeTemplateName, "", "", nodeMessage, ""), node, getArgs)

// Node with templateRef
node.TemplateName = ""
node.TemplateRef = &wfv1.TemplateRef{
Name: nodeTemplateRefName,
Template: nodeTemplateRefName,
}
templateName := fmt.Sprintf("%s/%s", node.TemplateRef.Name, node.TemplateRef.Template)
templateName = util.GetTemplateFromNode(node)
expectedPodName = util.GeneratePodName(workflowName, nodeName, templateName, nodeID, util.GetPodNameVersion())
testPrintNodeImpl(t, fmt.Sprintf("%s %s\t%s/%s\t%s\t%s\t%s\t%s\n", NodeTypeIconMap[wfv1.NodeTypeSuspend], nodeName, nodeTemplateRefName, nodeTemplateRefName, "", "", nodeMessage, ""), node, getArgs)

Expand Down

0 comments on commit e5dd864

Please sign in to comment.