X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=shell%2Fjob-cost.sh;h=e5e1810675f382121f3ab759aef52c96e4611335;hb=refs%2Ftags%2Fv0.77.2;hp=595b342e42bd975d743266f7339f994b9421e522;hpb=1403de9528539580631971128766f61fce069a0a;p=releng%2Fglobal-jjb.git diff --git a/shell/job-cost.sh b/shell/job-cost.sh index 595b342e..e5e18106 100644 --- a/shell/job-cost.sh +++ b/shell/job-cost.sh @@ -15,11 +15,18 @@ set -euf -o pipefail # shellcheck disable=SC1090 source ~/lf-env.sh +if [[ ! -f /run/cloud-init/result.json && ! -f stack-cost ]]; then + # Don't attempt to calculate job cost as build is not running in a + # cloud environment + echo "INFO: Skipping job cost calculation" + exit 0 +fi + # AWS job cost not supported, exit cloudtype="$(jq -r .v1.datasource /run/cloud-init/result.json)" if [[ $cloudtype == "DataSourceEc2Local" ]]; then - echo "INFO: Not able to calculate job cost on AWS" - exit 0 + echo "INFO: Not able to calculate job cost on AWS" + exit 0 fi lf-activate-venv zipp==1.1.0 python-openstackclient @@ -46,9 +53,8 @@ else fi # Retrieve the current uptime (in seconds) -uptime=$(awk '{print $1}' /proc/uptime) -# Convert to integer by truncating fractional part' and round up by one -((uptime=${uptime%\.*}+1)) +# And Convert to integer by truncating fractional part' and round up by one +uptime=$(awk '{print int($1 + 1)}' /proc/uptime) # EC2 and OpenStack have simiar instace metadata APIs at this IP # AWS docs: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html @@ -79,5 +85,5 @@ echo "INFO: Archiving Costs" date=$(TZ=GMT date +'%Y-%m-%d %H:%M:%S') # Format the uptime, cost & stack_cost fields -printf "%s,%s,%s,%s,%d,%.2f,%.2f\n" "$JOB_NAME" "$BUILD_NUMBER" "$date" \ - "$resource" "$uptime" "$cost" "$stack_cost" > "$WORKSPACE/archives/cost.csv" +printf "%s,%s,%s,%s,%d,%.2f,%.2f,%s\n" "$JOB_NAME" "$BUILD_NUMBER" "$date" \ + "$resource" "$uptime" "$cost" "$stack_cost" "$BUILD_RESULT" > "$WORKSPACE/archives/cost.csv"