Project

General

Profile

Download (1.22 KB) Statistics
| Branch: | Tag: | Revision:
#!/bin/bash
BASEDIR=$(dirname $0)
URL=${URL:-http://localhost:5000}
HOST=report.example.com
TMP=/tmp/$(basename $0).tmp

usage() {
echo "Usage:"
echo " $0 -h Display this help message"
echo " $0 -u URL Foreman URL ($URL)"
echo " $0 -o HOSTNAME Hostname ($HOST)"
echo " $0 -f FILE Fixture to upload"
echo " $0 -a Upload all fixtures"
}

while getopts "haf:u:o:" opt; do
case ${opt} in
u )
URL=$OPTARG
;;
f )
FILE=$OPTARG
;;
o )
HOST=$OPTARG
;;
a )
ALL=1
;;
h )
usage
exit 0
;;
\? )
echo "Invalid option: $OPTARG" 1>&2
usage
exit 1
;;
: )
echo "Invalid option: $OPTARG requires an argument" 1>&2
usage
exit 1
;;
esac
done
shift $((OPTIND -1))

do_curl() {
cat "$1" | sed "s/\"reported_at\": *\"[^\"]*\"/\"reported_at\": \"$(date -Ru)\"/" | \
sed "s/\"host\": *\"[^\"]*\"/\"host\": \"$HOST\"/" > $TMP
curl -s -H "Content-Type: application/json" \
-X POST $URL/api/v2/config_reports \
--data-binary @$TMP -w " - $1: %{http_code}\n"
}

if [[ -f "$FILE" ]]; then
do_curl "$FILE"
elif [[ $ALL -eq 1 ]]; then
for FILE in $BASEDIR/test/static_fixtures/reports/skipped.json; do
do_curl "$FILE"
done
else
usage
fi
(15-15/16)