#!/bin/csh -f #+ # OSIRIS library of scripts # # NAME # fix_sfilter - make sure om2s is happy # # SYNOPSIS # fix_sfilter # # DESCRIPTION # Checks the status of om2s. If not OK, script determines what # expected switch value will make it ok. # # ARGUMENTS # # # OPTIONS # # EXAMPLES # # ENVIRONMENT VARIABLES # # FILES # # SERVERS & KEYWORDS # # # # SCRIPTS CALLED # # EXIT STATUS # 0 - normal exit, no error # 1 - script aborted by an interrupt # 2 - syncheck error # 3 - error parsing command line input # other errors... # # # # Modification History: # 2016 Mar 18 jlyke Original # 2016 Apr 13 jlyke Adapted from om2s #------------------------------------------------------ # Boiler plate for "-h" support for command autohelp. if ("$1" == "-h") then help $0 exit $status endif set wait = 1 #sleep $wait # Formulate lockengpw set lockengpw = `date '+%y%m%d'` set homeoff = 750 # define service and configfile set serv = om2s set configfile = /kroot/rel/default/data/${serv}_keyword_config_file set sfwstat = `show -s $serv -terse status` while ( $sfwstat == Moving ) sleep 1 set sfwstat = `show -s $serv -terse status` end set sfwstat = `show -s $serv -terse status` if ( $sfwstat != OK ) then # determine what pos *should* be set target = `show -s $serv -terse target` set posnameN = `/usr/bin/awk '/'$target'/{print $1}' $configfile` set keybase = posname set strpos = `echo $keybase | awk '{print length($0)+1}'` set num = `echo $posnameN | cut -c ${strpos}-` # compare current switch to expected set switch = `show -s $serv -terse switch` set expect = `show -s $serv -terse switch$num` if ( $switch != $expect ) then # check lockeng set lockeng = `show -s $serv -terse lockeng` if ( $lockeng == 1 ) then modify -s $serv lockeng=$lockengpw endif modify -s $serv switch$num=$switch # make sure lockeng is locked set lockeng = `show -s $serv -terse lockeng` if ( $lockeng == 0 ) then modify -s $serv lockeng=$lockengpw endif endif # check if this fixed it sleep 3 set sfwstat = `show -s $serv -terse status` if ( $sfwstat != OK ) then echo "om2s must be homed" exit 1 endif endif exit 0