#!/bin/sh

# @(#)sonoma	1.9 04/29/99 11:37:34

if [ ! -d /usr/sbin/osa ]
then
   # Sonoma is not installed on this system
   exit 0
fi

# add to path: /usr/sbin/osa
PATH=/usr/sbin/osa:$PATH
export PATH

mkdir disks/sonoma

mkdir disks/sonoma/usr_lib_osa
# Get important files:
#
cp -p /usr/lib/osa/rmparams disks/sonoma/usr_lib_osa
cp -p /usr/lib/osa/rmlog.log disks/sonoma/usr_lib_osa
#
mkdir disks/sonoma/kernel_drv
cp -p /kernel/drv/sd.conf	    disks/sonoma/kernel_drv
cp -p /kernel/drv/rdnexus.conf disks/sonoma/kernel_drv
cp -p /kernel/drv/rdriver.conf disks/sonoma/kernel_drv

ls -l /dev/osa/dev/dsk/* 1>disks/sonoma/ls-l_dev.osa.dev.dsk 2>/dev/null
ls -l /dev/osa/dev/rdsk/* 1>disks/sonoma/ls-l_dev.osa.dev.rdsk 2>/dev/null

# Get output of the following:

# healthck -a - perform health check on all RAID modules
healthck -a 1>disks/sonoma/healthck-a.out 2>disks/sonoma/healthck-a.err

# lad - lists the names of all array devices connected to the system
lad 1>disks/sonoma/lad.out 2>disks/sonoma/lad.err


# rdacutil -i - Display information about the redundant controller
#		configuration for a RAID module for each Sonoma installed
#		on the system.
#
# drivutil-i - Display detailed drive information. Including: drivie Location,
#		Capacity, Status, Vendor, Product ID, Firmware, and Serial
#		Number, kind of like scsi inquery. We need this as Sonoma's
#		physical disks cannot be probed by scsi inquery. This
#		information will be used by FCO/FIN analyzer.
# drivutil -I - Display drive group information
# drivutil -l - Display LUN information
#
mkdir disks/sonoma/drivutil-i
mkdir disks/sonoma/drivutil-I
mkdir disks/sonoma/drivutil-l
mkdir disks/sonoma/rdacutil-i

# the next line is quite complicated. It constracts the "raid module specifier"
# name for each sonoma installed. It does it by greping : frop healthck-a.out
# (my experiance was that all "raid module specifier" in healthck-a.out1
# end with a ':' ; Next substitue '#' for all spaces (I need this since 'i'
# will be used for file naming and spaces must be eliminated since 'i' in
# the "for i ..." statement breaks by word).; next we sort unique to
# eliminate duplicate "raid module specifier" names (I found empirically
# that there will be duplicates when there are RAID problems reported by
# healthck
for i in `grep : disks/sonoma/healthck-a.out| sed s/:.\*//|sed s/\ /\#/g|sort -u`
do
    # RAID_MOD - the name of the sonoma we want to probe. I need this
    # processing since name can include spaces.
    RAID_MOD="`echo $i|sed s/\#/\ /g`"

    drivutil -i "$RAID_MOD" 1>disks/sonoma/drivutil-i/$i 2>disks/sonoma/drivutil-i/$i.err
    drivutil -I "$RAID_MOD" 1>disks/sonoma/drivutil-I/$i 2>disks/sonoma/drivutil-I/$i.err
    drivutil -l "$RAID_MOD" 1>disks/sonoma/drivutil-l/$i 2>disks/sonoma/drivutil-l/$i.err
    rdacutil -i "$RAID_MOD" 1>disks/sonoma/rdacutil-i/$i 2>disks/sonoma/rdacutil-i/$i.err
done


# raidutil - RAID Manager Configuration Utility
#		-i - Display inquiry information including the software  and
#	  		firware revision level and date for the given
#			controller specified by -c.
#		-V - Print the values in the Caching mode  page  (08). -V 0
#	  		would  display page 08 of LUN 0 for the device given
#			by the -c parameter
# nvutil -v  - check NVRAM settings of controller for specified controller.

mkdir disks/sonoma/raidutil-i
mkdir disks/sonoma/raidutil-V
mkdir disks/sonoma/nvutil-v
for i in `lad|awk '{print $1}'`
do
    raidutil -c $i -i   1>disks/sonoma/raidutil-i/$i 2>disks/sonoma/raidutil-i/$i.err
    raidutil -c $i -V 0 1>disks/sonoma/raidutil-V/$i 2>disks/sonoma/raidutil-V/$i.err
    nvutil -v   $i      1>disks/sonoma/nvutil-v/$i 2>disks/sonoma/nvutil-v/$i.err
done
