#!/bin/bash
# mr5.4: maintenance mode must be enabled before the upgrade

set -e

get_maintenance_mode_legacy() {
  echo "NGCP_MAINTENANCE is not available in /etc/default/ngcp-roles for mr4.5 LTS, using legacy mode"

  # we cannot use 'ngcpcfg values general.maintenance' here as second+ node cannot read yaml files
  # due to YAML->YAML::XS migration in mr5.4 (ngcpcfg shared storage has new format already)
  mode=$(awk '/maintenance: / {print $NF}' /etc/ngcp-config/config.yml)

  if [ "${mode}" = "yes" ]; then
    echo "Maintenance mode is enabled, continue"
    NGCP_MAINTENANCE=true
  else
    echo "Maintenance mode is NOT enabled, check: awk '/maintenance: / {print \$NF}' /etc/ngcp-config/config.yml"
    NGCP_MAINTENANCE=false
  fi
}

NGCP_MAINTENANCE=""

if [ ! -f "/etc/default/ngcp-roles" ] ; then
  echo "ERROR: Missing mandatory file '/etc/default/ngcp-roles', cannot continue!" >&2
  exit 1
fi

# shellcheck disable=SC1091
. /etc/default/ngcp-roles

if [ -z "${NGCP_MAINTENANCE}" ]; then
  get_maintenance_mode_legacy
fi

if ! "${NGCP_MAINTENANCE}" ; then
  echo "ERROR: maintenance mode is disabled, cannot continue." >&2
  echo "(maintenance mode must be enabled during the upgrade)"
  exit 1
fi

