Merge pull request #4775 from dokku/vector-escaped-uri-support

Add support for url-encoded vector-sink config values …
This commit is contained in:
Jose Diaz-Gonzalez
2021-09-11 01:32:15 -04:00
committed by GitHub
4 changed files with 74 additions and 18 deletions

View File

@@ -434,7 +434,7 @@ func PropertyWrite(pluginName string, appName string, property string, value str
}
defer file.Close()
fmt.Fprintf(file, value)
fmt.Fprint(file, value)
file.Chmod(0600)
SetPermissions(propertyPath, 0600)
return nil

View File

@@ -1,6 +1,7 @@
package logs
import (
"bytes"
"encoding/json"
"errors"
"fmt"
@@ -128,23 +129,9 @@ func sinkValueToConfig(appName string, sinkValue string) (vectorSink, error) {
u.Scheme = strings.ReplaceAll(u.Scheme, "-", "_")
t := fmt.Sprintf("type=%s", u.Scheme)
i := fmt.Sprintf("inputs[]=docker-source:%s", appName)
if appName == "--global" {
i = "inputs[]=docker-global-source"
}
if appName == "--null" {
i = "inputs[]=docker-null-source"
}
initialQuery := fmt.Sprintf("%s&%s", t, i)
query := u.RawQuery
if query == "" {
query = initialQuery
} else if strings.HasPrefix(query, "&") {
query = fmt.Sprintf("%s%s", initialQuery, query)
} else {
query = fmt.Sprintf("%s&%s", initialQuery, query)
if strings.HasPrefix(query, "&") {
query = strings.TrimPrefix(query, "&")
}
b, err := qson.ToJSON(query)
@@ -156,6 +143,15 @@ func sinkValueToConfig(appName string, sinkValue string) (vectorSink, error) {
return data, err
}
data["type"] = u.Scheme
data["inputs"] = []string{"docker-source:" + appName}
if appName == "--global" {
data["inputs"] = []string{"docker-global-source"}
}
if appName == "--null" {
data["inputs"] = []string{"docker-null-source"}
}
return data, nil
}
@@ -222,6 +218,8 @@ func writeVectorConfig() error {
return err
}
b = bytes.Replace(b, []byte("\\u0026"), []byte("&"), -1)
vectorConfig := filepath.Join(common.MustGetEnv("DOKKU_LIB_ROOT"), "data", "logs", "vector.json")
if err := common.WriteSliceToFile(vectorConfig, []string{string(b)}); err != nil {
return err