Code Review
/
releng
/
global-jjb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Refactor: Simplify and improve readability
[releng/global-jjb.git]
/
shell
/
job-cost.sh
diff --git
a/shell/job-cost.sh
b/shell/job-cost.sh
index
a7dceea
..
b856f6a
100644
(file)
--- a/
shell/job-cost.sh
+++ b/
shell/job-cost.sh
@@
-15,10
+15,18
@@
set -euf -o pipefail
# shellcheck disable=SC1090
source ~/lf-env.sh
# 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
# AWS job cost not supported, exit
-if grep -qi amazon /sys/devices/virtual/dmi/id/bios_vendor ; then
- echo "INFO: Not able to calculate job cost on AWS"
- exit 0
+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
fi
lf-activate-venv zipp==1.1.0 python-openstackclient
fi
lf-activate-venv zipp==1.1.0 python-openstackclient
@@
-45,9
+53,8
@@
else
fi
# Retrieve the current uptime (in seconds)
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
# 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
@@
-59,7
+66,7
@@
url="https://pricing.vexxhost.net/v1/pricing/$instance_type/cost?seconds=$uptime
json_block=$(curl -s "$url")
# check if JSON returned and can be parsed
json_block=$(curl -s "$url")
# check if JSON returned and can be parsed
-if jq <<< "$json_block" > /dev/null 2>&1; then
+if jq
.
<<< "$json_block" > /dev/null 2>&1; then
cost=$(jq .cost <<< "$json_block")
resource=$(jq .resource <<< "$json_block" | tr -d '"')
else
cost=$(jq .cost <<< "$json_block")
resource=$(jq .resource <<< "$json_block" | tr -d '"')
else