#!/pkg/bin/ksh
#------------------------------------------------------------------
# show tech-support rdsfs command
#
# December 2006, Thomas Woolway
#
# Copyright (c) 2006-2009, 2011-2016 by cisco Systems, Inc.
# All rights reserved.
#------------------------------------------------------------------

#
# Include the standard show tech-support functions
#
. /pkg/bin/show_tech_main_fragment

#For card-type
__cardtype="unspecified"

#
# Find the pid and jid of the RDSFS process.
#

OS_STRING=`uname -s`
if [[ ${OS_STRING} = "QNX" ]]; then
rdsfs_pid=`pidin | grep rdsfs_svr | cut -c1-8 | head -n 1`
else
rdsfs_pid=`ps -ef | grep rdsfs_svr | grep -v grep | awk '{print $2}'`
fi

rdsfs_jid=`sysmgr_show -p rdsfs_svr | grep Job | cut -d : -f 2`
#
# Send everything to the standard handler
#
while [ "$#" -gt "0" ]; do
    case "$1" in
        -t) __cardtype="$2"; shift 2;;
        *)  default_parser_function $@; shift $#;;
    esac
done

if [ "$__cardtype" == "unspecified" ]; then
    __cardtype=`node_type`
fi

#Commands that run once per system,
sys_exec[1]="show sdr detail"
sys__ksh[1]='sdr_show_info -D' 
sys_exec[2]="show logging" 
sys__ksh[2]='show_logging'
sys_exec[3]="show redundancy"
sys__ksh[3]='redcon_show'
sys_exec[4]="show gsp stats server jid $rdsfs_jid"
sys__ksh[4]="gsp_show -c $rdsfs_pid"
sys_exec[5]="show gsp groups admin"
sys__ksh[5]='gsp_show -a'

#############################################################
# Commands that run on all nodes
all_exec[1]="follow process $rdsfs_pid iteration 1 verbose"
all__ksh[1]='attach_process -p $rdsfs_pid'
all_exec[2]="show rdsfs trace boot"
all__ksh[2]='show_ltrace_rdsfs -T boot'
all_exec[3]="show rdsfs trace error"
all__ksh[3]='show_ltrace_rdsfs -T error'
all_exec[4]="show rdsfs trace internal"
all__ksh[4]='show_ltrace_rdsfs -T internal'
all_exec[5]="show rdsfs trace iofunc"
all__ksh[5]='show_ltrace_rdsfs -T iofunc'
all_exec[6]="show rdsfs trace crc"
all__ksh[6]='show_ltrace_rdsfs -T crc'
all_exec[7]="show rdsfs trace smart-idt"
all__ksh[7]='show_ltrace_rdsfs -T smart-idt'
all_exec[8]="show proc blocked"
if [ "$platform" = "panini" ]
then
all__ksh[8]='sh_proc_ng_blocked'
else 
all__ksh[8]='show_processes -b'
fi
all_exec[9]="show system-statistics component rdsfs"
all__ksh[9]="ship_show -j $rdsfs_jid"
all_exec[10]="show rds trace process rdsfs_svr all"
all__ksh[10]='show_ltrace_rds -P rdsfs_svr -T all'
all_exec[11]="follow process $rdsfs_pid iteration 1 verbose"
all__ksh[11]='attach_process -p $rdsfs_pid'
if [ "$platform" = "panini" ]
then
all_exec[12]="run cat /dev/shmem/rdsfs_svr.log"
all__ksh[12]='cat /dev/shmem/rdsfs_svr.log'
else
all_exec[12]="run cat /tmp/rdsfs_svr.log"
all__ksh[12]='cat /tmp/rdsfs_svr.log'
fi
all_exec[13]="show process rdsfs_svr"
all__ksh[13]="sysmgr_show -o -p rdsfs_svr"
#
# Our display function
#
display() {
    #
    # Display a header
    #
    print_main_heading "show tech-support rdsfs"

    if [ "$__cardtype" == "SYS" ]; then
        exec_commands sys
    else 
        exec_commands all
    fi
    #
    # Display a footer
    #
    print_main_heading "show tech-support rdsfs complete"
}

#
# Use the standard show tech-support infra to call our display function and
# send the output to console or file
#
. /pkg/bin/show_tech_file_fragment

