From 50a98db8e66494cc4d09ca1a069eeac8fc3f3bac Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Wed, 7 Feb 2018 16:48:56 -0700 Subject: [PATCH] refactor: move container file cleanup/renames to scheduler-docker-local plugin --- plugins/00_dokku-standard/core-post-deploy | 23 ------------- plugins/named-containers/plugin.toml | 4 --- .../core-post-deploy | 33 +++++++++++++++---- .../scheduler-docker-local/scheduler-deploy | 1 + 4 files changed, 28 insertions(+), 33 deletions(-) delete mode 100755 plugins/00_dokku-standard/core-post-deploy delete mode 100644 plugins/named-containers/plugin.toml rename plugins/{named-containers => scheduler-docker-local}/core-post-deploy (53%) diff --git a/plugins/00_dokku-standard/core-post-deploy b/plugins/00_dokku-standard/core-post-deploy deleted file mode 100755 index 7b21978cb..000000000 --- a/plugins/00_dokku-standard/core-post-deploy +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x -source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" - -cleanup_container_state() { - declare desc="core post-deploy state cleanup" - local trigger="core-post-deploy cleanup_container_state" - local APP="$1"; local PROCTYPES="$(egrep -v "^#" "$DOKKU_ROOT/$APP/DOKKU_SCALE" | awk -F '=' '{ print $1 }' | xargs)" - local CONTAINER_FILES="$(find "$DOKKU_ROOT/$APP" -maxdepth 1 -name "CONTAINER.*" -printf "%f\n" 2>/dev/null | sort -t . -k 3 -n | xargs)" - - local CONTAINER_FILE - for CONTAINER_FILE in $CONTAINER_FILES; do - local CONTAINER_TYPE="$(awk -F '.' '{ print $2 }' <<< "$CONTAINER_FILE")" - if [[ "$(is_val_in_list "$CONTAINER_TYPE" "$PROCTYPES" " ")" == "false" ]]; then - dokku_log_info1 "Container type ($CONTAINER_TYPE) is no longer defined. Removing state" - local IP_FILE="${CONTAINER_FILE//CONTAINER/IP}" - local PORT_FILE="${CONTAINER_FILE//CONTAINER/PORT}" - rm -f "$DOKKU_ROOT/$APP/$CONTAINER_FILE" "$DOKKU_ROOT/$APP/$IP_FILE" "$DOKKU_ROOT/$APP/$PORT_FILE" - fi - done -} - -cleanup_container_state "$@" diff --git a/plugins/named-containers/plugin.toml b/plugins/named-containers/plugin.toml deleted file mode 100644 index d9c2c6728..000000000 --- a/plugins/named-containers/plugin.toml +++ /dev/null @@ -1,4 +0,0 @@ -[plugin] -description = "dokku core named containers plugin" -version = "0.11.6" -[plugin.config] diff --git a/plugins/named-containers/core-post-deploy b/plugins/scheduler-docker-local/core-post-deploy similarity index 53% rename from plugins/named-containers/core-post-deploy rename to plugins/scheduler-docker-local/core-post-deploy index 70d9b6328..61790e665 100755 --- a/plugins/named-containers/core-post-deploy +++ b/plugins/scheduler-docker-local/core-post-deploy @@ -1,14 +1,35 @@ #!/usr/bin/env bash set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" +source "$PLUGIN_AVAILABLE_PATH/config/functions" -named_containers_core_post_deploy() { - declare desc="names deployed app container is consistent manner" - local trigger="named_containers_core_post_deploy" - local APP="$1"; local APP_ROOT="$DOKKU_ROOT/$APP" - local container +scheduler-docker-local-core-post-deploy() { + declare desc="core post-deploy state cleanup" + declare trigger="scheduler-docker-local core-post-deploy" + declare APP="$1"; + local APP_ROOT="$DOKKU_ROOT/$APP" + + local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local") + if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then + return + fi + + local PROCTYPES="$(egrep -v "^#" "$DOKKU_ROOT/$APP/DOKKU_SCALE" | awk -F '=' '{ print $1 }' | xargs)" + local CONTAINER_FILES="$(find "$DOKKU_ROOT/$APP" -maxdepth 1 -name "CONTAINER.*" -printf "%f\n" 2>/dev/null | sort -t . -k 3 -n | xargs)" + + local CONTAINER_FILE + for CONTAINER_FILE in $CONTAINER_FILES; do + local CONTAINER_TYPE="$(awk -F '.' '{ print $2 }' <<< "$CONTAINER_FILE")" + if [[ "$(is_val_in_list "$CONTAINER_TYPE" "$PROCTYPES" " ")" == "false" ]]; then + dokku_log_info1 "Container type ($CONTAINER_TYPE) is no longer defined. Removing state" + local IP_FILE="${CONTAINER_FILE//CONTAINER/IP}" + local PORT_FILE="${CONTAINER_FILE//CONTAINER/PORT}" + rm -f "$DOKKU_ROOT/$APP/$CONTAINER_FILE" "$DOKKU_ROOT/$APP/$IP_FILE" "$DOKKU_ROOT/$APP/$PORT_FILE" + fi + done shopt -s nullglob + local container for container in $APP_ROOT/CONTAINER.*; do local DYNO=$(echo "$container" | sed -r 's/.*CONTAINER\.(.*)/\1/') || true local NAME="$APP.$DYNO" @@ -38,4 +59,4 @@ named_containers_core_post_deploy() { shopt -u nullglob } -named_containers_core_post_deploy "$@" +scheduler-docker-local-core-post-deploy "$@" diff --git a/plugins/scheduler-docker-local/scheduler-deploy b/plugins/scheduler-docker-local/scheduler-deploy index b212b40c1..7abc8a059 100755 --- a/plugins/scheduler-docker-local/scheduler-deploy +++ b/plugins/scheduler-docker-local/scheduler-deploy @@ -6,6 +6,7 @@ source "$PLUGIN_AVAILABLE_PATH/config/functions" scheduler-docker-local-scheduler-deploy() { declare desc="deploys an image tag for a given application" + declare trigger="scheduler-docker-local scheduler-deploy" declare DOKKU_SCHEDULER="$1" APP="$2" IMAGE_TAG="$3" if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then