From a8ea70c96d76ba86e7df50da91532731a9eaa7ae Mon Sep 17 00:00:00 2001 From: Ansuman Satapathy Date: Fri, 9 Aug 2024 14:23:31 +0000 Subject: [PATCH] feat: [CDE-192]: use json library to serde (#2451) * feat: [CDE-192]: use json library to serde * feat: [CDE-192]: use json library to serde * feat: [CDE-192]: use json library to serde * feat: [CDE-192]: use json library to serde --- app/gitspace/infrastructure/find.go | 5 ++- app/gitspace/infrastructure/provision.go | 7 ++-- .../infrastructure/provisioner_impl.go | 35 ++++++------------- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/app/gitspace/infrastructure/find.go b/app/gitspace/infrastructure/find.go index 1b71a5231..0430dcc40 100644 --- a/app/gitspace/infrastructure/find.go +++ b/app/gitspace/infrastructure/find.go @@ -73,7 +73,10 @@ func (i infraProvisioner) paramsForProvisioningTypeNew( gitspaceConfig.GitspaceInstance.ID, err) } - allParams := stringToParams(infraProvisionedLatest.InputParams) + allParams, err := deserializeInfraProviderParams(infraProvisionedLatest.InputParams) + if err != nil { + return nil, err + } return allParams, nil } diff --git a/app/gitspace/infrastructure/provision.go b/app/gitspace/infrastructure/provision.go index 18522dfa8..a2a844d53 100644 --- a/app/gitspace/infrastructure/provision.go +++ b/app/gitspace/infrastructure/provision.go @@ -85,14 +85,17 @@ func (i infraProvisioner) triggerProvisionForNewProvisioning( } now := time.Now() - + paramsBytes, err := serializeInfraProviderParams(allParams) + if err != nil { + return err + } infraProvisioned := &types.InfraProvisioned{ GitspaceInstanceID: gitspaceConfig.GitspaceInstance.ID, InfraProviderType: infraProviderType, InfraProviderResourceID: infraProviderResource.ID, Created: now.UnixMilli(), Updated: now.UnixMilli(), - InputParams: paramsToString(allParams), + InputParams: paramsBytes, InfraStatus: enum.InfraStatusPending, SpaceID: gitspaceConfig.SpaceID, } diff --git a/app/gitspace/infrastructure/provisioner_impl.go b/app/gitspace/infrastructure/provisioner_impl.go index 512014bc0..b429c2de0 100644 --- a/app/gitspace/infrastructure/provisioner_impl.go +++ b/app/gitspace/infrastructure/provisioner_impl.go @@ -19,7 +19,6 @@ import ( "encoding/json" "fmt" "strconv" - "strings" "time" "github.com/harness/gitness/app/store" @@ -30,8 +29,6 @@ import ( var _ InfraProvisioner = (*infraProvisioner)(nil) -const paramSeparator = "\n===============\n" - type Config struct { AgentPort int } @@ -132,31 +129,21 @@ func (i infraProvisioner) paramsFromResource( return params } -func paramsToString(in []types.InfraProviderParameter) string { - var output = "" - for _, value := range in { - if value.Name == "" || value.Value == "" { - continue - } - output += value.Name + "=" + value.Value + paramSeparator +func serializeInfraProviderParams(in []types.InfraProviderParameter) (string, error) { + output, err := json.Marshal(in) + if err != nil { + return "", fmt.Errorf("unable to marshal infra provider params: %w", err) } - return output + return string(output), nil } -func stringToParams(in string) []types.InfraProviderParameter { - var output = make([]types.InfraProviderParameter, 0) - paramsRaw := strings.Split(in, paramSeparator) - for _, value := range paramsRaw { - parts := strings.Split(value, "=") - if len(parts) != 2 || parts[0] == "" || parts[1] == "" { - continue - } - output = append(output, types.InfraProviderParameter{ - Name: parts[0], - Value: parts[1], - }) +func deserializeInfraProviderParams(in string) ([]types.InfraProviderParameter, error) { + var parameters []types.InfraProviderParameter + err := json.Unmarshal([]byte(in), ¶meters) + if err != nil { + return nil, fmt.Errorf("unable to unmarshal infra provider params %+v: %w", in, err) } - return output + return parameters, nil } func (i infraProvisioner) responseMetadata(infra types.Infrastructure) (string, error) {