mirror of
https://github.com/dokku/dokku.git
synced 2026-02-24 04:00:36 +01:00
718 lines
23 KiB
Bash
718 lines
23 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
rm "${BATS_PARENT_TMPNAME}.skip" || true
|
|
global_setup
|
|
}
|
|
|
|
teardown() {
|
|
destroy_app
|
|
global_teardown
|
|
}
|
|
|
|
@test "(logs) logs:help" {
|
|
run /bin/bash -c "dokku logs:help"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Manage log integration for an app"
|
|
}
|
|
|
|
@test "(logs) logs:report" {
|
|
run /bin/bash -c "dokku logs:report"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "You haven't deployed any applications yet"
|
|
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:report 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "$TEST_APP logs information"
|
|
}
|
|
|
|
@test "(logs) logs:report app" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:report $TEST_APP 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "$TEST_APP logs information"
|
|
|
|
run /bin/bash -c "dokku logs:report $TEST_APP --invalid-flag 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "$TEST_APP logs information" 0
|
|
assert_output_contains "Invalid flag passed, valid flags: --logs-app-label-alias, --logs-computed-app-label-alias, --logs-computed-max-size, --logs-global-app-label-alias, --logs-global-max-size, --logs-global-vector-sink, --logs-max-size, --logs-vector-global-image, --logs-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_contains "$TEST_APP logs information" 0
|
|
assert_output_contains "Invalid flag passed" 0
|
|
|
|
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_contains "$TEST_APP logs information" 0
|
|
assert_output_contains "Invalid flag passed" 0
|
|
}
|
|
|
|
@test "(logs) logs:set [error]" {
|
|
run /bin/bash -c "dokku logs:set 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
|
|
assert_output_contains "Please specify an app to run the command on"
|
|
run /bin/bash -c "dokku logs:set ${TEST_APP}-non-existent" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "App $TEST_APP-non-existent does not exist"
|
|
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "No property specified"
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP invalid" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "Invalid property specified, valid properties include: app-label-alias, max-size, vector-image, vector-sink"
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP invalid value" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "Invalid property specified, valid properties include: app-label-alias, max-size, vector-image, vector-sink"
|
|
}
|
|
|
|
@test "(logs) logs:set app" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
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"
|
|
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 console://?encoding[codec]=json" 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 "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_not_exists
|
|
|
|
run /bin/bash -c "dokku logs:report $TEST_APP --logs-max-size 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_exists
|
|
|
|
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_not_exists
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP max-size 20m" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting 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 "20m"
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP max-size unlimited" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting 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 "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_not_exists
|
|
}
|
|
|
|
@test "(logs) logs:set equals in uri" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink 'loki://?endpoint=https://host&encoding[codec]=text&auth[token]=foobar%3D&auth[strategy]=bearer'"
|
|
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"
|
|
# type: loki
|
|
# endpoint: https://host
|
|
# encoding[codec]: text
|
|
# auth[token]: foobar=
|
|
# auth[strategy]: bearer
|
|
|
|
run /bin/bash -c "jq -r '.sinks[\"docker-sink:$TEST_APP\"].auth.strategy' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "bearer"
|
|
|
|
run /bin/bash -c "jq -r '.sinks[\"docker-sink:$TEST_APP\"].auth.token' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "foobar="
|
|
|
|
run /bin/bash -c "jq -r '.sinks[\"docker-sink:$TEST_APP\"].endpoint' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "https://host"
|
|
|
|
run /bin/bash -c "jq -r '.sinks[\"docker-sink:$TEST_APP\"].encoding.codec' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "text"
|
|
}
|
|
|
|
@test "(logs) logs:set escaped uri" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink http://?uri=https%3A//loggerservice.com%3A1234/%3Ftoken%3Dabc1234%26type%3Dvector%26key%3Dvalue%2Bvalue2"
|
|
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 "http://?uri=https%3A//loggerservice.com%3A1234/%3Ftoken%3Dabc1234%26type%3Dvector%26key%3Dvalue%2Bvalue2"
|
|
|
|
run /bin/bash -c "jq -r '.sinks[\"docker-sink:$TEST_APP\"].uri' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "https://loggerservice.com:1234/?token=abc1234&type=vector&key=value+value2"
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink 'aws_cloudwatch_logs://?create_missing_group=true&create_missing_stream=true&group_name=groupname&encoding[codec]=json®ion=sa-east-1&stream_name={{ host }}&auth[access_key_id]=KSDSIDJSAJD&auth[secret_access_key]=2932JSDJ%252BKSDSDJ'"
|
|
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 "aws_cloudwatch_logs://?create_missing_group=true&create_missing_stream=true&group_name=groupname&encoding[codec]=json®ion=sa-east-1&stream_name={{ host }}&auth[access_key_id]=KSDSIDJSAJD&auth[secret_access_key]=2932JSDJ%252BKSDSDJ"
|
|
|
|
run /bin/bash -c "jq -r '.sinks[\"docker-sink:$TEST_APP\"].auth.secret_access_key' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "2932JSDJ+KSDSDJ"
|
|
}
|
|
|
|
@test "(logs) logs:set global" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
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:set --global 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-global-vector-sink 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_exists
|
|
|
|
run /bin/bash -c "dokku logs:set --global vector-sink console://?encoding[codec]=json" 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 "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"
|
|
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-global-vector-sink 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
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"
|
|
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"
|
|
|
|
run /bin/bash -c "dokku logs:set --global max-size 20m" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting 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 "20m"
|
|
|
|
run /bin/bash -c "dokku logs:set --global max-size unlimited" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting 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 "unlimited"
|
|
|
|
run /bin/bash -c "dokku logs:set --global 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-global-max-size 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "10m"
|
|
}
|
|
|
|
@test "(logs) logs:set app-label-alias" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP vector-sink console://?encoding[codec]=json" 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:set --global app-label-alias" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Unsetting app-label-alias"
|
|
assert_output_contains "Writing updated vector config to /var/lib/dokku/data/logs/vector.json"
|
|
|
|
run /bin/bash -c "jq -r '.sources[\"docker-source:$TEST_APP\"].include_labels[0]' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "com.dokku.app-name=$TEST_APP"
|
|
|
|
run /bin/bash -c "dokku logs:set --global app-label-alias global-alt-name" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
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-computed-app-label-alias" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "global-alt-name"
|
|
|
|
run /bin/bash -c "cat /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "jq -r '.sources[\"docker-source:$TEST_APP\"].include_labels[0]' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "global-alt-name=$TEST_APP"
|
|
|
|
run /bin/bash -c "dokku logs:set --global app-label-alias alt-name" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
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-computed-app-label-alias" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "alt-name"
|
|
|
|
run /bin/bash -c "jq -r '.sources[\"docker-source:$TEST_APP\"].include_labels[0]' /var/lib/dokku/data/logs/vector.json"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "alt-name=$TEST_APP"
|
|
}
|
|
|
|
@test "(logs) logs:set max-size with alternate log-driver daemon" {
|
|
if [[ "$REMOTE_CONTAINERS" == "true" ]]; then
|
|
skip "skipping due non-existent docker service in remote dev container"
|
|
fi
|
|
|
|
if [[ ! -f /etc/docker/daemon.json ]]; then
|
|
echo "{}" >/etc/docker/daemon.json
|
|
fi
|
|
|
|
driver="$(jq -r '."log-driver"' /etc/docker/daemon.json)"
|
|
local TMP_FILE=$(mktemp "/tmp/${DOKKU_DOMAIN}.XXXX")
|
|
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP max-size 20m 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting max-size"
|
|
|
|
run /bin/bash -c "echo '' | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1 | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "--log-opt=max-size=20m"
|
|
|
|
DRIVER="journald" jq '."log-driver" = env.DRIVER' <"/etc/docker/daemon.json" >"$TMP_FILE"
|
|
mv "$TMP_FILE" /etc/docker/daemon.json
|
|
|
|
sudo service docker restart
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP max-size 20m 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting max-size"
|
|
|
|
run /bin/bash -c "echo '' | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1 | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_exists
|
|
|
|
if [[ "$driver" = "null" ]]; then
|
|
DRIVER="$driver" jq 'del(."log-driver")' <"/etc/docker/daemon.json" >"$TMP_FILE"
|
|
else
|
|
DRIVER="$driver" jq '."log-driver" = env.DRIVER' <"/etc/docker/daemon.json" >"$TMP_FILE"
|
|
fi
|
|
|
|
mv "$TMP_FILE" /etc/docker/daemon.json
|
|
sudo service docker restart
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP max-size 20m 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting max-size"
|
|
|
|
run /bin/bash -c "echo '' | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1 | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "--log-opt=max-size=20m"
|
|
}
|
|
|
|
@test "(logs) logs:set max-size with alternate log-driver" {
|
|
run create_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:set $TEST_APP max-size 20m" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting max-size"
|
|
|
|
run /bin/bash -c "echo "" | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1 | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "--log-opt=max-size=20m"
|
|
|
|
run /bin/bash -c "dokku docker-options:add $TEST_APP deploy --log-driver=local" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "echo "" | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1 | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "--log-opt=max-size=20m"
|
|
|
|
run /bin/bash -c "dokku docker-options:add $TEST_APP deploy --log-driver=json-file" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "echo "" | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1 | xargs"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "--log-opt=max-size=20m"
|
|
|
|
run /bin/bash -c "dokku docker-options:add $TEST_APP deploy --log-driver=journald" 2>&1
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "echo "" | dokku plugin:trigger docker-args-process-deploy $TEST_APP 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_exists
|
|
}
|
|
|
|
@test "(logs) logs:vector" {
|
|
run /bin/bash -c "dokku logs:vector-logs 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
assert_output_contains "Vector container does not exist"
|
|
|
|
run /bin/bash -c "dokku apps:create example.com"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:vector-start 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Vector container is running"
|
|
|
|
run /bin/bash -c "sudo docker inspect --format='{{.HostConfig.RestartPolicy.Name}}' vector-vector-1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "unless-stopped"
|
|
|
|
run /bin/bash -c "dokku logs:vector-logs 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Vector container logs"
|
|
|
|
run /bin/bash -c "dokku --force apps:destroy example.com"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:vector-logs --num 10 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Vector container logs"
|
|
assert_output_contains "vector:" 10
|
|
assert_line_count 11
|
|
|
|
run /bin/bash -c "dokku logs:vector-logs --num 5 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Vector container logs"
|
|
assert_output_contains "vector:" 5
|
|
assert_line_count 6
|
|
|
|
run /bin/bash -c "docker stop vector-vector-1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku logs:vector-logs 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Vector container logs"
|
|
assert_output_contains "Vector container is not running"
|
|
|
|
run /bin/bash -c "dokku logs:vector-stop 2>&1"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Stopping and removing vector container"
|
|
}
|