#!/bin/bash

source logging.sh
source config.sh

DEFAULT_NUM_ITERATIONS=1
num_iterations=${1:-$DEFAULT_NUM_ITERATIONS}

make_rest_call() {
    local src_pod=$1
    local dst_pod=$2

    dst_ip=$(kubectl get pod $dst_pod -o jsonpath='{.status.podIP}')
    kubectl exec -i $src_pod -- sh -c "curl --silent -o /dev/null -w 'http_code: %{http_code}' $dst_ip:8080"
    sleep $SLEEP_BETWEEN_CALLS
}

generate_traffic() {
    for src in "${POD_NAMES[@]}"; do
        for dst in "${POD_NAMES[@]}"; do
            if [ "$src" != "$dst" ]; then
                http_code=$(make_rest_call "$src" "$dst")
                log "$src => $dst ($http_code)"
            fi
        done
    done
}

log "Generating traffic: $num_iterations iterations via curl"
for ((i=1; i<=num_iterations; i++)); do
    log "Iteration: $i"
    generate_traffic
done

log "Traffic generation completed."
