Revert "cros_sdk: support downloading both xz and bz2 images"
This reverts commit 8b9b634d260cd56df929094b056f8d145d6dd189
Seems to have broken the sdk builder:
http://build.chromium.org/p/chromiumos/builders/chromiumos%20sdk/builds/1606/steps/cbuildbot/logs/stdio
INFO: RunCommand: ['cros_sdk', '--chroot', 'new-sdk-chroot', '--download', '--replace', '--url', 'file:///b/cbuild/built-sdk.tbz2'] in /b/cbuild
Attempting download: file:///b/cbuild/built-sdk.tbz2
cros_sdk: Unhandled exception:
Traceback (most recent call last):
File "/b/cbuild/chromite/bin/cros_sdk", line 67, in <module>
ret = target()
File "/b/cbuild/chromite/scripts/cros_sdk.py", line 398, in main
chroot_path, options.replace)
File "/b/cbuild/chromite/scripts/cros_sdk.py", line 205, in CreateChroot
sdk = FetchRemoteTarballs(urls)
File "/b/cbuild/chromite/scripts/cros_sdk.py", line 126, in FetchRemoteTarballs
raise Exception('No valid URLs found!')
Exception: No valid URLs found!
Change-Id: I1b921eb728bc4d7dd995617f0110d3250811806b
Reviewed-on: https://gerrit.chromium.org/gerrit/21845
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cros_sdk.py b/scripts/cros_sdk.py
index 2cd3b32..848058a 100644
--- a/scripts/cros_sdk.py
+++ b/scripts/cros_sdk.py
@@ -21,8 +21,6 @@
DEFAULT_URL = 'https://commondatastorage.googleapis.com/chromiumos-sdk/'
-SDK_SUFFIXES = ['.tbz2', '.tar.xz']
-
SRC_ROOT = os.path.realpath(constants.SOURCE_ROOT)
SDK_DIR = os.path.join(SRC_ROOT, 'sdks')
OVERLAY_DIR = os.path.join(SRC_ROOT, 'src/third_party/chromiumos-overlay')
@@ -74,24 +72,17 @@
return buf[1].strip('"')
-def GetArchStageTarballs(tarballArch, version):
+def GetArchStageTarball(tarballArch, version):
"""Returns the URL for a given arch/version"""
D = { 'x86_64': 'cros-sdk-' }
try:
- return [DEFAULT_URL + D[tarballArch] + version + x for x in SDK_SUFFIXES]
+ return DEFAULT_URL + D[tarballArch] + version + '.tbz2'
except KeyError:
raise SystemExit('Unsupported arch: %s' % (tarballArch,))
-def FetchRemoteTarballs(urls):
- """Fetches a tarball given by url, and place it in sdk/.
-
- Args:
- urls: List of URLs to try to download. Download will stop on first success.
-
- Returns:
- Full path to the downloaded file
- """
+def FetchRemoteTarball(url):
+ """Fetches a tarball given by url, and place it in sdk/."""
def RunCurl(args, **kwargs):
"""Runs curl and wraps around all necessary hacks."""
@@ -109,22 +100,6 @@
return result
- def RemoteTarballExists(url):
- """Tests if a remote tarball exists."""
- result = RunCurl(['-I', url],
- redirect_stdout=True, redirect_stderr=True,
- print_cmd=False)
- header = result.output.splitlines()[0]
- return header.find('200 OK') != -1
-
- url = None
- for url in urls:
- print 'Attempting download: %s' % url
- if RemoteTarballExists(url):
- break
- else:
- raise Exception('No valid URLs found!')
-
tarball_name = os.path.basename(urlparse.urlparse(url).path)
tarball_dest = os.path.join(SDK_DIR, tarball_name)
@@ -140,6 +115,7 @@
curl_opts = ['-f', '--retry', '5', '-L', '-y', '30',
'--output', tarball_dest]
+ print 'Downloading sdk: "%s"' % url
if not url.startswith('file://') and os.path.exists(tarball_dest):
# Only resume for remote URLs. If the file is local, there's no
# real speedup, and using the same filename for different files
@@ -176,7 +152,7 @@
stage = None
if stage_url:
- stage = FetchRemoteTarballs([stage_url])
+ stage = FetchRemoteTarball(stage_url)
if stage:
cmd.extend(['--stage3_path', stage])
@@ -197,12 +173,15 @@
# Based on selections, fetch the tarball
if sdk_url:
- urls = [sdk_url]
+ url = sdk_url
else:
arch = GetHostArch()
- urls = GetArchStageTarballs(arch, sdk_version)
+ if sdk_version:
+ url = GetArchStageTarball(arch, sdk_version)
+ else:
+ url = GetArchStageTarball(arch)
- sdk = FetchRemoteTarballs(urls)
+ sdk = FetchRemoteTarball(url)
# TODO(zbehan): Unpack and install
# For now, we simply call make_chroot on the prebuilt chromeos-sdk.
@@ -232,11 +211,11 @@
def _CreateLockFile(path):
- """Create a lockfile via sudo that is writable by current user."""
- cros_build_lib.SudoRunCommand(['touch', path], print_cmd=False)
- cros_build_lib.SudoRunCommand(['chown', str(os.getuid()), path],
- print_cmd=False)
- cros_build_lib.SudoRunCommand(['chmod', '644', path], print_cmd=False)
+ """Create a lockfile via sudo that is writable by current user."""
+ cros_build_lib.SudoRunCommand(['touch', path], print_cmd=False)
+ cros_build_lib.SudoRunCommand(['chown', str(os.getuid()), path],
+ print_cmd=False)
+ cros_build_lib.SudoRunCommand(['chmod', '644', path], print_cmd=False)
def EnterChroot(chroot_path, chrome_root, chrome_root_mount, additional_args):
@@ -263,7 +242,7 @@
def main(argv):
# TODO(ferringb): make argv required once depot_tools is fixed.
- usage = """usage: %prog [options] [VAR1=val1 .. VARn=valn -- <args>]
+ usage="""usage: %prog [options] [VAR1=val1 .. VARn=valn -- <args>]
This script manages a local CrOS SDK chroot. Depending on the flags,
it can download, build or enter a chroot.