$OpenBSD: patch-scripts_mtx-changer_in,v 1.4 2009/10/02 02:34:05 merdely Exp $

XXX first hunk hand-rolled for CVS keyword, Id

--- scripts/mtx-changer.in.orig	Fri Jul 18 09:44:03 2008
+++ scripts/mtx-changer.in	Mon Sep 21 20:58:36 2009
@@ -1,4 +1,4 @@
 #!/bin/sh
 #
-# Bacula interface to mtx autoloader
+# Bacula interface to chio autoloader
 #
@@ -39,10 +39,10 @@
 #    e.g.   mt -f $4 offline
 #
 #  Many changers need an offline after the unload. Also many
-#   changers need a sleep 60 after the mtx load.
+#   changers need a sleep 60 after the chio load.
 #
 #  N.B. If you change the script, take care to return either 
-#   the mtx exit code or a 0. If the script exits with a non-zero
+#   the chio exit code or a 0. If the script exits with a non-zero
 #   exit code, Bacula will assume the request failed.
 #
 
@@ -143,7 +143,7 @@ debug "Parms: $ctl $cmd $slot $device $drive"
 
 case $cmd in 
    unload)
-      debug "Doing mtx -f $ctl unload $slot $drive"
+      debug "Doing chio -f $ctl move drive $drive slot $slot"
 
       if test ${offline} -eq 1 ; then
 	mt -f $device offline
@@ -151,12 +151,12 @@ case $cmd in 
       if test ${offline_sleep} -ne 0 ; then
 	sleep ${offline_sleep}
       fi
-      ${MTX} -f $ctl unload $slot $drive
+      ${MTX} -f $ctl move drive $drive slot $slot
       ;;
 
    load)
-      debug "Doing mtx -f $ctl load $slot $drive"
-      ${MTX} -f $ctl load $slot $drive
+      debug "Doing chio -f $ctl move slot $slot drive $drive"
+      ${MTX} -f $ctl move slot $slot drive $drive
       rtn=$?
       if test ${load_sleep} -ne 0 ; then
 	sleep ${load_sleep}
@@ -166,36 +166,33 @@ case $cmd in 
       ;;
 
    list) 
-      debug "Doing mtx -f $ctl -- to list volumes"
+      debug "Doing chio -f $ctl status -- to list volumes"
       make_temp_file
       if test ${inventory} -ne 0 ; then
 	${MTX} -f $ctl inventory
       fi
       ${MTX} -f $ctl status >${TMPFILE}
       rtn=$?
-      if test ${vxa_packetloader} -ne 0 ; then
-	cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | sed "s/ Storage Element //" | sed "s/Full :VolumeTag=//"
-      else
-	cat ${TMPFILE} | grep " Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//"
-      fi
-      cat ${TMPFILE} | grep "^Data Transfer Element [0-9]*:Full (Storage Element [0-9]" | awk '{printf "%s:%s\n",$7,$10}'
+      cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | sed "s/ Storage Element //" | sed "s/Full :VolumeTag=//"
+      cat ${TMPFILE} | grep " *drive [0-9]*: <.*FULL.*>" | awk "{print \$2 \$4 \$5 \$6 \$7 \$8}" | sed "s/^/D/"
       rm -f ${TMPFILE} >/dev/null 2>&1
       exit $rtn
       ;;
 
    loaded)
-      debug "Doing mtx -f $ctl $drive -- to find what is loaded"
+      debug "Doing chio -f $ctl status -- to find what is loaded"
       make_temp_file
       ${MTX} -f $ctl status >${TMPFILE}
       rtn=$?
-      cat ${TMPFILE} | grep "^Data Transfer Element $drive:Full" | awk "{print \$7}"
-      cat ${TMPFILE} | grep "^Data Transfer Element $drive:Empty" | awk "{print 0}"
+      cat ${TMPFILE} | grep " *drive $drive: <.*FULL.*>" | awk "{print \$4}" | sed "s/^\[//" | sed "s/=\]$//"
+      cat ${TMPFILE} | grep " *drive $drive: <.*FULL.*>" > /dev/null 2>&1
+      if [ $? != 0 ]; then echo 0; fi
       rm -f ${TMPFILE} >/dev/null 2>&1
       exit $rtn
       ;;
 
    slots)
-      debug "Doing mtx -f $ctl -- to get count of slots"
-      ${MTX} -f $ctl status | grep " *Storage Changer" | awk "{print \$5}"
+      debug "Doing chio -f $ctl status -- to get count of slots"
+      ${MTX} -f $ctl status | grep -c "slot [0-9]*"
       ;;
 esac
