controller_util: Add PackageInfo serialization.
The new parsers.package_info.PackageInfo class needs a translation
function to a PackageInfo message. Just call serialize/deserialize
to simplify naming.
BUG=None
TEST=run_pytest
Change-Id: Ib5619f90590b212d4c7b4f7e7ffbbccfe5cadb33
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2454501
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Michael Mortensen <mmortensen@google.com>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/controller_util.py b/api/controller/controller_util.py
index 0f38f7c..e9e9dd0 100644
--- a/api/controller/controller_util.py
+++ b/api/controller/controller_util.py
@@ -137,6 +137,20 @@
package_info_msg.version = cpv.version
+def serialize_package_info(pkg_info: 'package_info.PackageInfo', pkg_info_msg):
+ """Serialize a PackageInfo object to a PackageInfo proto."""
+ pkg_info_msg.package_name = pkg_info.package
+ if pkg_info.category:
+ pkg_info_msg.category = pkg_info.category
+ if pkg_info.vr:
+ pkg_info_msg.version = pkg_info.vr
+
+
+def deserialize_package_info(pkg_info_msg):
+ """Deserialize a PackageInfo message to a PackageInfo object."""
+ return package_info.parse(PackageInfoToString(pkg_info_msg))
+
+
def PackageInfoToCPV(package_info_msg):
"""Helper to translate a PackageInfo message into a CPV."""
if not package_info_msg or not package_info_msg.package_name: