#!/bin/sh

set -e

if ! [ -r /root/oci-openrc ] ; then
	echo "Could not load /root/oci-openrc: exiting."
	exit 1
fi
. /root/oci-openrc

oci_add_compute_to_aggregate () {
	local HOST AZ
	HOST=$1
	AZ=$2
	if openstack aggregate show ${AZ} --format json -c hosts | jq '.["hosts"][]' -r | grep -q ${HOST} ; then
		echo "Host ${HOST} already added to az ${AZ}"
	else
		echo "Adding ${HOST} to ${AZ} aggregate"
		openstack aggregate add host ${AZ} ${HOST}
	fi
	echo "Enabling compute ${HOST}"
	openstack compute service set --enable ${HOST} nova-compute
}

echo "===> Creating AZ and adding computes to them"
for i in $(seq 1 3) ; do
	echo "-> Creating az-${i}"
	if [ ""$(openstack aggregate list --format csv | q -H -d, "SELECT Name FROM - WHERE Name='az-${i}'") = "az-$i" ] ; then
		echo "Already az-${i} created"
	else
		openstack aggregate create --zone az-${i} az-${i}
	fi
done

oci_add_compute_to_aggregate cl1-compute-1.infomaniak.ch az-2
oci_add_compute_to_aggregate cl1-compute-2.infomaniak.ch az-3
oci_add_compute_to_aggregate cl1-compute-3.infomaniak.ch az-1
oci_add_compute_to_aggregate cl1-compute-4.infomaniak.ch az-2
oci_add_compute_to_aggregate cl1-compute-5.infomaniak.ch az-3
oci_add_compute_to_aggregate cl1-compute-6.infomaniak.ch az-1
oci_add_compute_to_aggregate cl1-compute-7.infomaniak.ch az-2
oci_add_compute_to_aggregate cl1-compute-8.infomaniak.ch az-3

exit 0
