diff --git a/scripts/download_validation_reports.sh b/scripts/download_validation_reports.sh index c67fdac3..11659967 100644 --- a/scripts/download_validation_reports.sh +++ b/scripts/download_validation_reports.sh @@ -5,12 +5,77 @@ #$2 filter end date 'yyyy-mm-dd' #$3 ACA address, default is localhost if not given -if [ -z "$3" ] - then - endpoint="https://localhost:8443/HIRS_AttestationCAPortal/portal/validation-reports" - else - endpoint="https://$3:8443/HIRS_AttestationCAPortal/portal/validation-reports" +#check for getopt(1) on local system +getopt --test > /dev/null +if [[ ${PIPESTATUS[0]} -ne 4 ]] +then + echo "getopt is required to use this script, please ensure installation!" +else + echo "getopt detected" fi + +#set parameter names and call getopts on inputsi, then parse/assign arguments +SHORTOPTS=m:s: +LONGOPTS=start-date:,end-date:,ip:,system-only,component-only,manufacturer:,serial: +PARSED=$(getopt --options=$SHORTOPTS --longoptions=$LONGOPTS --name "$0" -- "$@") +if [[ ${PIPESTATUS[0]} -ne 0 ]] +then + exit 2 +fi +eval set -- "$PARSED" +startDate= +endDate= +ip=localhost +system= +component= +manufacturer= +serial= +while true +do + case "$1" in + --start-date) + startDate="$2" + shift 2 + ;; + --end-date) + endDate="$2" + shift 2 + ;; + --ip) + ip="$2" + shift 2 + ;; + --system-only) + system=true + shift + ;; + --component-only) + component=true + shift + ;; + -m|--manufacturer) + manufacturer="$2" + shift 2 + ;; + -s|--serial) + serial="$2" + shift 2 + ;; + --) + shift + break + ;; + *) + echo "Programming error" + exit 3 + ;; + esac +done + +echo "start date: $startDate, end date: $endDate, ip: $ip, system: $system, component: $component, manufacturer: $manufacturer, serial: $serial" + +#call ACA for validation report +endpoint="https://$ip:8443/HIRS_AttestationCAPortal/portal/validation-reports" echo "$endpoint" content=$(curl --insecure $endpoint/list) rawTimes=$(jq -r '.data | map(.createTime | tostring) | join(",")' <<< "$content") @@ -22,5 +87,4 @@ done deviceNames=$(jq -r '.data | map(.device.name) | join(",")' <<< "$content") echo "Create times: $createTimes" echo "Device names: $deviceNames" -curl --data "dateStart=$1&dateEnd=$2&createTimes=$createTimes&deviceNames=$deviceNames" --insecure $endpoint/download - +curl --data "dateStart=$startDate&dateEnd=$endDate&createTimes=$createTimes&deviceNames=$deviceNames&system=$system&component=$component&manufacturer=$manufacturer&serial=$serial" --insecure $endpoint/download