From b5f829055f4d8def12d62aa9e91456e5645924db Mon Sep 17 00:00:00 2001 From: Eric Ball Date: Wed, 1 Nov 2023 16:16:33 -0700 Subject: [PATCH] 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 --- releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml | 5 +++++ shell/job-cost.sh | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml 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" -- 2.16.6