cros_generate_stateful_update_payload: Move to paygen
There is only one function which needs to go to paygen instead to be used
directly by other callers instead of calling the script itself.
BUG=chromium:862679
TEST=cros_generate_stateful_update_payload
TEST=unittests
Change-Id: I8788f75b11523d0fff3ede525199de24e712f66e
Reviewed-on: https://chromium-review.googlesource.com/1403875
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cros_generate_stateful_update_payload.py b/scripts/cros_generate_stateful_update_payload.py
index fc034b7..2b921bf 100644
--- a/scripts/cros_generate_stateful_update_payload.py
+++ b/scripts/cros_generate_stateful_update_payload.py
@@ -7,55 +7,9 @@
from __future__ import print_function
-import os
-
-from chromite.lib import constants
from chromite.lib import commandline
-from chromite.lib import cros_build_lib
-from chromite.lib import cros_logging as logging
-from chromite.lib import osutils
-
-_STATEFUL_FILE = 'stateful.tgz'
-
-
-# TODO(tbrindus): move to paygen.
-def GenerateStatefulPayload(image_path, output_directory):
- """Generates a stateful update payload given a full path to an image.
-
- Args:
- image_path: Full path to the image.
- output_directory: Path to the directory to leave the resulting output.
- logging: logging instance.
- """
- logging.info('Generating stateful update file.')
-
- output_gz = os.path.join(output_directory, _STATEFUL_FILE)
-
- # Mount the image to pull out the important directories.
- with osutils.TempDir() as stateful_mnt, \
- osutils.MountImageContext(image_path, stateful_mnt,
- (constants.PART_STATE,)) as _:
- stateful_dir = os.path.join(stateful_mnt, 'dir-%s' % constants.PART_STATE)
-
- try:
- logging.info('Tarring up /usr/local and /var!')
- cros_build_lib.SudoRunCommand([
- 'tar',
- '-czf',
- output_gz,
- '--directory=%s' % stateful_dir,
- '--hard-dereference',
- '--transform=s,^dev_image,dev_image_new,',
- '--transform=s,^var_overlay,var_new,',
- 'dev_image',
- 'var_overlay',
- ])
- except:
- logging.error('Failed to create stateful update file')
- raise
-
- logging.info('Successfully generated %s', output_gz)
+from chromite.lib.paygen import paygen_stateful_payload_lib
def ParseArguments(argv):
@@ -75,4 +29,5 @@
def main(argv):
opts = ParseArguments(argv)
- GenerateStatefulPayload(opts.image_path, opts.output_dir)
+ paygen_stateful_payload_lib.GenerateStatefulPayload(opts.image_path,
+ opts.output_dir)