mirror of
https://github.com/dokku/dokku.git
synced 2026-02-24 04:00:36 +01:00
fix: allow underscores in vector schemes
Also unify tests for global and non-global logs:set calls
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -145,6 +145,44 @@ teardown() {
|
||||
assert_success
|
||||
assert_output "console://?encoding[codec]=json"
|
||||
|
||||
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink datadog_logs://?api_key=abc123" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Setting vector-sink"
|
||||
assert_output_contains "Writing updated vector config to /var/lib/dokku/data/logs/vector.json"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-vector-sink 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output "datadog_logs://?api_key=abc123"
|
||||
|
||||
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Unsetting vector-sink"
|
||||
assert_output_contains "Writing updated vector config to /var/lib/dokku/data/logs/vector.json"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-vector-sink 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_not_exists
|
||||
|
||||
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Unsetting vector-sink"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-vector-sink 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-max-size 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
@@ -186,6 +224,18 @@ teardown() {
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output "unlimited"
|
||||
|
||||
run /bin/bash -c "dokku logs:set "$TEST_APP" max-size" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Unsetting max-size"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-max-size 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output ""
|
||||
}
|
||||
|
||||
@test "(logs) logs:set global" {
|
||||
@@ -226,6 +276,19 @@ teardown() {
|
||||
assert_success
|
||||
assert_output "console://?encoding[codec]=json"
|
||||
|
||||
run /bin/bash -c "dokku logs:set --global vector-sink datadog_logs://?api_key=abc123" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Setting vector-sink"
|
||||
assert_output_contains "Writing updated vector config to /var/lib/dokku/data/logs/vector.json"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-global-vector-sink 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output "datadog_logs://?api_key=abc123"
|
||||
|
||||
run /bin/bash -c "dokku logs:set --global vector-sink" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
@@ -239,6 +302,24 @@ teardown() {
|
||||
assert_success
|
||||
assert_output_not_exists
|
||||
|
||||
run /bin/bash -c "dokku logs:set --global vector-sink" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Unsetting vector-sink"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-global-vector-sink 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_not_exists
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-global-max-size 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output "10m"
|
||||
|
||||
run /bin/bash -c "dokku logs:set --global max-size" 2>&1
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
@@ -280,6 +361,12 @@ teardown() {
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains "Unsetting max-size"
|
||||
|
||||
run /bin/bash -c "dokku logs:report $TEST_APP --logs-global-max-size 2>&1"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output "10m"
|
||||
}
|
||||
|
||||
@test "(logs) logs:vector" {
|
||||
|
||||
Reference in New Issue
Block a user