From: Eric Ball Date: Wed, 1 Nov 2023 23:16:33 +0000 (-0700) Subject: Fix: Handle error in job-cost.sh without failing X-Git-Tag: v0.89.4 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?p=releng%2Fglobal-jjb.git;a=commitdiff_plain;h=refs%2Ftags%2Fv0.89.4 Fix: Handle error in job-cost.sh without failing We have seen builds get marked as "unstable" due to transient network failures while retrieving instance type info. This is not an acceptable criteria for marking a build unstable, so this change will handle such an error more cleanly. Issue: RELENG-4970 Change-Id: Ia146e2771df638e8410fb187d730d4faadf132c2 Signed-off-by: Eric Ball --- diff --git a/releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml b/releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml new file mode 100644 index 00000000..a1aed815 --- /dev/null +++ b/releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + A network error while getting the instance type in job-cost.sh will no + longer mark a build as failed/unstable. diff --git a/shell/job-cost.sh b/shell/job-cost.sh index 6a989a65..c5fb009a 100644 --- a/shell/job-cost.sh +++ b/shell/job-cost.sh @@ -59,7 +59,14 @@ 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 # Nova docs: https://docs.openstack.org/nova/latest/user/metadata.html +set +e instance_type=$(curl -s http://169.254.169.254/latest/meta-data/instance-type) +result=$? +if [[ "$result" -ne 0 ]]; then + echo "INFO: Unable to retrieve instance type. Skipping job cost..." + exit 0 +fi +set -e echo "INFO: Retrieving Pricing Info for: $instance_type" url="https://pricing.vexxhost.net/v1/pricing/$instance_type/cost?seconds=$uptime"