mirror of
https://github.com/harness/drone.git
synced 2025-05-20 19:09:59 +08:00
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:
parent
9548ba0cee
commit
a8ea70c96d
@ -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
|
||||
}
|
||||
|
@ -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,
|
||||
}
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user