#!/bin/bash

SERVER_LIST=$(openstack server list -f json | jq -r '.[] | .Name')

INVENTORY_FILE="ansible_inventory.ini"

rm -f $INVENTORY_FILE

echo "[all]" > $INVENTORY_FILE

WORKER_NODES_SECTION=""
CONTROL_NODES_SECTION=""
SATOSA_SECTION=""
MONITOR_SECTION=""

while read -r name; do
    echo "$name" >> $INVENTORY_FILE

    if [[ $name == *k8sw* ]]; then
        WORKER_NODES_SECTION+="$name\n"
    elif [[ $name == *k8sc* ]]; then
        CONTROL_NODES_SECTION+="$name\n"
    elif [[ $name == *satosa* ]]; then
        SATOSA_SECTION+="$name\n"
    elif [[ $name == *monitor* ]]; then
        MONITOR_SECTION+="$name\n"
    fi
done <<< "$SERVER_LIST"

# Append each section to the inventory file
echo -e "\n[worker_nodes]" >> $INVENTORY_FILE
echo -e "$WORKER_NODES_SECTION" >> $INVENTORY_FILE
echo -e "\n[control_nodes]" >> $INVENTORY_FILE
echo -e "$CONTROL_NODES_SECTION" >> $INVENTORY_FILE
echo -e "\n[satosa]" >> $INVENTORY_FILE
echo -e "$SATOSA_SECTION" >> $INVENTORY_FILE
echo -e "\n[monitor]" >> $INVENTORY_FILE
echo -e "$MONITOR_SECTION" >> $INVENTORY_FILE

echo "Ansible inventory file created at $INVENTORY_FILE"