scripts: cros_sdk: Skip chroot download when it exists
Avoid downloading the chroot when creating a chroot and a chroot
already exists.
BUG=None
TEST=./run_tests
Change-Id: I797d96ed65b31723a242b3ec0f2d5deda92267d1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4031931
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Sergey Frolov <sfrolov@google.com>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/scripts/cros_sdk.py b/scripts/cros_sdk.py
index d828e2b..b3c9af2 100644
--- a/scripts/cros_sdk.py
+++ b/scripts/cros_sdk.py
@@ -923,8 +923,8 @@
"--create",
action="store_true",
default=False,
- help="Create the chroot only if it does not already exist. "
- "Implies --download.",
+ help="Create the chroot only if it does not already exist. Downloads "
+ "the SDK only if needed, even if --download explicitly passed.",
)
group.add_argument(
"--bootstrap",
@@ -1418,6 +1418,7 @@
cbuildbot_alerts.PrintBuildbotStepText(sdk_version)
# Based on selections, determine the tarball to fetch.
+ urls = []
if options.download:
if options.sdk_url:
urls = [options.sdk_url]
@@ -1458,10 +1459,6 @@
# Wipe and continue.
osutils.RmDir(src)
- if options.download:
- lock.write_lock()
- sdk_tarball = FetchRemoteTarballs(sdk_cache, urls)
-
mounted = False
if options.create:
lock.write_lock()
@@ -1471,6 +1468,7 @@
if cros_sdk_lib.IsChrootReady(options.chroot):
logging.debug("Chroot already exists. Skipping creation.")
else:
+ sdk_tarball = FetchRemoteTarballs(sdk_cache, urls)
cros_sdk_lib.CreateChroot(
Path(options.chroot),
Path(sdk_tarball),
@@ -1479,6 +1477,10 @@
chroot_upgrade=options.chroot_upgrade,
)
mounted = True
+ elif options.download:
+ # Allow downloading only.
+ lock.write_lock()
+ FetchRemoteTarballs(sdk_cache, urls)
if options.enter:
lock.read_lock()