diff --git a/services.sh b/services.sh index 52dbc50..7037ea7 100755 --- a/services.sh +++ b/services.sh @@ -25,17 +25,9 @@ while read service; do network_alias=$(get_service $service | jq -r '.Spec.TaskTemplate.Networks[].Aliases[]' | sort | head -1) echo $ports | sed 's/,/\n/g' | while read port; do - read service_id replicas < <(get_service $service | jq -r '"\(.ID) \(.Spec.Mode.Replicated.Replicas)"') - test "$replicas" != "0" || continue - - if [[ $replicas == "null" ]]; then - filter=$(echo '{"service":["'$service_id'"], "desired-state":["running"]}' | jq -s -R -r @uri) - read state message exit_code < <(curl -s --unix-socket $sock "$url/tasks?filters=$filter" | jq -r '.[] | "\(.Status.State) \(.Status.Message) \(.ContainerStatus.ExitCode)"' | grep running | head -1) - - test "$state" == "running" || break + read service_id mode replicas < <(get_service $service | jq -r '"\(.ID) \(.Spec.Mode | keys[0]) \(.Spec.Mode.Replicated.Replicas)"') + if [[ $mode == "Global" || ( $mode == "Replicated" && "$replicas" != "0" ) ]]; then + echo "$service $network_alias $port" fi - - echo "$service $network_alias $port" - done done < <(get_services)