#!/bin/bash
#
# send_remote_values_tar
#
# Sendet alle Teststeps eines Remote Rechners. Die Daten stehen in einem
# Pfad bereit, der als tar-Datei abgeholt wird.
#
# Aufruf:
#
# send_remote_values_tar <IP-Adresse> <Port> <User> <Passwort> [<Proxy:Port>]
#                        [<u2w-Proxy>]
#
###################################################################################
#
PATH=/usr/bin:/srv/uls/wwwbin:/usr/local/uls/wwwbin:/usr/local/bin:$PATH
export PATH
#
if [ -f /etc/uls/uls.conf ]
 then
  . /etc/uls/uls.conf
elif [ -f /etc/uls.conf ]
 then
  . /etc/uls.conf
fi
#
if [ "$ULSSERVER" = "STORE" ]
 then
  echo "Lokal wird nur gespeichert, das macht keinen Sinn!"
###  exit 2
fi
#
if [ -z "$ULSSERVER" ]
 then
  ULSSERVER=localhost:11975
  SFLAG=""
fi
#
TMPPFAD=/dev/shm/remoteuls.$$
#
if [ $# -lt 4 ]
 then
  echo "usage: $0 <IP-Adresse> <Port> <User> <Passwort> [<Proxy:Port>] [<u2w-Proxy>]"
  exit 1
fi
#
if [ -z "$5" ]
 then
  P=""
else
  P="-P $5"
fi
if [ -z "$6" ]
 then
  U=""
  H="$1:$2"
else
  U="?host=$1:$2&user=$3&pwd=$4"
  H="$6"
fi
#
mkdir -p $TMPPFAD
if cd $TMPPFAD
 then
  ULSDAT=ULSDAT$$.tgz
  if httpget -s -u "$3" -p "$4" $P "$H" "/get_clear_uls_file.s3w$U" | head -c 60m >$ULSDAT && tar tfz $ULSDAT | egrep -q '^...*/|^/|^[^.]/' || gunzip -c $ULSDAT | head -c 80m | tar xf -
   then
    if ls | grep -q '\.uls$'
     then
      remotefile2ulsdb -i "$1" -D .
    elif find . -name 'test_value_store*' | grep -q test_value_store
     then
      LOKALE_STORE_DATEI=`find . -name 'test_value_store*'`
      RET=`cat $LOKALE_STORE_DATEI | httpget $SFLAG -c -i -u logging -p lgput -s $ULSSERVER | tail -n 1`
      if [ "$RET" != "OK" ]
       then
        echo "Error: $RET"
      fi
    fi
    echo "OK"
  else
    echo "ERROR"
  fi
fi
cd /
rm -rf $TMPPFAD
