fix flag formatting in Orbit (#7981)

This commit is contained in:
Roberto Dip 2022-09-27 16:31:23 -03:00 committed by GitHub
parent a79a249d81
commit 474fd8fab8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 5 deletions

View file

@ -4,14 +4,16 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/fleetdm/fleet/v4/orbit/pkg/constant"
"github.com/fleetdm/fleet/v4/server/service"
"github.com/rs/zerolog/log"
"os"
"path/filepath"
"reflect"
"strconv"
"strings"
"time"
"github.com/fleetdm/fleet/v4/orbit/pkg/constant"
"github.com/fleetdm/fleet/v4/server/service"
"github.com/rs/zerolog/log"
)
// FlagRunner is a specialized runner to periodically check and update flags from Fleet
@ -144,8 +146,18 @@ func getFlagsFromJSON(flags json.RawMessage) (map[string]string, error) {
}
for k, v := range data {
result["--"+k] = fmt.Sprintf("%v", v)
switch t := v.(type) {
case string:
result["--"+k] = t
case bool:
result["--"+k] = strconv.FormatBool(t)
case float64:
result["--"+k] = fmt.Sprintf("%.f", v)
default:
result["--"+k] = fmt.Sprintf("%v", v)
}
}
return result, nil
}

View file

@ -8,7 +8,7 @@ import (
"github.com/stretchr/testify/require"
)
var rawJSONFlags = json.RawMessage(`{"verbose":true, "num":5, "hello":"world"}`)
var rawJSONFlags = json.RawMessage(`{"verbose":true, "num":5, "hello":"world", "largeNum":1234567890}`)
func TestGetFlagsFromJson(t *testing.T) {
flagsJson, err := getFlagsFromJSON(rawJSONFlags)
@ -39,6 +39,14 @@ func TestGetFlagsFromJson(t *testing.T) {
if value != "world" {
t.Errorf(`expected "world", got %s`, value)
}
value, ok = flagsJson["--largeNum"]
if !ok {
t.Errorf(`key "--largeNum" expected but not found`)
}
if value != "1234567890" {
t.Errorf(`expected "1234567890", got %s`, value)
}
}
func TestWriteFlagFile(t *testing.T) {