Fix: Handle error in job-cost.sh without failing 31/72331/1 v0.89.4
authorEric Ball <eball@linuxfoundation.org>
Wed, 1 Nov 2023 23:16:33 +0000 (16:16 -0700)
committerEric Ball <eball@linuxfoundation.org>
Wed, 1 Nov 2023 23:27:16 +0000 (16:27 -0700)
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 <eball@linuxfoundation.org>
releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml [new file with mode: 0644]
shell/job-cost.sh

diff --git a/releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml b/releasenotes/notes/job-cost-instance-error-540ce7966c176fba.yaml
new file mode 100644 (file)
index 0000000..a1aed81
--- /dev/null
@@ -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.
index 6a989a6..c5fb009 100644 (file)
@@ -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"