Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ea17b07dc | ||
|
|
d5a4cddc3f | ||
|
|
2909ba7a9b | ||
|
|
307f5d7378 | ||
|
|
9cf8a5880f | ||
|
|
63eb33d99c | ||
|
|
704c24a9ef | ||
|
|
140639917d |
@@ -18,7 +18,7 @@ main() {
|
||||
# built in the Dockerfile
|
||||
PLUGIN_NAME="$(source /tmp/.env && echo "$PLUGIN_NAME")"
|
||||
PLUGIN_VARIABLE="$(source /tmp/.env && echo "$PLUGIN_VARIABLE")"
|
||||
echo "export ${PLUGIN_VARIABLE}_HOST_ROOT=${SERVICE_HOST_ROOT}/$PLUGIN_NAME" > /etc/default/dokku
|
||||
echo "export ${PLUGIN_VARIABLE}_HOST_ROOT=${SERVICE_HOST_ROOT}/$PLUGIN_NAME" >/etc/default/dokku
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -48,17 +48,27 @@ auth_service_filter() {
|
||||
export SSH_USER=${SSH_USER:=$USER}
|
||||
export SSH_NAME=${NAME:="default"}
|
||||
# the output of this trigger should be all the services a user has access to
|
||||
plugn trigger user-auth-service "$SSH_USER" "$SSH_NAME" "${SERVICES[@]}"
|
||||
plugn trigger user-auth-service "$SSH_USER" "$SSH_NAME" "$PLUGIN_COMMAND_PREFIX" "${SERVICES[@]}"
|
||||
}
|
||||
|
||||
fn-services-list() {
|
||||
declare desc="prints a filtered list of all local apps"
|
||||
declare FILTER="$1"
|
||||
local detected_services filtered_services services
|
||||
local services=()
|
||||
|
||||
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
||||
for f in *; do
|
||||
[[ -d $f ]] || continue
|
||||
services+=("$f")
|
||||
done
|
||||
popd &>/dev/null || pushd "/tmp" >/dev/null
|
||||
|
||||
if [[ "${#services[@]}" -eq 0 ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local detected_services=("$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)")
|
||||
if [[ "$FILTER" == "false" ]]; then
|
||||
for service in "${detected_services[@]}"; do
|
||||
for service in "${services[@]}"; do
|
||||
if [[ -n "$service" ]]; then
|
||||
echo "$service"
|
||||
fi
|
||||
@@ -66,8 +76,7 @@ fn-services-list() {
|
||||
return
|
||||
fi
|
||||
|
||||
filtered_services="$(auth_service_filter "${detected_services[@]}" 2>/dev/null)"
|
||||
for service in "$filtered_services"; do
|
||||
for service in $(auth_service_filter "${services[@]}" 2>/dev/null); do
|
||||
if [[ -n "$service" ]]; then
|
||||
echo "$service"
|
||||
fi
|
||||
@@ -94,7 +103,7 @@ get_database_name() {
|
||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||
|
||||
if [[ ! -f "$SERVICE_ROOT/DATABASE_NAME" ]]; then
|
||||
echo "$SERVICE" > "$SERVICE_ROOT/DATABASE_NAME"
|
||||
echo "$SERVICE" >"$SERVICE_ROOT/DATABASE_NAME"
|
||||
fi
|
||||
|
||||
cat "$SERVICE_ROOT/DATABASE_NAME"
|
||||
@@ -237,8 +246,7 @@ service_app_links() {
|
||||
declare APP="$1"
|
||||
local LINKED_APP SERVICE SERVICE_ROOT
|
||||
|
||||
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
||||
for SERVICE in $(fn-services-list); do
|
||||
for SERVICE in $(fn-services-list true); do
|
||||
[[ -n "$SERVICE" ]] || continue
|
||||
|
||||
SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||
@@ -309,7 +317,6 @@ service_commit_config() {
|
||||
local CONFIG_VARIABLE="${PLUGIN_VARIABLE}_CONFIG_OPTIONS"
|
||||
local ENV_VARIABLE="${PLUGIN_VARIABLE}_CUSTOM_ENV"
|
||||
|
||||
|
||||
custom_env="${!ENV_VARIABLE}"
|
||||
[[ -n "$SERVICE_CUSTOM_ENV" ]] && custom_env="$SERVICE_CUSTOM_ENV"
|
||||
if [[ -n $custom_env ]]; then
|
||||
@@ -590,7 +597,7 @@ service_link() {
|
||||
fi
|
||||
|
||||
[[ -n $LINK ]] && dokku_log_fail "Already linked as $LINK"
|
||||
plugn trigger service-action pre-link "$SERVICE" "$APP"
|
||||
plugn trigger service-action pre-link "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||
add_to_links_file "$SERVICE" "$APP"
|
||||
|
||||
if declare -f -F add_passed_docker_option >/dev/null; then
|
||||
@@ -601,13 +608,13 @@ service_link() {
|
||||
dokku docker-options:add "$APP" build,deploy,run "--link $SERVICE_NAME:$SERVICE_DNS_HOSTNAME"
|
||||
fi
|
||||
[[ -n "$SERVICE_QUERYSTRING" ]] && SERVICE_URL="${SERVICE_URL}?${SERVICE_QUERYSTRING}"
|
||||
plugn trigger service-action post-link "$SERVICE" "$APP"
|
||||
plugn trigger service-action post-link "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||
if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
|
||||
config_set --no-restart "$APP" "${ALIAS}_URL=$SERVICE_URL"
|
||||
else
|
||||
config_set "$APP" "${ALIAS}_URL=$SERVICE_URL"
|
||||
fi
|
||||
plugn trigger service-action post-link-complete "$SERVICE" "$APP"
|
||||
plugn trigger service-action post-link-complete "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||
}
|
||||
|
||||
service_linked_apps() {
|
||||
@@ -637,7 +644,7 @@ service_links() {
|
||||
service_list() {
|
||||
declare desc="list all services and their status"
|
||||
|
||||
services=("$(fn-services-list true)")
|
||||
mapfile -t services < <(fn-services-list true)
|
||||
if [[ "${#services[@]}" -eq 0 ]] || [[ -z "$services" ]]; then
|
||||
dokku_log_warn "There are no $PLUGIN_SERVICE services"
|
||||
return
|
||||
@@ -645,7 +652,7 @@ service_list() {
|
||||
|
||||
dokku_log_info2_quiet "$PLUGIN_SERVICE services"
|
||||
for service in "${services[@]}"; do
|
||||
echo "$service"
|
||||
echo "${service}"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -917,7 +924,7 @@ service_unlink() {
|
||||
local SERVICE_DNS_HOSTNAME=$(service_dns_hostname "$SERVICE")
|
||||
local LINK=($(echo "$EXISTING_CONFIG" | grep "$SERVICE_URL" | cut -d: -f1)) || true
|
||||
|
||||
plugn trigger service-action pre-unlink "$SERVICE" "$APP"
|
||||
plugn trigger service-action pre-unlink "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||
remove_from_links_file "$SERVICE" "$APP"
|
||||
|
||||
if declare -f -F add_passed_docker_option >/dev/null; then
|
||||
@@ -929,13 +936,13 @@ service_unlink() {
|
||||
fi
|
||||
|
||||
[[ -z ${LINK[*]} ]] && dokku_log_fail "Not linked to app $APP"
|
||||
plugn trigger service-action post-unlink "$SERVICE" "$APP"
|
||||
plugn trigger service-action post-unlink "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||
if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
|
||||
config_unset --no-restart "$APP" "${LINK[@]}"
|
||||
else
|
||||
config_unset "$APP" "${LINK[@]}"
|
||||
fi
|
||||
plugn trigger service-action post-unlink-complete "$SERVICE" "$APP"
|
||||
plugn trigger service-action post-unlink-complete "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||
}
|
||||
|
||||
service_version() {
|
||||
@@ -981,5 +988,5 @@ write_database_name() {
|
||||
|
||||
# some datastores do not like special characters in database names
|
||||
# so we need to normalize them out
|
||||
echo "$SERVICE" | tr .- _ > "$SERVICE_ROOT/DATABASE_NAME"
|
||||
echo "$SERVICE" | tr .- _ >"$SERVICE_ROOT/DATABASE_NAME"
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ service_create() {
|
||||
docker pull "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" || dokku_log_fail "$PLUGIN_SERVICE image $PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION pull failed"
|
||||
fi
|
||||
|
||||
plugn trigger service-action pre-create "$SERVICE"
|
||||
plugn trigger service-action pre-create "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||
mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory"
|
||||
mkdir -p "$SERVICE_ROOT/data" || dokku_log_fail "Unable to create service data directory"
|
||||
touch "$LINKS_FILE"
|
||||
@@ -55,9 +55,9 @@ service_create() {
|
||||
|
||||
service_commit_config "$SERVICE"
|
||||
write_database_name "$SERVICE"
|
||||
plugn trigger service-action post-create "$SERVICE"
|
||||
plugn trigger service-action post-create "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||
service_create_container "$SERVICE"
|
||||
plugn trigger service-action post-create-complete "$SERVICE"
|
||||
plugn trigger service-action post-create-complete "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||
}
|
||||
|
||||
service_create_container() {
|
||||
|
||||
4
install
4
install
@@ -50,8 +50,8 @@ EOL
|
||||
if [[ ! -f "$SERVICE_ROOT/IMAGE" ]] || [[ ! -f "$SERVICE_ROOT/IMAGE_VERSION" ]]; then
|
||||
local image="$(service_version "$SERVICE")"
|
||||
if [[ "$image" == *":"* ]]; then
|
||||
echo "${image%:*}" > "$SERVICE_ROOT/IMAGE"
|
||||
echo "${image##*:}" > "$SERVICE_ROOT/IMAGE_VERSION"
|
||||
echo "${image%:*}" >"$SERVICE_ROOT/IMAGE"
|
||||
echo "${image##*:}" >"$SERVICE_ROOT/IMAGE_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku postgres service plugin"
|
||||
version = "1.21.1"
|
||||
version = "1.23.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -41,7 +41,7 @@ service-destroy-cmd() {
|
||||
fi
|
||||
|
||||
dokku_log_info2_quiet "Deleting $SERVICE"
|
||||
plugn trigger service-action pre-delete "$SERVICE"
|
||||
plugn trigger service-action pre-delete "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||
service_backup_unschedule "$SERVICE"
|
||||
service_container_rm "$SERVICE"
|
||||
|
||||
@@ -49,7 +49,7 @@ service-destroy-cmd() {
|
||||
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/$PLUGIN_CONFIG_SUFFIX:/config" "$PLUGIN_BUSYBOX_IMAGE" chmod 777 -R /config /data
|
||||
rm -rf "$SERVICE_ROOT"
|
||||
|
||||
plugn trigger service-action post-delete "$SERVICE"
|
||||
plugn trigger service-action post-delete "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||
dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE"
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ service-enter-cmd() {
|
||||
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
||||
declare SERVICE="$1"
|
||||
|
||||
dokku_log_info1_quiet "Filesystem changes may not persist after container restarts"
|
||||
verify_service_name "$SERVICE"
|
||||
dokku_log_info1_quiet "Filesystem changes may not persist after container restarts"
|
||||
service_enter "$SERVICE" "${@:2}"
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ teardown() {
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:hook:pre-delete) removes app from links file when destroying app" {
|
||||
[[ -n $(< "$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||
[[ -n $(<"$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||
dokku --force apps:destroy my-app
|
||||
[[ -z $(< "$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||
[[ -z $(<"$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ teardown() {
|
||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service already exists" {
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:create" new_service
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
||||
assert_contains "${lines[*]}" "service new_service already exists"
|
||||
assert_contains "${lines[*]}" "Invalid service name new_service"
|
||||
assert_failure
|
||||
|
||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" new_service
|
||||
|
||||
@@ -23,7 +23,7 @@ teardown() {
|
||||
if [[ -n "$GITHUB_WORKFLOW" ]]; then
|
||||
skip "No tty is available on Github Actions"
|
||||
fi
|
||||
export SSH_TTY=`tty`
|
||||
export SSH_TTY=$(tty)
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
|
||||
@@ -34,7 +34,7 @@ teardown() {
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:import) success" {
|
||||
skip "The fake dump is hard to work with in tests"
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:import" l < "/tmp/fake.dump"
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:import" l <"/tmp/fake.dump"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
@@ -13,7 +13,6 @@ teardown() {
|
||||
dokku --force apps:destroy my-app
|
||||
}
|
||||
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:link) error when there are no arguments" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:link"
|
||||
echo "output: $output"
|
||||
|
||||
@@ -23,4 +23,3 @@ teardown() {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:restart" l
|
||||
assert_success
|
||||
}
|
||||
|
||||
|
||||
@@ -23,4 +23,3 @@ teardown() {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:start" l
|
||||
assert_success
|
||||
}
|
||||
|
||||
|
||||
@@ -23,4 +23,3 @@ teardown() {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:stop" l
|
||||
assert_success
|
||||
}
|
||||
|
||||
|
||||
@@ -25,4 +25,3 @@ teardown() {
|
||||
[[ ! -f $PLUGIN_DATA_ROOT/PORT ]]
|
||||
assert_contains "${lines[*]}" "Service l unexposed"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user