Files
dokku/plugins/scheduler-docker-local/scheduler-inspect
Jose Diaz-Gonzalez b4e95fe0d5 feat: add support for python3
- Use jq where possible
- Drop unused function (no usage across entire codebase nor in any github repository

Closes #3689
2019-09-19 23:33:43 -04:00

56 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_AVAILABLE_PATH/config/functions"
scheduler-docker-local-scheduler-inspect() {
declare desc="scheduler-docker-local scheduler-inspect plugin trigger"
declare trigger="scheduler-docker-local scheduler-inspect"
declare DOKKU_SCHEDULER="$1" APP="$2"
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then
return
fi
local TMP_INSPECT_CMD=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
trap "rm -rf '$TMP_INSPECT_CMD' >/dev/null" RETURN INT TERM EXIT
cat >"$TMP_INSPECT_CMD" <<EOF
import json
import sys
output = []
data = json.load(sys.stdin)
for container in data:
env = []
whitelist = ['CACHE_PATH=', 'DOCKER_', 'DOKKU_', 'DYNO=', 'PATH=', 'PORT=', 'USER=']
for e in container['Config']['Env']:
append = False
for w in whitelist:
if e.startswith(w):
append = True
break
if append:
env.append(e)
continue
k, v = e.split('=', 1)
env.append('{0}=XXXXXX'.format(k))
container['Config']['Env'] = env
output.append(container)
print(json.dumps(data, sort_keys=True, indent=4))
EOF
local CONTAINER_FILES="$(find "$DOKKU_ROOT/$APP" -maxdepth 1 -name "CONTAINER.*" -printf "%f\n" 2>/dev/null | sort -t . -k 2 -n | xargs)"
local CIDS=()
for CONTAINER_FILE in $CONTAINER_FILES; do
CIDS+="$(<"$DOKKU_ROOT/$APP/$CONTAINER_FILE")"
done
"$DOCKER_BIN" container inspect "${CIDS[@]}" | python2.7 "$TMP_INSPECT_CMD"
}
scheduler-docker-local-scheduler-inspect "$@"