controller_util: Add a util module for controllers.
BUG=None
TEST=run_tests, new tests
Change-Id: Ib938adad72dfab09133958ded11869ff4c09a69e
Reviewed-on: https://chromium-review.googlesource.com/1577651
Commit-Ready: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Evan Hernandez <evanhernandez@chromium.org>
diff --git a/api/controller/sysroot.py b/api/controller/sysroot.py
index c30922b..5e6f82e 100644
--- a/api/controller/sysroot.py
+++ b/api/controller/sysroot.py
@@ -7,9 +7,9 @@
from __future__ import print_function
+from chromite.api.controller import controller_util
from chromite.lib import build_target_util
from chromite.lib import cros_build_lib
-from chromite.lib import portage_util
from chromite.lib import sysroot_lib
from chromite.service import sysroot
@@ -69,7 +69,7 @@
# Error installing - populate the failed package info.
for package in e.failed_toolchain_info:
package_info = output_proto.failed_packages.add()
- _CPVToPackageInfo(package, package_info)
+ controller_util.CPVToPackageInfo(package, package_info)
return RC_ERROR
@@ -80,7 +80,7 @@
sysroot_path = input_proto.sysroot.path
build_target_name = input_proto.sysroot.build_target.name
- packages = map(_PackageInfoToCPV, input_proto.packages)
+ packages = map(controller_util.PackageInfoToString, input_proto.packages)
if not build_target_name:
cros_build_lib.Die('Build target name is required.')
@@ -102,31 +102,6 @@
except sysroot_lib.PackageInstallError as e:
for package in e.failed_packages:
package_info = output_proto.failed_packages.add()
- _CPVToPackageInfo(package, package_info)
+ controller_util.CPVToPackageInfo(package, package_info)
return RC_ERROR
-
-
-def _CPVToPackageInfo(cpv, package_info):
- """Helper to translate CPVs into a PackageInfo message."""
- package_info.package_name = cpv.package
- if cpv.category:
- package_info.category = cpv.category
- if cpv.version:
- package_info.version = cpv.version
-
-
-def _PackageInfoToCPV(package_info):
- """Helper to translate a PackageInfo message into a CPV."""
- if not package_info or not package_info.package_name:
- return None
-
- # Combine the components into the full CPV string that SplitCPV parses.
- # TODO: Turn portage_util.CPV into a class that can handle building out an
- # instance from components.
- c = ('%s/' % package_info.category) if package_info.category else ''
- p = package_info.package_name
- v = ('-%s' % package_info.version) if package_info.version else ''
- cpv = '%s%s%s' % (c, p, v)
-
- return portage_util.SplitCPV(cpv)