Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Unified Diff: lib/src/source/hosted.dart

Issue 1235013002: Remove the timeout for downloading packages. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Code review changes Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/io.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/source/hosted.dart
diff --git a/lib/src/source/hosted.dart b/lib/src/source/hosted.dart
index 649ce58e939f6cdbbaf4c7d16d337a8b87a11e16..ad1b74f839abe4101429cd2c50ff9487905988b1 100644
--- a/lib/src/source/hosted.dart
+++ b/lib/src/source/hosted.dart
@@ -82,19 +82,15 @@ class HostedSource extends CachedSource {
}
/// Downloads the package identified by [id] to the system cache.
- Future<Package> downloadToSystemCache(PackageId id) {
- return isInSystemCache(id).then((inCache) {
- // Already cached so don't download it.
- if (inCache) return true;
-
+ Future<Package> downloadToSystemCache(PackageId id) async {
+ if (!(await isInSystemCache(id))) {
var packageDir = _getDirectory(id);
ensureDir(path.dirname(packageDir));
var parsed = _parseDescription(id.description);
- return _download(parsed.last, parsed.first, id.version, packageDir);
- }).then((found) {
- if (!found) fail('Package $id not found.');
- return new Package.load(id.name, _getDirectory(id), systemCache.sources);
- });
+ await _download(parsed.last, parsed.first, id.version, packageDir);
+ }
+
+ return new Package.load(id.name, _getDirectory(id), systemCache.sources);
}
/// The system cache directory for the hosted source contains subdirectories
@@ -179,32 +175,25 @@ class HostedSource extends CachedSource {
/// Downloads package [package] at [version] from [server], and unpacks it
/// into [destPath].
- Future<bool> _download(String server, String package, Version version,
- String destPath) {
- return new Future.sync(() {
- var url = Uri.parse("$server/packages/$package/versions/$version.tar.gz");
- log.io("Get package from $url.");
- log.message('Downloading ${log.bold(package)} ${version}...');
-
- // Download and extract the archive to a temp directory.
- var tempDir = systemCache.createTempDir();
- return httpClient.send(new http.Request("GET", url))
- .then((response) => response.stream)
- .then((stream) {
- return timeout(extractTarGz(stream, tempDir), HTTP_TIMEOUT, url,
- 'downloading $url');
- }).then((_) {
- // Remove the existing directory if it exists. This will happen if
- // we're forcing a download to repair the cache.
- if (dirExists(destPath)) deleteEntry(destPath);
-
- // Now that the get has succeeded, move it to the real location in the
- // cache. This ensures that we don't leave half-busted ghost
- // directories in the user's pub cache if a get fails.
- renameDir(tempDir, destPath);
- return true;
- });
- });
+ Future _download(String server, String package, Version version,
+ String destPath) async {
+ var url = Uri.parse("$server/packages/$package/versions/$version.tar.gz");
+ log.io("Get package from $url.");
+ log.message('Downloading ${log.bold(package)} ${version}...');
+
+ // Download and extract the archive to a temp directory.
+ var tempDir = systemCache.createTempDir();
+ var response = await httpClient.send(new http.Request("GET", url));
+ await extractTarGz(response.stream, tempDir);
+
+ // Remove the existing directory if it exists. This will happen if
+ // we're forcing a download to repair the cache.
+ if (dirExists(destPath)) deleteEntry(destPath);
+
+ // Now that the get has succeeded, move it to the real location in the
+ // cache. This ensures that we don't leave half-busted ghost
+ // directories in the user's pub cache if a get fails.
+ renameDir(tempDir, destPath);
}
/// When an error occurs trying to read something about [package] from [url],
@@ -219,11 +208,6 @@ class HostedSource extends CachedSource {
"Could not find package $package at $url.", error, stackTrace);
}
- if (error is TimeoutException) {
- fail("Timed out trying to find package $package at $url.",
- error, stackTrace);
- }
-
if (error is io.SocketException) {
fail("Got socket error trying to find package $package at $url.",
error, stackTrace);
@@ -260,7 +244,7 @@ class OfflineHostedSource extends HostedSource {
return versions;
}
- Future<bool> _download(String server, String package, Version version,
+ Future _download(String server, String package, Version version,
String destPath) {
// Since HostedSource is cached, this will only be called for uncached
// packages.
« no previous file with comments | « lib/src/io.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698