#!/bin/sh

set -e
#set -x

# Get all disks:
TMPFILE=$(mktemp -t openstack-cluster-installer-agent.XXXXXX)
lsblk -l -d -J --exclude 2,7,11 >${TMPFILE}
NMU_LINES=$(( $(cat ${TMPFILE} | wc -l) - 1))
TMPFILE2=$(mktemp -t openstack-cluster-installer-agent.XXXXXX)
head -n ${NMU_LINES} ${TMPFILE} > ${TMPFILE2}
sed -i ${NMU_LINES}'s/$/,/' ${TMPFILE2}


# Get all interface names
echo '   "interfaces": [' >>${TMPFILE2}
for i in $(ip link show | grep -v '^ ' | grep -v 'lo:' | cut -d' ' -f2 | cut -d: -f1) ; do
	MAC_ADDR=$(ip link show dev $i | tail -n 1 | awk '{print $2}')
	echo '      {"name": "'${i}'", "macaddr": "'${MAC_ADDR}'" },' >>${TMPFILE2}
done
NMU_LINES=$(cat ${TMPFILE2} | wc -l)
sed -i ${NMU_LINES}'s/,$//' ${TMPFILE2}
# End the section
echo '   ],' >>${TMPFILE2}

# Chassis serial number
CHASSIS_SERIAL=$(dmidecode -s chassis-serial-number)
echo '   "machine": [' >>${TMPFILE2}
echo '      {"serial": "'${CHASSIS_SERIAL}'"}' >>${TMPFILE2}
echo '   ],' >>${TMPFILE2}

# Get total amount of RAM
TOTAL_RAM=$(dmidecode -t memory |  awk '$1 == "Size:" {t=t+$2} END {print t}')
RAM_TYPE=$(dmidecode -t 17 | grep Type | head -n 1 | awk '{print $2}')
RAM_SPEED=$(dmidecode -t 17 | grep Speed | head -n 1 | awk '{print $2}')
RAM_MANUFACTURER=$(dmidecode -t 17 | grep Manufacturer | head -n 1 | awk '{print $2}')
echo '   "memory": [' >>${TMPFILE2}
	echo '      {"size": "'${TOTAL_RAM}'", "type": "'${RAM_TYPE}'", "speed": "'${RAM_SPEED}'", "manufacturer": "'${RAM_MANUFACTURER}'" }' >>${TMPFILE2}
echo '   ]' >>${TMPFILE2}
echo '}' >>${TMPFILE2}

curl -vX POST --header "Content-Type: application/json" -d @${TMPFILE2} http://__OCI__GATEWAY__REPLACE__ME__/oci/report.php

#cat ${TMPFILE2}

rm ${TMPFILE}
rm ${TMPFILE2}
