#!/bin/bash
#  Copyright (c) 2016 Actian Corporation, All Rights Reserved
#
# Name: iiupdateleader
#
# Purpose:
#       Rename to leader and create workers file for an upgrade
#


cmd=`grep -c "\.hdfs\.master" $II_SYSTEM/ingres/files/config.dat`
if [ "$cmd" != "0" ]; then
    CONFIG_HOST=`iipmhost`
    VERSION=`head -1 $II_SYSTEM/ingres/version.rel`
    RELEASE_ID=`echo $VERSION | sed "s/[ ().\/]//g"`
    GET_X100_MASTER=`iigetres ii.$CONFIG_HOST.x100.hdfs.masternode`
    GET_CONFIG_MASTER=`iigetres ii.$CONFIG_HOST.config.hdfs.masternode.$RELEASE_ID`
    iisetres ii.$CONFIG_HOST.x100.hdfs.leadernode $GET_X100_MASTER
    iisetres ii.$CONFIG_HOST.config.hdfs.leadernode.$RELEASE_ID $GET_CONFIG_MASTER

    iiremres ii.$CONFIG_HOST.x100.hdfs.masternode
    iiremres ii.$CONFIG_HOST.config.hdfs.masternode.$RELEASE_ID
fi
if [ -f "$II_SYSTEM/ingres/files/hdfs/slaves" ]; then
    mv $II_SYSTEM/ingres/files/hdfs/slaves $II_SYSTEM/ingres/files/hdfs/workers
fi
if [ -f "$II_SYSTEM/ingres/files/hdfs/slaves.yarn" ]; then
    mv $II_SYSTEM/ingres/files/hdfs/slaves.yarn $II_SYSTEM/ingres/files/hdfs/workers.yarn
fi

# The vectorwise conf file can be located at 3 locations.
# 1. At the user level in user's home directory.
# 2. At a global level for all databases usually at dbfarm VW_CFG_DBFARM_DIR.
# 3. At a database level. The conf file can be either placed at VW_CFG_DBFARM_DIR with a name like
# vectorwise.<db name>.conf or found inside its DB folder with the name vectorwise.conf
# These conf files are searched for "gather_profiles_on_master" and replaced
# by "gather_profiles_on_leader".

update_vwconf () {
    PARAM_COUNT=`grep -c "gather_profiles_on_master" $1`
    if [ "$PARAM_COUNT" -gt 0 ]; then
        sed "-i.old" 's/gather_profiles_on_master/gather_profiles_on_leader/g' $1
    fi
}

# First check in installation user's home directory
VW_CFG_HOME_LOC="$HOME"/.vectorwise.conf

if [ -f "$VW_CFG_HOME_LOC" ]; then
    update_vwconf $VW_CFG_HOME_LOC
fi

# Then look in the DBFARM directory
II_DATABASE=`ingprenv II_DATABASE`
SUFFIX=ingres/data/vectorwise
VW_CFG_DBFARM_DIR="$II_DATABASE"/"$SUFFIX"

if [ -d "$VW_CFG_DBFARM_DIR" ]; then
    for VWCONF in `find "$VW_CFG_DBFARM_DIR" -type f -name vectorwise\*.conf`
    do
        update_vwconf $VWCONF
    done
fi
