#!/bin/bash
# 1) Check content of /etc/ngcp_nodename file.
# It must be spce on NGCP CE
# 2) Check content of MySQL/sqlite DB

set -e

if ! [ -f "$NGCP_NODENAME" ] ; then
  echo "Error: File $NGCP_NODENAME does not exist." >&2
  echo "Please execute 'echo spce > $NGCP_NODENAME'" >&2
  exit 1
fi

if [ "$(cat "$NGCP_NODENAME")" != "spce" ] ; then
  echo "Error: File $NGCP_NODENAME contains wrong value." >&2
  echo "Please execute 'echo spce > $NGCP_NODENAME'" >&2
  exit 1
fi


if ! [ -r "$DB_CFG_FILE" ] ; then
  echo "ERROR: Cannot read file $DB_CFG_FILE" >&2
  exit 1
fi
QUERY="select count(node) from cfg_schema where node not in ('spce', '')"
COUNT=$(sqlite3 "$DB_CFG_FILE" "$QUERY")
if [ "$COUNT" != "0" ]; then
  echo "Error: DB table cfg_schema contains wrong value." >&2
  echo "Please execute 'sqlite3 $DB_CFG_FILE \"update cfg_schema set node='spce'\"'" >&2
  exit 1
fi
QUERY="select revision from cfg_schema GROUP BY revision HAVING count(*) > 1;"
DUPLICATES=$(sqlite3 "$DB_CFG_FILE" "$QUERY")
if [ "$DUPLICATES" != "" ]; then
  echo "Error: DB table cfg_schema contains duplicated revisions: $DUPLICATES" >&2
  exit 1
fi

QUERY="select revision from db_schema GROUP BY revision HAVING count(*) > 1;"
DUPLICATES=$(mysql --defaults-extra-file="/etc/mysql/sipwise_extra.cnf" -B -s ngcp -e "$QUERY")
if [ "$DUPLICATES" != "" ]; then
  echo "Error: DB table ngcp.db_schema contains duplicated revisions: $DUPLICATES" >&2
  SQL="delete n2 FROM db_schema n1, db_schema n2 WHERE n1.revision = n2.revision AND n1.node IN ('spce','') AND n2.node NOT IN ('spce','');"
  echo "Please execute: mysql -uroot ngcp -e \"$SQL\"" >&2
  exit 1
fi

QUERY="select count(node) from db_schema where node not in ('spce', '')"
COUNT=$(mysql --defaults-extra-file="/etc/mysql/sipwise_extra.cnf" -B -s ngcp -e "$QUERY")
if [ "$COUNT" != "0" ]; then
  echo "Error: DB table ngcp.db_schema contains wrong value." >&2
  echo "Please execute: mysql -uroot -e \"update ngcp.db_schema set node='spce'\"" >&2
  exit 1
fi
