#!/pkg/bin/ksh
#------------------------------------------------------------------
# show tech-support sysdb command
#
# November 2006, Thomas Woolway
#
# Copyright (c) 2006-2019 by cisco Systems, Inc.
# All rights reserved.
#------------------------------------------------------------------

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


sysdb_shared_nc_jid=`sysmgr_show -p sysdb_shared_nc | grep Job |  cut -f 2 -d ":" | cut -f 2 -d " "`
sysdb_shared_sc_jid=`sysmgr_show -p sysdb_shared_sc | grep Job |  cut -f 2 -d ":" | cut -f 2 -d " "`
sysdb_svr_admin_jid=`sysmgr_show -p sysdb_svr_admin | grep Job |  cut -f 2 -d ":" | cut -f 2 -d " "`
sysdb_mc_jid=`sysmgr_show -p sysdb_mc | grep Job |  cut -f 2 -d ":" | cut -f 2 -d " "`

PLATFORM_TYPE=`uname -m`
#
# Commands to run, grouped by location/plane. Collect the traces first, as 
# these are more likely to wrap.
#

#
# Local Plane Commands
#
local_exec[1]='show sysdb trace medusa client fast location $location'
local__ksh[1]='sysdb_show_ltrace -T mc_fast -M $fq_nodeid -i $fq_nodeid'
local_exec[2]='show sysdb trace medusa server fast location $location'
local__ksh[2]='sysdb_show_ltrace -T ms_fast -i $fq_nodeid'
local_exec[3]='show sysdb trace internal location $location'
local__ksh[3]='sysdb_show_ltrace -T internal -i $fq_nodeid'
local_exec[4]='show sysdb trace config-grp location $location'
local__ksh[4]='sysdb_show_ltrace -T config_grp -i $fq_nodeid'
local_exec[5]='show sysdb trace verification location $location'
local__ksh[5]='sysdb_show_ltrace -T vrfn -i $fq_nodeid'
local_exec[6]='show sysdb trace access location $location'
local__ksh[6]='sysdb_show_ltrace -T access -i $fq_nodeid'
local_exec[7]='show sysdb trace clientlib edm-access location $fq_nodeid'
local__ksh[7]='sysdb_show_clientlib_ltrace -T edm_acc -i $fq_nodeid'
local_exec[8]='show sysdb trace clientlib vicr location $location'
local__ksh[8]='sysdb_show_clientlib_ltrace -T vicr -i $fq_nodeid'
local_exec[9]='show sysdb trace clientlib reconnection location $location'
local__ksh[9]='sysdb_show_clientlib_ltrace -T recon -i $fq_nodeid'
local_exec[10]='show sysdb trace clientlib restart-timeout location $location'
local__ksh[10]='sysdb_show_clientlib_ltrace -T rst_tmo -i $fq_nodeid'
local_exec[11]='show sysdb trace client-errors location $location'
local__ksh[11]='sysdb_show_ltrace -T client_error -i $fq_nodeid'
local_exec[12]='show sysdb trace connections location $location'
local__ksh[12]='sysdb_show_ltrace -T conn -i $fq_nodeid'
local_exec[13]='show sysdb trace edm location $location'
local__ksh[13]='sysdb_show_ltrace -T edm -i $fq_nodeid'
local_exec[14]='show sysdb trace explicitlocking location $location'
local__ksh[14]='sysdb_show_ltrace -T lock -i $fq_nodeid'
local_exec[15]='show sysdb trace notification location $location'
local__ksh[15]='sysdb_show_ltrace -T nfn -i $fq_nodeid'
local_exec[16]='show sysdb trace requests location $location'
local__ksh[16]='sysdb_show_ltrace -T request -i $fq_nodeid'
local_exec[17]='show sysdb trace responses location $location'
local__ksh[17]='sysdb_show_ltrace -T response -i $fq_nodeid'
local_exec[18]='show sysdb trace restart-timeout location $location'
local__ksh[18]='sysdb_show_ltrace -T rst_tmo -i $fq_nodeid'
local_exec[19]='show sysdb trace startup-edm location $location'
local__ksh[19]='sysdb_show_ltrace -T edms -i $fq_nodeid'
local_exec[20]='show sysdb trace transactions location $location'
local__ksh[20]='sysdb_show_ltrace -T trans -i $fq_nodeid'
local_exec[21]='show sysdb trace vicr location $location'
local__ksh[21]='sysdb_show_ltrace -T vicr -i $fq_nodeid'
local_exec[22]='show sysdb trace vs location $location'
local__ksh[22]='sysdb_show_ltrace -T vs -i $fq_nodeid'
local_exec[23]='show sysdb trace medusa client bucket location $location'
local__ksh[23]='sysdb_show_ltrace -T bucket -M $fq_nodeid -i $fq_nodeid'
local_exec[24]='show sysdb connections detail location $location'
local__ksh[24]='sysdbshow -l $fq_nodeid -c show conn advanced'
local_exec[25]='show sysdb medusa connections detail location $location'
local__ksh[25]='sysdbshow -m $fq_nodeid -c show conn medusa-advanced'
local_exec[26]='show sysdb medusa requests location $location'
local__ksh[26]='sysdbshow -m $fq_nodeid -c show requests medusa'
local_exec[27]='show sysdb medusa registrations edm location $location'
local__ksh[27]='sysdbshow -m $fq_nodeid -c show edm all'
local_exec[28]='show sysdb medusa registrations notification location $location'
local__ksh[28]='sysdbshow -m $fq_nodeid -c show nfn all'
local_exec[29]='show sysdb medusa registrations startup-edm location $location'
local__ksh[29]='sysdbshow -m $fq_nodeid -c show edmsm all'
local_exec[30]='show sysdb medusa registrations verification location $location'
local__ksh[30]='sysdbshow -m $fq_nodeid -c show vrfn all'
local_exec[31]='show sysdb medusa registrations vs location $location'
local__ksh[31]='sysdbshow -m $fq_nodeid -c show vsm all'
local_exec[32]='show sysdb performance location $location'
local__ksh[32]='sysdbshow -l $fq_nodeid -c perf'
local_exec[33]='show sysdb registrations edm detail location $location'
local__ksh[33]='sysdbshow -l $fq_nodeid -c show edm advanced'
local_exec[34]='show sysdb registrations notification detail location $location'
local__ksh[34]='sysdbshow -l $fq_nodeid -c show nfn advanced'
local_exec[35]='show sysdb registrations startup-edm detail location $location'
local__ksh[35]='sysdbshow -l $fq_nodeid -c show edmsm advanced'
local_exec[36]='show sysdb registrations verification detail location $location'
local__ksh[36]='sysdbshow -l $fq_nodeid -c show vrfn advanced'
local_exec[37]='show sysdb registrations vs detail location $location'
local__ksh[37]='sysdbshow -l $fq_nodeid -c show vsm advanced'
local_exec[38]='show sysdb requests location $location'
local__ksh[38]='sysdbshow -l $fq_nodeid -c requests'
local_exec[39]='show sysdb statistics advanced location $location'
local__ksh[39]='sysdbshow -l $fq_nodeid -c stats advanced'
local_exec[40]='show sysdb statistics clients location $location'
local__ksh[40]='sysdbshow -l $fq_nodeid -c stats client all'
local_exec[41]='show sysdb statistics clients verification location $location'
local__ksh[41]='sysdbshow -l $fq_nodeid -c stats client verify'
local_exec[42]='show sysdb statistics clients application location $location'
local__ksh[42]='sysdbshow -l $fq_nodeid -c stats client apply'
local_exec[43]='show sysdb statistics clients last 1 location $location'
local__ksh[43]='sysdbshow -l $fq_nodeid -c stats client last 1'
local_exec[44]='show sysdb statistics clients last 5 location $location'
local__ksh[44]='sysdbshow -l $fq_nodeid -c stats client last 5'
local_exec[45]='show sysdb statistics clients last 30 location $location'
local__ksh[45]='sysdbshow -l $fq_nodeid -c stats client last 30'
local_exec[46]='show sysdb summary location $location'
local__ksh[46]='sysdbshow -l $fq_nodeid -c summary'
local_exec[47]='show sysdb trace medusa server slow location $location'
local__ksh[47]='sysdb_show_ltrace -T ms_slow -i $fq_nodeid'
local_exec[48]='show sysdb trace medusa client slow location $location'
local__ksh[48]='sysdb_show_ltrace -T mc_slow -M $fq_nodeid -i $fq_nodeid'
local_exec[49]='show sysdb trace medusa client client-errors location $location'
local__ksh[49]='sysdb_show_ltrace -T mc_ce -M $fq_nodeid -i $fq_nodeid'
local_exec[50]='show sysdb trace medusa client access location $location'
local__ksh[50]='sysdb_show_ltrace -T mc_access -M $fq_nodeid -i $fq_nodeid'
local_exec[51]='show sysdb registrations context-store location $location'
local__ksh[51]='sysdbshow -l $fq_nodeid -c show context'
local_exec[52]='show epm trace boot location $location'
local__ksh[52]='epm_show_ltrace -i $fq_nodeid -T 0x1'
local_exec[53]='show epm trace config location $location'
local__ksh[53]='epm_show_ltrace -i $fq_nodeid -T 0x3'
local_exec[54]='show sysdb trace clientlib file location $location'
local__ksh[54]='sysdb_show_clientlib_ltrace -T file -i $fq_nodeid'
local_exec[55]='show sysdb trace lock-debugs location $location'
local__ksh[55]='sysdb_show_ltrace -T lock_fast -i $fq_nodeid'
local_exec[56]='show sysdb trace lock-errors location $location'
local__ksh[56]='sysdb_show_ltrace -T lock_slow -i $fq_nodeid'
local_exec[57]='show sysdb trace clientlib event location $location'
local__ksh[57]='sysdb_show_clientlib_ltrace -T event -i $fq_nodeid'
local_exec[58]='show sysdb trace clientlib suspend location $location'
local__ksh[58]='sysdb_show_clientlib_ltrace -T suspend -i $fq_nodeid'
local_exec[59]='show processes sysdb_svr_local location $location'
local__ksh[59]='sysmgr_show -p sysdb_svr_local -n $fq_nodeid'
local_exec[60]='show processes sysdb_mc location $location'
local__ksh[60]='sysmgr_show -p sysdb_mc -n $fq_nodeid'
local_exec[61]='show processes files $sysdb_mc_jid details location $location'
if [[ "${PLATFORM_TYPE}" == "x86_64" ]]; then
    local__ksh[61]='sh_proc_files -j  $sysdb_mc_jid -v'
else
    local__ksh[61]='show_processes -p $sysdb_mc_jid -D'
fi
local_exec[62]='show sysdb trace medusa client lwm location $location'
local__ksh[62]='sysdb_show_ltrace -T mc_lwm -M $fq_nodeid -i $fq_nodeid'


#
# Shared Plane Commands
#

shared_exec[1]="show sysdb trace medusa server fast shared-plane"
shared__ksh[1]='sysdb_show_ltrace -T ms_fast -s active'
shared_exec[2]='show sysdb trace internal shared-plane'
shared__ksh[2]='sysdb_show_ltrace -T internal -s active'
shared_exec[3]='show sysdb trace config-grp shared-plane'
shared__ksh[3]='sysdb_show_ltrace -T config_grp -s active'
shared_exec[4]="show sysdb trace verification shared-plane"
shared__ksh[4]='sysdb_show_ltrace -T vrfn -s active'
shared_exec[5]="show sysdb trace access shared-plane"
shared__ksh[5]='sysdb_show_ltrace -T access -s active'
shared_exec[6]="show sysdb trace client-errors shared-plane"
shared__ksh[6]='sysdb_show_ltrace -T client_error -s active'
shared_exec[7]="show sysdb trace connections shared-plane"
shared__ksh[7]='sysdb_show_ltrace -T conn -s active'
shared_exec[8]="show sysdb trace edm shared-plane"
shared__ksh[8]='sysdb_show_ltrace -T edm -s active'
shared_exec[9]="show sysdb trace explicitlocking shared-plane"
shared__ksh[9]='sysdb_show_ltrace -T lock -s active'
shared_exec[10]="show sysdb trace notification shared-plane"
shared__ksh[10]='sysdb_show_ltrace -T nfn -s active'
shared_exec[11]="show sysdb trace replication shared-plane"
shared__ksh[11]='sysdb_show_ltrace -T rpl -s active'
shared_exec[12]="show sysdb trace requests shared-plane"
shared__ksh[12]='sysdb_show_ltrace -T request -s active'
shared_exec[13]="show sysdb trace responses shared-plane"
shared__ksh[13]='sysdb_show_ltrace -T response -s active'
shared_exec[14]="show sysdb trace restart-timeout shared-plane"
shared__ksh[14]='sysdb_show_ltrace -T rst_tmo -s active'
shared_exec[15]="show sysdb trace startup-edm shared-plane"
shared__ksh[15]='sysdb_show_ltrace -T edms -s active'
shared_exec[16]="show sysdb trace transactions shared-plane"
shared__ksh[16]='sysdb_show_ltrace -T trans -s active'
shared_exec[17]="show sysdb trace vs shared-plane"
shared__ksh[17]='sysdb_show_ltrace -T vs -s active'
shared_exec[18]="show sysdb connections detail shared-plane"
shared__ksh[18]='sysdbshow -s -c show conn advanced'
shared_exec[19]="show sysdb performance shared-plane"
shared__ksh[19]='sysdbshow -s -c perf'
shared_exec[20]="show sysdb registrations edm detail shared-plane"
shared__ksh[20]='sysdbshow -s -c show edm advanced'
shared_exec[21]="show sysdb registrations notification detail shared-plane"
shared__ksh[21]='sysdbshow -s -c show nfn advanced'
shared_exec[22]="show sysdb registrations sTartup-edm detail shared-plane"
shared__ksh[22]='sysdbshow -s -c show edmsm advanced'
shared_exec[23]="show sysdb registrations verification detail shared-plane"
shared__ksh[23]='sysdbshow -s -c show vrfn advanced'
shared_exec[24]="show sysdb registrations vs detail shared-plane"
shared__ksh[24]='sysdbshow -s -c show vsm advanced'
shared_exec[25]="show sysdb requests shared-plane"
shared__ksh[25]='sysdbshow -s -c requests'
shared_exec[26]="show sysdb statistics advanced shared-plane"
shared__ksh[26]='sysdbshow -s -c stats advanced'
shared_exec[27]="show sysdb statistics client shared-plane"
shared__ksh[27]='sysdbshow -s -c stats client all'
shared_exec[28]='show sysdb statistics clients shared-plane'
shared__ksh[28]='sysdbshow -s -c stats client all'
shared_exec[29]='show sysdb statistics clients verification shared-plane'
shared__ksh[29]='sysdbshow -s -c stats client verify'
shared_exec[30]='show sysdb statistics clients application shared-plane'
shared__ksh[30]='sysdbshow -s -c stats client apply'
shared_exec[31]='show sysdb statistics clients last 1 shared-plane'
shared__ksh[31]='sysdbshow -s -c stats client last 1'
shared_exec[32]='show sysdb statistics clients last 5 shared-plane'
shared__ksh[32]='sysdbshow -s -c stats client last 5'
shared_exec[33]='show sysdb statistics clients last 30 shared-plane'
shared__ksh[33]='sysdbshow -s -c stats client last 30'
shared_exec[34]='show sysdb statistics failover shared-plane'
shared__ksh[34]='sysdbshow -s -c stats failover'
shared_exec[35]='show sysdb summary shared-plane'
shared__ksh[35]='sysdbshow -s -c summary'
shared_exec[36]='show sysdb summary local_plane'
shared__ksh[36]='sysdbshow -LR -c summary'
shared_exec[37]="show sysdb trace medusa server slow shared-server"
shared__ksh[37]='sysdb_show_ltrace -T ms_slow -s active'
shared_exec[38]='show sysdb registrations context-store shared-plane'
shared__ksh[38]='sysdbshow -s -c show context'
shared_exec[39]='show epm trace boot'
shared__ksh[39]='epm_show_ltrace -T 0x1'
shared_exec[40]='show epm trace config'
shared__ksh[40]='epm_show_ltrace -T 0x3'
shared_exec[41]='show sysdb trace lock-debugs shared-plane'
shared__ksh[41]='sysdb_show_ltrace -T lock_fast -s active'
shared_exec[42]='show sysdb trace lock-errors shared-plane'
shared__ksh[42]='sysdb_show_ltrace -T lock_slow -s active'
shared_exec[43]="show rds trace process sysdb_shared_sc all location all"
shared__ksh[43]='show_ltrace_rds -i all -P sysdb_shared_sc -T all'
shared_exec[44]="show rds trace process sysdb_shared_nc all location all"
shared__ksh[44]='show_ltrace_rds -i all -P sysdb_shared_nc -T all'
shared_exec[45]="show replicator trace client jid $sysdb_shared_sc_jid location all"
shared__ksh[45]='replicator_show_ltrace -i all -a -j $sysdb_shared_sc_jid'
shared_exec[46]="show replicator trace client jid $sysdb_shared_nc_jid location all"
shared__ksh[46]='replicator_show_ltrace -i all -a -j $sysdb_shared_nc_jid'
shared_exec[47]='show processes sysdb_shared_sc location all'
shared__ksh[47]='sysmgr_show -p sysdb_shared_sc -n all'
shared_exec[48]='show processes sysdb_shared_nc location all'
shared__ksh[48]='sysmgr_show -p sysdb_shared_nc -n all'
shared_exec[49]='show processes sysdb_shared_data_nc location all'
shared__ksh[49]='sysmgr_show -p sysdb_shared_data_nc -n all'


#
# Standby shared plane commands
#

shared_sby_exec[1]="show sysdb trace medusa server fast shared-plane standby"
shared_sby__ksh[1]='sysdb_show_ltrace -T ms_fast -s -R standby'
shared_sby_exec[2]='show sysdb trace internal shared-plane standby'
shared_sby__ksh[2]='sysdb_show_ltrace -T internal -s -R standby'
shared_sby_exec[3]='show sysdb trace config-grp shared-plane standby'
shared_sby__ksh[3]='sysdb_show_ltrace -T config_grp -s -R standby'
shared_sby_exec[4]="show sysdb trace verification shared-plane standby"
shared_sby__ksh[4]='sysdb_show_ltrace -T vrfn -s -R standby'
shared_sby_exec[5]="show sysdb trace access shared-plane standby"
shared_sby__ksh[5]='sysdb_show_ltrace -T access -s -R standby'
shared_sby_exec[6]="show sysdb trace client-errors shared-plane standby"
shared_sby__ksh[6]='sysdb_show_ltrace -T client_error -s -R standby'
shared_sby_exec[7]="show sysdb trace connections shared-plane standby"
shared_sby__ksh[7]='sysdb_show_ltrace -T conn -s -R standby'
shared_sby_exec[8]="show sysdb trace edm shared-plane standby"
shared_sby__ksh[8]='sysdb_show_ltrace -T edm -s -R standby'
shared_sby_exec[9]="show sysdb trace explicitlocking shared-plane standby"
shared_sby__ksh[9]='sysdb_show_ltrace -T lock -s -R standby'
shared_sby_exec[10]="show sysdb trace notification shared-plane standby"
shared_sby__ksh[10]='sysdb_show_ltrace -T nfn -s -R standby'
shared_sby_exec[11]="show sysdb trace replication shared-plane standby"
shared_sby__ksh[11]='sysdb_show_ltrace -T rpl -s -R standby'
shared_sby_exec[12]="show sysdb trace requests shared-plane standby"
shared_sby__ksh[12]='sysdb_show_ltrace -T request -s -R standby'
shared_sby_exec[13]="show sysdb trace responses shared-plane standby "
shared_sby__ksh[13]='sysdb_show_ltrace -T response -s -R standby'
shared_sby_exec[14]="show sysdb trace restart-timeout shared-plane standby"
shared_sby__ksh[14]='sysdb_show_ltrace -T rst_tmo -s -R standby'
shared_sby_exec[15]="show sysdb trace startup-edm shared-plane standby"
shared_sby__ksh[15]='sysdb_show_ltrace -T edms -s -R standby'
shared_sby_exec[16]="show sysdb trace transactions shared-plane standby"
shared_sby__ksh[16]='sysdb_show_ltrace -T trans -s -R standby'
shared_sby_exec[17]="show sysdb trace vs shared-plane standby"
shared_sby__ksh[17]='sysdb_show_ltrace -T vs -s -R standby'
shared_sby_exec[18]="show sysdb connections detail shared-plane standby"
shared_sby__ksh[18]='sysdbshow -s -R standby -c show conn advanced'
shared_sby_exec[19]="show sysdb performance shared-plane standby"
shared_sby__ksh[19]='sysdbshow -s -R standby -c perf'
shared_sby_exec[20]="show sysdb registrations edm detail shared-plane standby"
shared_sby__ksh[20]='sysdbshow -s -R standby -c show edm advanced'
shared_sby_exec[21]="show sysdb registrations notification detail shared-plane standby"
shared_sby__ksh[21]='sysdbshow -s -R standby -c show nfn advanced'
shared_sby_exec[22]="show sysdb registrations sTartup-edm detail shared-plane standby"
shared_sby__ksh[22]='sysdbshow -s -R standby -c show edmsm advanced'
shared_sby_exec[23]="show sysdb registrations verification detail shared-plane standby"
shared_sby__ksh[23]='sysdbshow -s -R standby -c show vrfn advanced'
shared_sby_exec[24]="show sysdb registrations vs detail shared-plane standby"
shared_sby__ksh[24]='sysdbshow -s -R standby -c show vsm advanced'
shared_sby_exec[25]="show sysdb requests shared-plane standby"
shared_sby__ksh[25]='sysdbshow -s -R standby -c requests'
shared_sby_exec[26]="show sysdb statistics advanced shared-plane standby"
shared_sby__ksh[26]='sysdbshow -s -R standby -c stats advanced'
shared_sby_exec[27]="show sysdb statistics client shared-plane standby"
shared_sby__ksh[27]='sysdbshow -s -R standby -c stats client all'
shared_sby_exec[28]='show sysdb statistics clients shared-plane standby'
shared_sby__ksh[28]='sysdbshow -s -R standby -c stats client all'
shared_sby_exec[29]='show sysdb statistics clients verification shared-plane standby'
shared_sby__ksh[29]='sysdbshow -s -R standby -c stats client verify'
shared_sby_exec[30]='show sysdb statistics clients application shared-plane standby'
shared_sby__ksh[30]='sysdbshow -s -R standby -c stats client apply'
shared_sby_exec[31]='show sysdb statistics clients last 1 shared-plane standby'
shared_sby__ksh[31]='sysdbshow -s -R standby -c stats client last 1'
shared_sby_exec[32]='show sysdb statistics clients last 5 shared-plane standby'
shared_sby__ksh[32]='sysdbshow -s -R standby -c stats client last 5'
shared_sby_exec[33]='show sysdb statistics clients last 30 shared-plane standby'
shared_sby__ksh[33]='sysdbshow -s -R standby -c stats client last 30'
shared_sby_exec[34]='show sysdb statistics failover shared-plane standby'
shared_sby__ksh[34]='sysdbshow -s -R standby -c stats failover'
shared_sby_exec[35]='show sysdb summary shared-plane standby'
shared_sby__ksh[35]='sysdbshow -s -R standby -c summary'
shared_sby_exec[36]="show sysdb trace medusa server slow shared-plane standby"
shared_sby__ksh[36]='sysdb_show_ltrace -T ms_slow -s -R standby'
shared_sby_exec[37]='show sysdb registrations context-store shared-plane standby'
shared_sby__ksh[37]='sysdbshow -s -R standby -c show context'
shared_sby_exec[38]='show sysdb trace lock-debugs shared-plane standby'
shared_sby__ksh[38]='sysdb_show_ltrace -T lock_fast -s -R standby'
shared_sby_exec[39]='show sysdb trace lock-errors shared-plane standby'
shared_sby__ksh[39]='sysdb_show_ltrace -T lock_slow -s -R standby'


#
# Admin Plane Commands
#

admin_exec[1]='admin show sysdb trace medusa server fast'
admin__ksh[1]='sysdb_show_ltrace -T ms_fast -A active'
admin_exec[2]='admin show sysdb trace internal'
admin__ksh[2]='sysdb_show_ltrace -r -T internal -A active'
admin_exec[3]='admin show sysdb trace config-grp'
admin__ksh[3]='sysdb_show_ltrace -T config_grp -A -R active'
admin_exec[4]="admin show sysdb trace verification"
admin__ksh[4]='sysdb_show_ltrace -T vrfn -A active'
admin_exec[5]="admin show sysdb trace access"
admin__ksh[5]='sysdb_show_ltrace -T access -A active'
admin_exec[6]="admin show sysdb trace client-errors"
admin__ksh[6]='sysdb_show_ltrace -T client_error -A active'
admin_exec[7]="admin show sysdb trace connections"
admin__ksh[7]='sysdb_show_ltrace -T conn -A active'
admin_exec[8]="admin show sysdb trace edm"
admin__ksh[8]='sysdb_show_ltrace -T edm -A active'
admin_exec[9]="admin show sysdb trace explicitlocking"
admin__ksh[9]='sysdb_show_ltrace -T lock -A active'
admin_exec[10]="admin show sysdb trace notification"
admin__ksh[10]='sysdb_show_ltrace -T nfn -A active'
admin_exec[11]="admin show sysdb trace replication"
admin__ksh[11]='sysdb_show_ltrace -T rpl -A active'
admin_exec[12]="admin show sysdb trace requests"
admin__ksh[12]='sysdb_show_ltrace -T request -A active'
admin_exec[13]="admin show sysdb trace responses"
admin__ksh[13]='sysdb_show_ltrace -T response -A active'
admin_exec[14]="admin show sysdb trace restart-timeout"
admin__ksh[14]='sysdb_show_ltrace -T rst_tmo -A active'
admin_exec[15]="admin show sysdb trace startup-edm"
admin__ksh[15]='sysdb_show_ltrace -T edms -A active'
admin_exec[16]="admin show sysdb trace transactions"
admin__ksh[16]='sysdb_show_ltrace -T trans -A active'
admin_exec[17]="admin show sysdb trace vs"
admin__ksh[17]='sysdb_show_ltrace -T vs -A active'
admin_exec[18]='admin show sysdb connections detail'
admin__ksh[18]='sysdbshow -A -c show conn advanced'
admin_exec[19]='admin show sysdb performance'
admin__ksh[19]='sysdbshow -A -c perf'
admin_exec[20]='admin show sysdb registrations edm detail'
admin__ksh[20]='sysdbshow -A -c show edm advanced'
admin_exec[21]='admin show sysdb registrations notification detail'
admin__ksh[21]='sysdbshow -A -c show nfn advanced'
admin_exec[22]='admin show sysdb registrations startup-edm detail'
admin__ksh[22]='sysdbshow -A -c show edmsm advanced'
admin_exec[23]='admin show sysdb registrations verification detail'
admin__ksh[23]='sysdbshow -A -c show vrfn advanced'
admin_exec[24]='admin show sysdb registrations vs detail'
admin__ksh[24]='sysdbshow -A -c show vsm advanced'
admin_exec[25]='admin show sysdb requests'
admin__ksh[25]='sysdbshow -A -c requests'
admin_exec[26]='admin show sysdb statistics advanced'
admin__ksh[26]='sysdbshow -A -c stats advanced'
admin_exec[27]='admin show sysdb statistics client'
admin__ksh[27]='sysdbshow -A -c stats client all'
admin_exec[28]='admin show sysdb statistics clients verification'
admin__ksh[28]='sysdbshow -A -c stats client verify'
admin_exec[29]='admin show sysdb statistics clients application'
admin__ksh[29]='sysdbshow -A -c stats client apply'
admin_exec[30]='admin show sysdb statistics clients last 1'
admin__ksh[30]='sysdbshow -A -c stats client last 1'
admin_exec[31]='admin show sysdb statistics clients last 5'
admin__ksh[31]='sysdbshow -A -c stats client last 5'
admin_exec[32]='admin show sysdb statistics clients last 30'
admin__ksh[32]='sysdbshow -A -c stats client last 30'
admin_exec[33]='admin show sysdb statistics failover'
admin__ksh[33]='sysdbshow -A -c stats failover'
admin_exec[34]='admin show sysdb summary'
admin__ksh[34]='sysdbshow -A -c summary'
admin_exec[35]='admin show sysdb trace medusa server slow'
admin__ksh[35]='sysdb_show_ltrace -T ms_slow -A active'
admin_exec[36]='admin show sysdb registrations context-store'
admin__ksh[36]='sysdbshow -A -c show context'
admin_exec[37]='admin show epm trace boot'
admin__ksh[37]='epm_show_ltrace -m -T 0x1'
admin_exec[38]='admin show epm trace config'
admin__ksh[38]='epm_show_ltrace -m -T 0x3'
admin_exec[39]='admin show sysdb trace lock-debugs'
admin__ksh[39]='sysdb_show_ltrace -T lock_fast -A active'
admin_exec[40]='admin show sysdb trace lock-errors'
admin__ksh[40]='sysdb_show_ltrace -T lock_slow -A active'
admin_exec[41]="show rds trace process sysdb_svr_admin all location all"
admin__ksh[41]='show_ltrace_rds -i all -P sysdb_svr_admin -T all'
admin_exec[42]="show replicator trace client jid $sysdb_svr_admin_jid location all"
admin__ksh[42]='replicator_show_ltrace -i all -a -j $sysdb_svr_admin_jid'
admin_exec[43]='show processes sysdb_svr_admin location all'
admin__ksh[43]='sysmgr_show -p sysdb_svr_admin -n all'

# get_pid function. Given the process name, it will
# echo the pid for that process
# it will have code to take care of the host OS.
OS_STRING=`uname -s`
function get_pid {
    if [[ ${OS_STRING} = "QNX" ]]; then
        pid=`pidin | grep $1 | cut -c1-8 | head -n 1`
    else
        pid=`ps -ef | grep $1 | grep -v grep | awk '{print \$2}'`
    fi
    echo ${pid}
}

function get_standby_state {
    my_nodename=`uname -n`
    my_nodeid=`node_conversion -i $my_nodename`
    standby_up=`redcon_show -n $my_nodeid | grep "is in STANDBY role" | wc -l`
}

#
# Find the process IDs of the four SysDB processes
#
sysdb_mc_pid=`get_pid sysdb_mc`
sysdb_shared_nc_pid=`get_pid sysdb_shared_nc`
sysdb_shared_sc_pid=`get_pid sysdb_shared_sc`
sysdb_admin_pid=`get_pid sysdb_svr_admin`
sysdb_local_pid=`get_pid sysdb_svr_local`

#
# Follow (attach_process) Commands
#

attach_exec[1]="follow process $sysdb_mc_pid iteration 1"
attach__ksh[1]="attach_process -p $sysdb_mc_pid -i 1"
attach_exec[2]="follow process $sysdb_shared_nc_pid iteration 1"
attach__ksh[2]="attach_process -p $sysdb_shared_nc_pid -i 1"
attach_exec[3]="follow process $sysdb_shared_sc_pid iteration 1"
attach__ksh[3]="attach_process -p $sysdb_shared_sc_pid -i 1"
attach_exec[4]="follow process $sysdb_admin_pid iteration 1"
attach__ksh[4]="attach_process -p $sysdb_admin_pid -i 1"
attach_exec[5]="follow process $sysdb_local_pid iteration 1"
attach__ksh[5]="attach_process -p $sysdb_local_pid -i 1"

#
# process Commands
#
block_exec[1]="show processes block"
if [[ "${PLATFORM_TYPE}" == "x86_64" ]]; then
    block__ksh[1]='sh_proc_ng_blocked'
else
    block__ksh[1]='show_processes -b'
fi

logging_exec[1]="show logging"
logging__ksh[1]='show_logging'

#
# On old images of asr9k, "uname -m" command output is just "asr9k" 
# but in recent images it is "asr9k-rsp". Hence matching just 
# the prefix "asr9k" to determine the viking platform.
#
system_exec[1]="show redundancy"
system__ksh[1]='redcon_show'
if [[ "${PLATFORM_TYPE}" == "x86_64" ]]; then
    system_exec[2]="show platform"
    system__ksh[2]='show_platform_sysdb'
elif [[ "${PLATFORM_TYPE}" == "asr9k"* ]]; then
    system_exec[2]="admin show platform"
    system__ksh[2]='show_platform_vkg -a'
elif [[ "${PLATFORM_TYPE}" == "hfr-rp" ]]; then
    system_exec[2]="admin show platform"
    system__ksh[2]='shelfmgr_show_hfr -a'
elif [[ "${PLATFORM_TYPE}" == "enxr" ]]; then
    system_exec[2]="admin show platform"
    system__ksh[2]='show_platform -a'
fi

#
# Variable used to enable admin mode and shared plane commands
# 
admin=0;
shared=0;

#
# We are interested in the -A (admin plane), -S (shared plane) options now.
# -L (specific node) and -t options are reserved for furture release.
# Each option collect follows information.
#   -A : admin + shared + local plane.
#   -S : shared + local plane.
# Notice: current 'show tech multi sysdb' doesn't collect any information
#        from SP because of memory shortage on SP.
#
while [ "$#" -gt "0" ]; do
    case "$1" in
        -A) admin=1;             
            if [[ "${PLATFORM_TYPE}" == "x86_64" ]]; then
               admin=0;
            fi   
                                        shift 1;;
        -S) shared=1;                   shift 1;;
        -L) location="$2";              shift 2;;
        -t) __cardtype="$2";            shift 2;;
        *)  default_parser_function $@; shift $#;;
    esac
done


#
# Our display function
#
display() {
    #
    # Display a header
    #
    if [[ $admin -eq 1 ]]; then
        print_main_heading "show tech-support multi-chassis sysdb on admin plane"
    elif [[ $shared -eq 1 ]]; then
        print_main_heading "show tech-support multi-chassis sysdb on shared plane"
    else
        print_main_heading "show tech-support multi-chassis sysdb on location $location"
    fi  

    if [[ "$__cardtype" == "SYS" ]]; then
        #
        # Display the nodes in the LR or system
        # Display the redundancy status of the system
        #
        exec_commands system

        #
        # Run the shared plane commands
        #
        exec_commands shared

        #
        # Run the standby shared plane commands
        #
        get_standby_state

        if [[ $standby_up -eq 1 ]]; then
            exec_commands shared_sby
        fi

        #
        # Run all the admin plane sysdb show commands
        # for non-Calvados based platforms.
        #
        if [[ "${PLATFORM_TYPE}" != "x86_64" ]]; then
            exec_commands admin
        fi

        #
        # Collect the logging output as this is always helpful in
        # debugging issues.
        #
        exec_commands logging

    else
        #
        # run the local plane commands
        #
        exec_commands local

        #
        # Collect show processes blocked output
        #
        exec_commands block

        print_command_heading "follow sysdb processes"
        cat <<EOF
These commands are run at the end of the showtech, so that we
first capture all debugging traces first.
EOF
        #
        # attach_process
        # Collect follow for all SysDB processes. 
        #
        exec_commands attach

    fi

    #
    # Display a footer
    #
    print_main_heading "show tech-support multi-chassis sysdb 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

