Hopefully fix some bugs.
This commit is contained in:
@@ -215,6 +215,41 @@ grep -q 'proxy_set_header X-Google-Auth-App "my-app";' "$APP_CONF" ||
|
||||
fail "changing an app's list should rewrite its nginx config to stamp the app name"
|
||||
echo "ok: per-app list change refreshes the nginx config"
|
||||
|
||||
# --- a running service only counts if it can really read per-app lists ---
|
||||
# It takes both the bind mount and the env var naming it. A container recreated
|
||||
# from a service.env written before per-app lists existed has the mount but not
|
||||
# the variable, ignores every per-app list, and still looks healthy — so the
|
||||
# check must not be satisfied by the mount alone.
|
||||
mkdir -p "$WORK/bin-docker"
|
||||
cat >"$WORK/bin-docker/docker" <<'EOF'
|
||||
#!/bin/sh
|
||||
# Stands in for `docker container inspect`, replaying a canned inspection.
|
||||
if [ "$1" = "container" ] && [ "$2" = "inspect" ]; then
|
||||
cat "$DOCKER_INSPECT_FIXTURE"
|
||||
exit 0
|
||||
fi
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x "$WORK/bin-docker/docker"
|
||||
|
||||
# Runs the check against one canned inspection, in a subshell so the stub and
|
||||
# its fixture do not leak into the rest of the file.
|
||||
reads_app_lists() (
|
||||
export DOCKER_INSPECT_FIXTURE="$WORK/inspect-fixture"
|
||||
printf '%s\n' "$@" >"$DOCKER_INSPECT_FIXTURE"
|
||||
PATH="$WORK/bin-docker:$PATH"
|
||||
fn-ga-service-reads-app-lists
|
||||
)
|
||||
|
||||
reads_app_lists "mount=/data/apps" "env=GOOGLE_AUTH_APP_CONFIG_DIR=/data/apps" "env=GOOGLE_AUTH_CLIENT_ID=x" ||
|
||||
fail "a container with both the mount and the env var should read per-app lists"
|
||||
reads_app_lists "mount=/data/apps" "env=GOOGLE_AUTH_CLIENT_ID=x" &&
|
||||
fail "a container with the mount but no GOOGLE_AUTH_APP_CONFIG_DIR ignores per-app lists"
|
||||
reads_app_lists "env=GOOGLE_AUTH_APP_CONFIG_DIR=/data/apps" &&
|
||||
fail "a container with the env var but no mount has nothing to read"
|
||||
reads_app_lists "" && fail "a container with neither should not count"
|
||||
echo "ok: per-app list readiness check"
|
||||
|
||||
# --- lifecycle triggers carry per-app lists ---
|
||||
"$ROOT/post-app-rename" my-app renamed-app
|
||||
[[ ! -d "$DATA/apps/my-app" ]] || fail "rename should move the app's directory"
|
||||
|
||||
Reference in New Issue
Block a user