Skip to content

Commit fc6f04b

Browse files
authored
Merge storage.tryDeleteWithReply into deleteWithReply (#8615)
1 parent f0376d7 commit fc6f04b

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

app/lib/package/api_export/exported_api.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ final class ExportedApi {
121121
// Only delete the item if it's older than _minGarbageAge
122122
// This avoids any races where we delete files we've just created
123123
// TODO: Conditionally deletion API from package:gcloud would be better!
124-
await _bucket.tryDeleteWithRetry(item.name);
124+
await _bucket.deleteWithRetry(item.name);
125125
}
126126
});
127127

@@ -137,7 +137,7 @@ final class ExportedApi {
137137
item.updated.isBefore(gcFilesBefore)) {
138138
// Only delete the item if it's older than _minGarbageAge
139139
// This avoids any races where we delete files we've just created
140-
await _bucket.tryDeleteWithRetry(item.name);
140+
await _bucket.deleteWithRetry(item.name);
141141
}
142142
});
143143
}
@@ -184,7 +184,7 @@ final class ExportedApi {
184184
await _listBucket(
185185
prefix: entry.name,
186186
delimiter: '',
187-
(entry) async => await _bucket.tryDeleteWithRetry(entry.name),
187+
(entry) async => await _bucket.deleteWithRetry(entry.name),
188188
);
189189
}
190190
}));
@@ -336,7 +336,7 @@ final class ExportedPackage {
336336
item.updated.isBefore(clock.agoBy(_minGarbageAge))) {
337337
// Only delete if the item if it's older than _minGarbageAge
338338
// This avoids any races where we delete files we've just created
339-
await _owner._bucket.tryDeleteWithRetry(item.name);
339+
await _owner._bucket.deleteWithRetry(item.name);
340340
}
341341
});
342342

@@ -380,7 +380,7 @@ final class ExportedPackage {
380380
if (info.updated.isBefore(clock.agoBy(_minGarbageAge))) {
381381
// Only delete if the item if it's older than _minGarbageAge
382382
// This avoids any races where we delete files we've just created
383-
await _owner._bucket.tryDeleteWithRetry(item.name);
383+
await _owner._bucket.deleteWithRetry(item.name);
384384
}
385385
}
386386
// Ignore cases where tryInfo fails, assuming the object has been
@@ -399,7 +399,7 @@ final class ExportedPackage {
399399
await _owner._listBucket(
400400
prefix: prefix + '/api/archives/$_package-',
401401
delimiter: '',
402-
(item) async => await _owner._bucket.tryDeleteWithRetry(item.name),
402+
(item) async => await _owner._bucket.deleteWithRetry(item.name),
403403
);
404404
}),
405405
]);
@@ -442,7 +442,7 @@ sealed class ExportedObject {
442442
Future<void> delete() async {
443443
await Future.wait(_owner._prefixes.map((prefix) async {
444444
await _owner._pool.withResource(() async {
445-
await _owner._bucket.tryDeleteWithRetry(prefix + _objectName);
445+
await _owner._bucket.deleteWithRetry(prefix + _objectName);
446446
});
447447
}));
448448
}

app/lib/shared/storage.dart

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,17 @@ extension BucketExt on Bucket {
103103
}
104104

105105
/// Delete an object with default retry.
106+
///
107+
/// Ignores 404 responses, as it may happen if the first request completes
108+
/// on the server while unsuccessful on the client.
106109
Future<void> deleteWithRetry(String name) async {
107-
return await _retry(() => delete(name));
108-
}
109-
110-
/// Deletes [name] if it exists, ignores 404 otherwise.
111-
Future<bool> tryDeleteWithRetry(String name) async {
112110
return await _retry(
113111
() async {
114112
try {
115113
await delete(name);
116-
return true;
117114
} on DetailedApiRequestError catch (e) {
118115
if (e.status == 404) {
119-
return false;
116+
return;
120117
}
121118
rethrow;
122119
}
@@ -338,8 +335,8 @@ Future<int> deleteBucketFolderRecursively(
338335
final pool = Pool(concurrency ?? 1);
339336
for (final entry in page!.items) {
340337
final f = pool.withResource(() async {
341-
final deleted = await bucket.tryDeleteWithRetry(entry.name);
342-
if (deleted) count++;
338+
await bucket.deleteWithRetry(entry.name);
339+
count++;
343340
});
344341
futures.add(f);
345342
}
@@ -477,7 +474,7 @@ class VersionedJsonStorage {
477474
final age = clock.now().difference(info.updated);
478475
if (minAgeThreshold == null || age > minAgeThreshold) {
479476
deleted++;
480-
await _bucket.tryDeleteWithRetry(entry.name);
477+
await _bucket.deleteWithRetry(entry.name);
481478
}
482479
}
483480
});

0 commit comments

Comments
 (0)