#!/bin/sh
# -----------------------------------------------------------------------------
# upgrade_craft                                       
# Copyright (c) 2012-2018 by cisco Systems, Inc.
# All rights reserved.
# usage upgrade_craft M16/M9 rack[0-15] XR ip_address[]
# this script to upgrade the craft fpd from backdoor
#
#------------------------------------------------------------------------------

chassis=$1
rack=$2
ip_address=$3

if test "$#" -ne 3;
then
    echo "Illegal number of parameters"
    echo "Usage ./upgrade_craft [m16/m9] [0-15] [XR ip_address]"
    exit
fi

if [ $rack -lt 0 -a $rack -gt 15 ];
then
    echo "invalid rack"
    exit
fi

echo $rack

if [ "$ip_address" == ""  ];
then
    echo "invalid Ip Address"
    exit
fi

version=`/opt/cisco/calvados/bin/show_version | grep Version | cut -d ' ' -f7`
location="/opt/cisco/calvados/packages/ncs4k-sysadmin-shared.rp-"$version"/fpd/ucode/"

cd $location

if [ "$chassis" == "m16" ];
then
    fpd_name="Craft-NCS4016"
    mv SLCD43GLD.bin             SLCD43GLD_backup_No_FW_UPGD.bin
    mv SLCD43GLD.bin.md5         SLCD43GLD_backup_No_FW_UPGD.bin.md5
    cp SLCD43GLD_FW_UPGD.bin     SLCD43GLD.bin
    cp SLCD43GLD_FW_UPGD.bin.md5 SLCD43GLD.bin.md5
elif [ "$chassis" == "m9" ];
then
    fpd_name="Craft-NCS4009"
    mv SLCD43GLD_NCS4009.bin             SLCD43GLD_NCS4009_backup_No_FW_UPGD.bin
    mv SLCD43GLD_NCS4009.bin.md5         SLCD43GLD_NCS4009_backup_No_FW_UPGD.bin.md5
    cp SLCD43GLD_NCS4009_FW_UPGD.bin     SLCD43GLD_NCS4009.bin
    cp SLCD43GLD_NCS4009_FW_UPGD.bin.md5 SLCD43GLD_NCS4009.bin.md5
else
    echo "Unknown chassis"
    exit
fi

ssh $ip_address '/pkg/bin/upgrade_fpd_ng fpd '$fpd_name $rack'/CI0 '' force;exit'

ret=$?

if [ $ret -eq 0 ];
then
    sleep 200
fi

if [ "$chassis" == "m16" ];
then
    mv SLCD43GLD_backup_No_FW_UPGD.bin     SLCD43GLD.bin
    mv SLCD43GLD_backup_No_FW_UPGD.bin.md5 SLCD43GLD.bin.md5
elif [ "$chassis" == "m9" ];
then
    mv SLCD43GLD_NCS4009_backup_No_FW_UPGD.bin     SLCD43GLD_NCS4009.bin
    mv SLCD43GLD_NCS4009_backup_No_FW_UPGD.bin.md5 SLCD43GLD_NCS4009.bin.md5
fi

