From b30a1b5250d1b1f2f9f3dc31c8f6b4748a539364 Mon Sep 17 00:00:00 2001 From: andres-portainer <91705312+andres-portainer@users.noreply.github.com> Date: Mon, 27 Jan 2025 16:00:05 -0300 Subject: [PATCH] fix(edgestacks): avoid repeated statuses BE-11561 (#351) --- api/http/handler/edgestacks/edgestack_status_update.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/http/handler/edgestacks/edgestack_status_update.go b/api/http/handler/edgestacks/edgestack_status_update.go index fc8ea8018..4cf912030 100644 --- a/api/http/handler/edgestacks/edgestack_status_update.go +++ b/api/http/handler/edgestacks/edgestack_status_update.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "net/http" + "slices" "strconv" "time" @@ -136,7 +137,11 @@ func updateEnvStatus(environmentId portainer.EndpointID, stack *portainer.EdgeSt } } - environmentStatus.Status = append(environmentStatus.Status, deploymentStatus) + if containsStatus := slices.ContainsFunc(environmentStatus.Status, func(e portainer.EdgeStackDeploymentStatus) bool { + return e.Type == deploymentStatus.Type + }); !containsStatus { + environmentStatus.Status = append(environmentStatus.Status, deploymentStatus) + } stack.Status[environmentId] = environmentStatus }