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
This commit is contained in:
Ansuman Satapathy 2024-08-09 14:23:31 +00:00 committed by Harness
parent 9548ba0cee
commit a8ea70c96d
3 changed files with 20 additions and 27 deletions

View File

@ -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
}

View File

@ -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,
}

View File

@ -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), &parameters)
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) {