#!/bin/ksh
# IBM_PROLOG_BEGIN_TAG 
# This is an automatically generated prolog. 
#  
# bos720 src/bos/usr/sbin/aacct_stat/aacct_stat.sh 1.8 
#  
# Licensed Materials - Property of IBM 
#  
# Restricted Materials of IBM 
#  
# COPYRIGHT International Business Machines Corp. 2003,2008 
# All Rights Reserved 
#  
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
#  
# IBM_PROLOG_END_TAG 

# @(#)67      1.8  src/bos/usr/sbin/aacct_stat/aacct_stat.sh, cmdaacct, bos720  5/22/08  07:01:50

# This script will be used by the AACCT SMIT panels, to gather
# the details related to interval accounting.

export PATH=/usr/bin:/usr/sbin:$PATH

/usr/bin/echo "#ProcIntStat:ProcInterval:SysIntStat:SysInterval:ProcAggr:KexAggr:ArmAggr:ID:Name:State:"

proc_stat=0
sys_stat=0
proc_agg=0
ke_agg=0
arm_agg=0

if [ -x /usr/bin/acctctl ]
then
      /usr/bin/acctctl smit | while read ent
      do
      
      	# Collect statistics from this command's output
      
      	# Advanced Accounting state
      	/usr/bin/echo $ent | /usr/bin/grep aacctstate > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read astate
      	fi
      	
      	# Available Kernel Transactions
      	/usr/bin/echo $ent | /usr/bin/grep ktranavail > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read atran
      	fi
      
      	# Disabled Kernel Transactions
      	/usr/bin/echo $ent | /usr/bin/grep ktrandisabled > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read dtran
      	fi
      
      	# Process Interval
      	/usr/bin/echo $ent | /usr/bin/grep pinterval > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read proc_stat
      	fi
      
      	# System Interval
      	/usr/bin/echo $ent | /usr/bin/grep sinterval > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read sys_stat
      	fi
      
      	# Process Aggregation Status
      	/usr/bin/echo $ent | /usr/bin/grep aggrproc > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read  proc_agg
      	fi
      
      	# Kernel Extension Aggregation Status
      	/usr/bin/echo $ent | /usr/bin/grep aggrke > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read ke_agg
      	fi
      
      	# ARM Transactions Aggregation Status
      	/usr/bin/echo $ent | /usr/bin/grep aggrarm > /dev/null 2>&1
      	if [ $? -eq 0 ]
      	then
      		read arm_agg
      	fi
      done
fi

if [ $proc_stat -eq 0 ]
then
	procint=`/usr/bin/echo Off`
	procinterval=0
else
	procint=`/usr/bin/echo On`
	procinterval=$proc_stat
fi

if [ $sys_stat -eq 0 ]
then
	sysint=`/usr/bin/echo Off`
	sysinterval=0
else
	sysint=`/usr/bin/echo On`
	sysinterval=$sys_stat
fi


if [ $proc_agg -eq 0 ]
then
	paggr=`/usr/bin/echo Off`
else
	paggr=`/usr/bin/echo On`
fi

if [ $ke_agg -eq 0 ]
then
	kaggr=`/usr/bin/echo Off`
else
	kaggr=`/usr/bin/echo On`
fi

if [ $arm_agg -eq 0 ]
then
	aaggr=`/usr/bin/echo Off`
else
	aaggr=`/usr/bin/echo On`
fi

disabled=0
enabled=0

# If the transaction ID is passed, collect its statistics

if [ $# -gt 0 ]
then
	val=`/usr/bin/echo $1 | /usr/bin/tr -s ' ' | /usr/bin/cut -f1 -d' '`
	/usr/bin/echo $val | /usr/bin/grep "-" > /dev/null 2>&1
	if [ $? -eq 0 ]
	then
		fent=`/usr/bin/echo $val | /usr/bin/cut -f1 -d'-'`
		if [ "$dtran" = "" ]
		then
			enabled=1
		else
			dtran1=`/usr/bin/echo $dtran | /usr/bin/tr ',' ' '`	
			for i in $dtran1
			do
				if [ $i -eq $fent ]
				then
					disabled=1
					break
				fi
			done
			
			if [ $disabled -eq 0 ]
			then
				enabled=1
			fi
		fi
	
	else
		if [ "$dtran" = "" ]
		then
			enabled=1
		else
			dtran1=`/usr/bin/echo $dtran | /usr/bin/tr ',' ' '`

			for i in $dtran1
			do
				if [ $val -eq  $i ]
				then
					disabled=1
					break
				fi
			done
	
			if [ $disabled -eq 0 ]
			then
				enabled=1
			fi

		fi
	fi

	ID=$val
	Name=`/usr/bin/acctctl trquery $val | /usr/bin/grep -w $val | /usr/bin/tr -s ' ' | /usr/bin/cut -d' ' -f3`

	if [ $disabled -eq 1 ]
	then
		State=disabled
	fi

	if [ $enabled -eq 1 ]
	then
		State=enabled
	fi

	

fi

/usr/bin/echo "$procint:$procinterval:$sysint:$sysinterval:$paggr:$kaggr:$aaggr:$ID:$Name:$State:"
