build-api: Gracefully handle absent versions
betty boards are failing to return builder metadata because protos can't
resolve None to an str type. This change wraps those setters in a
presence check, to ensure that the proto can just handle those missing
values.
BUG=b:213879649
TEST=run_tests
Change-Id: I2c7c7803e11cc092a29c4811cd443b62ac79bc3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3378849
Reviewed-by: George Engelbrecht <engeg@google.com>
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Benjamin Shai <bshai@google.com>
Tested-by: Benjamin Shai <bshai@google.com>
diff --git a/api/controller/packages.py b/api/controller/packages.py
index 3b0df05..a9f98ae 100644
--- a/api/controller/packages.py
+++ b/api/controller/packages.py
@@ -223,8 +223,10 @@
build_target.name)
fw_versions = packages.determine_firmware_versions(build_target)
- build_target_metadata.main_firmware_version = fw_versions.main_fw_version
- build_target_metadata.ec_firmware_version = fw_versions.ec_fw_version
+ if fw_versions:
+ build_target_metadata.main_firmware_version = fw_versions.main_fw_version
+ build_target_metadata.ec_firmware_version = fw_versions.ec_fw_version
+
build_target_metadata.kernel_version = packages.determine_kernel_version(
build_target)
fingerprints = packages.find_fingerprints(build_target)