fix: allow underscores in vector schemes

Also unify tests for global and non-global logs:set calls
This commit is contained in:
Jose Diaz-Gonzalez
2021-01-23 19:00:33 -05:00
parent aeb9241d3b
commit dfc98ecc0f
3 changed files with 100 additions and 6 deletions

View File

@@ -109,9 +109,14 @@ func stopVectorContainer() error {
})
}
func valueToConfig(appName string, value string) (vectorSink, error) {
func sinkValueToConfig(appName string, sinkValue string) (vectorSink, error) {
var data vectorSink
u, err := url.Parse(value)
if strings.Contains(sinkValue, "://") {
parts := strings.SplitN(sinkValue, "://", 2)
parts[0] = strings.ReplaceAll(parts[0], "_", "-")
sinkValue = strings.Join(parts, "://")
}
u, err := url.Parse(sinkValue)
if err != nil {
return data, err
}
@@ -120,6 +125,8 @@ func valueToConfig(appName string, value string) (vectorSink, error) {
return data, errors.New("Invalid option sinks")
}
u.Scheme = strings.ReplaceAll(u.Scheme, "-", "_")
t := fmt.Sprintf("type=%s", u.Scheme)
i := fmt.Sprintf("inputs[]=docker-source:%s", appName)
if appName == "--global" {
@@ -163,7 +170,7 @@ func writeVectorConfig() error {
continue
}
sink, err := valueToConfig(appName, value)
sink, err := sinkValueToConfig(appName, value)
if err != nil {
return err
}
@@ -178,7 +185,7 @@ func writeVectorConfig() error {
value := common.PropertyGet("logs", "--global", "vector-sink")
if value != "" {
sink, err := valueToConfig("--global", value)
sink, err := sinkValueToConfig("--global", value)
if err != nil {
return err
}
@@ -201,7 +208,7 @@ func writeVectorConfig() error {
if len(data.Sinks) == 0 {
// write logs to a blackhole
sink, err := valueToConfig("--null", "blackhole://?print_amount=1")
sink, err := sinkValueToConfig("--null", "blackhole://?print_amount=1")
if err != nil {
return err
}

View File

@@ -49,7 +49,7 @@ func validateVectorSink(appName string, value string) error {
return nil
}
_, err := valueToConfig(appName, value)
_, err := sinkValueToConfig(appName, value)
if err != nil {
return err
}