From 4c06ed8c04a7072dcf91c81a38ab645f3e293d66 Mon Sep 17 00:00:00 2001 From: "Md. Ishtiaq Islam" Date: Thu, 18 Jan 2024 14:56:30 +0600 Subject: [PATCH 1/2] Upsert task params Signed-off-by: Md. Ishtiaq Islam --- pkg/util/addon.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/pkg/util/addon.go b/pkg/util/addon.go index cff35cbf4..098d9ea7a 100644 --- a/pkg/util/addon.go +++ b/pkg/util/addon.go @@ -60,8 +60,8 @@ func ExtractAddonInfo(appClient appcatalog_cs.Interface, task v1beta1.TaskRef, t addon.RestoreTask.Name = task.Name } if len(task.Params) != 0 { - addon.BackupTask.Params = getTaskParams(task) - addon.RestoreTask.Params = getTaskParams(task) + addon.BackupTask.Params = upsertParams(addon.BackupTask.Params, getTaskParams(task)) + addon.RestoreTask.Params = upsertParams(addon.BackupTask.Params, getTaskParams(task)) } return &addon, nil @@ -75,3 +75,24 @@ func getTaskParams(task v1beta1.TaskRef) []appcat.Param { } return params } + +func upsertParams(oldParams, newParams []appcat.Param) []appcat.Param { + newParamsMap := make(map[string]appcat.Param) + + for _, newParam := range newParams { + newParamsMap[newParam.Name] = newParam + } + + for _, oldParam := range oldParams { + if _, found := newParamsMap[oldParam.Name]; !found { + newParamsMap[oldParam.Name] = oldParam + } + } + + var resultParams []appcat.Param + for _, param := range newParamsMap { + resultParams = append(resultParams, param) + } + + return resultParams +} From 33e50617cc7b6cb9214d3e02d132e155a874e215 Mon Sep 17 00:00:00 2001 From: "Md. Ishtiaq Islam" Date: Fri, 19 Jan 2024 11:14:28 +0600 Subject: [PATCH 2/2] Resolve review comments Signed-off-by: Md. Ishtiaq Islam --- pkg/util/addon.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/util/addon.go b/pkg/util/addon.go index 098d9ea7a..bb8d762c4 100644 --- a/pkg/util/addon.go +++ b/pkg/util/addon.go @@ -77,22 +77,22 @@ func getTaskParams(task v1beta1.TaskRef) []appcat.Param { } func upsertParams(oldParams, newParams []appcat.Param) []appcat.Param { - newParamsMap := make(map[string]appcat.Param) + paramMap := make(map[string]appcat.Param) for _, newParam := range newParams { - newParamsMap[newParam.Name] = newParam + paramMap[newParam.Name] = newParam } for _, oldParam := range oldParams { - if _, found := newParamsMap[oldParam.Name]; !found { - newParamsMap[oldParam.Name] = oldParam + if _, found := paramMap[oldParam.Name]; !found { + paramMap[oldParam.Name] = oldParam } } - var resultParams []appcat.Param - for _, param := range newParamsMap { - resultParams = append(resultParams, param) + var updatedParams []appcat.Param + for _, param := range paramMap { + updatedParams = append(updatedParams, param) } - return resultParams + return updatedParams }