refactor: move container file cleanup/renames to scheduler-docker-local plugin

This commit is contained in:
Jose Diaz-Gonzalez
2018-02-07 16:48:56 -07:00
parent 331d58c62b
commit 50a98db8e6
4 changed files with 28 additions and 33 deletions

View File

@@ -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 "$@"

View File

@@ -1,4 +0,0 @@
[plugin]
description = "dokku core named containers plugin"
version = "0.11.6"
[plugin.config]

View File

@@ -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 "$@"

View File

@@ -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