#!/bin/bash test_pools () { local -a POOLS local CONTENT="${1:?"test_pools: Content not provided"}" get_pool_declerations POOLS "$CONTENT" for pool in ${!POOLS[@]}; do echo "POOL: $pool" POOL_CONTENT="${POOLS[$pool]}" local -a RANGES get_pool_ranges RANGES "$POOL_CONTENT" for range in ${!RANGES[@]}; do echo " RANGE: ${RANGES[$range]}" done unset RANGES done } test_all () { local -A SHARED_NETWORKS get_shared_network_declarations SHARED_NETWORKS "$CONTENTS" for network in "${!SHARED_NETWORKS[@]}"; do echo "Network: $network" NETWORK_CONTENTS="${SHARED_NETWORKS[$network]}" local -A SUBNETS get_subnet_declerations SUBNETS "$NETWORK_CONTENTS" for subnet in "${!SUBNETS[@]}"; do SUBNET_CONTENTS="${SUBNETS[$subnet]}" echo " SUBNET: $subnet" local -a POOLS get_pool_declerations POOLS "$SUBNET_CONTENTS" for pool in ${!POOLS[@]}; do POOL_CONTENT="${POOLS[$pool]}" echo " POOL: $pool" local -a RANGES get_pool_ranges RANGES "$POOL_CONTENT" for range in ${!RANGES[@]}; do RANGE="${RANGES[$range]}" echo " RANGE: $RANGE" done unset RANGES done local -A HOSTS get_host_declerations HOSTS "$SUBNET_CONTENTS" for host in ${!HOSTS[@]}; do echo " HOST: $host" done unset POOLS unset HOSTS done unset SUBNETS done unset SHARED_NETWORKS }