feat: refactor to retrieve listeners from network plugin

This commit is contained in:
Jose Diaz-Gonzalez
2017-04-21 02:44:25 -06:00
committed by Michael Hobbs
parent a9e0f8b7be
commit d7d5d373c9
3 changed files with 21 additions and 7 deletions

View File

@@ -94,6 +94,21 @@ network-get-container-ipaddr() {
echo "$IP_ADDRESS"
}
network-get-container-listeners() {
declare desc="Return the listeners (host:port combinations) for a given app container"
declare APP="$1"
local IP_FILE LISTENER_IP LISTENER_PORT LISTENERS PORT_FILE
for IP_FILE in $DOKKU_ROOT/$APP/IP.web.*; do
local PORT_FILE="${IP_FILE//IP/PORT}"
local LISTENER_IP=$(< "$IP_FILE")
local LISTENER_PORT=$(< "$PORT_FILE")
local LISTENERS+="$LISTENER_IP:$LISTENER_PORT "
done
echo "$LISTENERS"
}
network-get-container-port() {
declare desc="Return the port for a given app container"
declare APP="$1" PROC_TYPE="$2" CID="$3"

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_AVAILABLE_PATH/network/functions"
network-get-container-listeners "$@"

View File

@@ -229,13 +229,7 @@ nginx_build_config() {
if [[ -z "$DOKKU_DISABLE_PROXY" ]]; then
if [[ -z "$DOKKU_APP_LISTEN_PORT" ]] && [[ -z "$DOKKU_APP_LISTEN_IP" ]]; then
shopt -s nullglob
local DOKKU_APP_IP_FILE
for DOKKU_APP_IP_FILE in $DOKKU_ROOT/$APP/IP.web.*; do
local DOKKU_APP_PORT_FILE="${DOKKU_APP_IP_FILE//IP/PORT}"
local DOKKU_APP_LISTENER_IP=$(< "$DOKKU_APP_IP_FILE")
local DOKKU_APP_LISTENER_PORT=$(< "$DOKKU_APP_PORT_FILE")
local DOKKU_APP_LISTENERS+="$DOKKU_APP_LISTENER_IP:$DOKKU_APP_LISTENER_PORT "
done
local DOKKU_APP_LISTENERS="$(plugn trigger network-get-listeners "$APP")"
local DOKKU_APP_LISTENERS="$(echo "$DOKKU_APP_LISTENERS" | xargs)"
shopt -u nullglob
elif [[ -n "$DOKKU_APP_LISTEN_PORT" ]] && [[ -n "$DOKKU_APP_LISTEN_IP" ]]; then