Refactor artifacts.BundleVmFiles.

Have artifacts controller delegate to artifacts service.
Move ArchiveVMFilesFromImageDir into cros_build_lib.ArchiveFilesFromImageDir.

BUG=chromium:954344
TEST=manual,run_tests

Change-Id: I5a4d5ef2b801bcd35c91924003453dbde9dd0839
Signed-off-by: Michael Mortensen <mmortensen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1717004
Reviewed-by: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/artifacts.py b/api/controller/artifacts.py
index 60fe1bc..239af7a 100644
--- a/api/controller/artifacts.py
+++ b/api/controller/artifacts.py
@@ -12,7 +12,6 @@
 from chromite.api import validate
 from chromite.api.controller import controller_util
 from chromite.cbuildbot import commands
-from chromite.cbuildbot.stages import vm_test_stages
 from chromite.lib import build_target_util
 from chromite.lib import chroot_lib
 from chromite.lib import constants
@@ -308,8 +307,7 @@
     output_proto.artifacts.add().path = file_name
 
 
-@validate.require('chroot.path', 'sysroot.path', 'test_results_dir',
-                  'output_dir')
+@validate.require('chroot.path', 'test_results_dir', 'output_dir')
 def BundleVmFiles(input_proto, output_proto):
   """Tar VM disk and memory files.
 
@@ -317,14 +315,12 @@
     input_proto (SysrootBundleRequest): The input proto.
     output_proto (BundleResponse): The output proto.
   """
-  chroot = input_proto.chroot.path
-  sysroot = input_proto.sysroot.path.lstrip(os.sep)
-  test_results_dir = input_proto.test_results_dir.lstrip(os.sep)
+  chroot = controller_util.ParseChroot(input_proto.chroot)
+  test_results_dir = input_proto.test_results_dir
   output_dir = input_proto.output_dir
 
-  # TODO(crbug.com/954344): Replace with a chromite/service implementation.
-  image_dir = os.path.join(chroot, sysroot, test_results_dir)
-  archives = vm_test_stages.ArchiveVMFilesFromImageDir(image_dir, output_dir)
+  archives = artifacts.BundleVmFiles(
+      chroot, test_results_dir, output_dir)
   for archive in archives:
     output_proto.artifacts.add().path = archive