From b04bfea1c707c1d4e108bed9de21af9336f1f8dd Mon Sep 17 00:00:00 2001 From: decentral1se Date: Tue, 16 Mar 2021 08:38:11 +0100 Subject: [PATCH] Use local marker and scan services only once --- abra | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/abra b/abra index d3d8e66..499e673 100755 --- a/abra +++ b/abra @@ -503,14 +503,21 @@ output_version_summary() { echo " Versions:" CONSENT_TO_UPDATE=$abra___update - IS_AN_UPDATE="false" - UNABLE_TO_DETECT="false" + + local -a IS_AN_UPDATE="false" + local -a UNABLE_TO_DETECT="false" + local -a CHECKED_SERVICES # array IFS=':' read -ra COMPOSE_FILES <<< "$COMPOSE_FILE" for COMPOSE in "${COMPOSE_FILES[@]}"; do SERVICES=$($YQ e '.services | keys | .[]' "${APP_DIR}/${COMPOSE}") for SERVICE in $SERVICES; do + if [[ "${CHECKED_SERVICES[@]}" =~ "${SERVICE}" ]]; then + debug "already inspected ${STACK_NAME}_${SERVICE} for versions, skipping..." + continue + fi + filter="{{index .Spec.Labels \"coop-cloud.$STACK_NAME.$SERVICE.version\" }}" label=$(docker service inspect -f "$filter" "${STACK_NAME}_${SERVICE}" 2>/dev/null) @@ -532,11 +539,11 @@ output_version_summary() { IS_AN_UPDATE="true" echo " to de deployed: $(tput setaf 1)$app_version ($app_digest)$(tput sgr0)" fi - else warning "Unable to detect deployed version of ${STACK_NAME}_${SERVICE}, please proceed with caution" UNABLE_TO_DETECT="true" fi + CHECKED_SERVICES+=("$SERVICE") done done