diff --git a/api/controller/controller_util.py b/api/controller/controller_util.py
new file mode 100644
index 0000000..f2d879a
--- /dev/null
+++ b/api/controller/controller_util.py
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Utility functions that are useful for controllers."""
+
+from __future__ import print_function
+
+from chromite.lib import portage_util
+
+
+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
+
+  return portage_util.SplitCPV(PackageInfoToString(package_info), strict=False)
+
+
+def PackageInfoToString(package_info):
+  # 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.
+  if not package_info.package_name:
+    raise ValueError('Invalid package_info.')
+
+  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 ''
+  return '%s%s%s' % (c, p, v)
+
+
+def CPVToString(cpv):
+  """Get the most useful string representation from a CPV.
+
+  Args:
+    cpv (portage_util.CPV): The CPV object.
+
+  Returns:
+    str
+
+  Raises:
+    ValueError - when the CPV has no useful fields set.
+  """
+  if cpv.cpf:
+    return cpv.cpf
+  elif cpv.cpv:
+    return cpv.cpv
+  elif cpv.cp:
+    return cpv.cp
+  elif cpv.package:
+    return cpv.package
+  else:
+    raise ValueError('Invalid CPV provided.')
