From 06cc478ad0c32eb2027f914848ed814f0fd905dd Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Thu, 12 Sep 2019 15:16:17 +0200 Subject: [PATCH] new: direct action do not decorate output anymore We couldn't use efficiently the output of direct action in scripts. --- bin/compose-core | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/bin/compose-core b/bin/compose-core index e27d31f..ac2aa05 100755 --- a/bin/compose-core +++ b/bin/compose-core @@ -2616,28 +2616,19 @@ _run_service_action_direct() { export action_errlvl_file="$state_tmpdir/action-$service-$charm-$action-errlvl" export state_tmpdir - { - ( - set +e ## Prevents unwanted leaks from parent shell - export COMPOSE_CONFIG=$(get_compose_yml_content) - export METADATA_CONFIG=$(charm.metadata "$charm") - export SERVICE_NAME=$service - export ACTION_NAME=$action - export CONTAINER_NAME=$(get_top_master_service_for_service "$service") - export DOCKER_BASE_IMAGE=$(service_base_docker_image "$CONTAINER_NAME") - export SERVICE_DATASTORE="$DATASTORE/$service" - export SERVICE_CONFIGSTORE="$CONFIGSTORE/$service" - exname="$exname $ACTION_NAME $SERVICE_NAME" \ - stdbuf -oL -eL bash -c 'charm.run_direct_action "$@"' -- "$charm" "$action" "$@" - echo "$?" > "$action_errlvl_file" - ) | logstdout "$DARKYELLOW$service$NORMAL/${DARKCYAN}$action${NORMAL} ${GREEN}@${NORMAL}" - } 3>&1 1>&2 2>&3 | logstderr "$DARKYELLOW$service$NORMAL/${DARKCYAN}$action${NORMAL} ${RED}@$NORMAL" 3>&1 1>&2 2>&3 - if ! [ -e "$action_errlvl_file" ]; then - err "Action $DARKYELLOW$service$NORMAL:$DARKCYAN$action$NORMAL has failed without having time" \ - "to output an errlvl" - return 1 - fi - return "$(cat "$action_errlvl_file")" + ( + set +e ## Prevents unwanted leaks from parent shell + export COMPOSE_CONFIG=$(get_compose_yml_content) + export METADATA_CONFIG=$(charm.metadata "$charm") + export SERVICE_NAME=$service + export ACTION_NAME=$action + export CONTAINER_NAME=$(get_top_master_service_for_service "$service") + export DOCKER_BASE_IMAGE=$(service_base_docker_image "$CONTAINER_NAME") + export SERVICE_DATASTORE="$DATASTORE/$service" + export SERVICE_CONFIGSTORE="$CONFIGSTORE/$service" + exname="$exname $ACTION_NAME $SERVICE_NAME" \ + stdbuf -oL -eL bash -c 'charm.run_direct_action "$@"' -- "$charm" "$action" "$@" + ) } export -f _run_service_action_direct @@ -2779,7 +2770,6 @@ run_service_action () { return 1 fi - Section "running $DARKYELLOW$service$NORMAL/$DARKCYAN$action$NORMAL ($action_type)"; Feed "_run_service_action_${action_type}" "$service" "$action" "$@" } < <(has_service_action "$service" "$action")