#!/bin/sh -e
# ID=3
# NAME=CPU core voltage (ipmi)
# DESCRIPTION=This monitoring uses ipmitool for getting CPU's core voltage.
# MEASUREMENT=voltage

. _inq-config-global; . $SHARE_DIR/functions-monitoring
[ -n "$PERIOD" ] || PERIOD=60

VCORE_PATTERNS='s/VCORE \(.\).*| \([^ ]*\).*|.*|.*|.*|.*|.*|.*|.*|.*/\1 => \2/p;
		s/cpu\(.\)\.vcore-s0.*| \([^ ]*\).*|.*|.*|.*|.*|.*|.*|.*|.*/\1 => \2/p'

strip_hash()
{
	local i
	for i in `ruby -e "$1.each_pair{|k, v| puts \"#{k};#{v}\"}"`; do
		echo "$i"
	done
}

while true; do
	INFO=`ipmitool sensor`
	RES=
	echo "$INFO" | sed -n "$VCORE_PATTERNS" | sed 's/.*na//' | \
	(
	while read VCORE_PAIR; do
		if [ -n "$VCORE_PAIR" ]; then
			if [ -n "$RES" ]; then
				RES="$RES, $VCORE_PAIR"
			else
				RES="$VCORE_PAIR"
			fi
		fi
	done
	RES="{ $RES }"
	for VCORE_PAIR in `strip_hash "$RES"`; do
		KEY=`echo "$VCORE_PAIR" | cut -f1 -d';'`
		VALUE=`echo "$VCORE_PAIR" | cut -f2 -d';'`
		[ -z "$VALUE" ] || monitoring_submit "$KEY" "$VALUE"
#		echo "$KEY" '->' "$VALUE"
	done
	)

	sleep $PERIOD
done
