Skip to content

Commit 7cd2563

Browse files
committed
Swallow status 404 for docker rmi with a missing image
1 parent 61aa4c5 commit 7cd2563

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ImageApi.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import kotlinx.coroutines.withTimeout
4949
import okio.Source
5050
import okio.source
5151
import java.io.InputStream
52+
import java.net.HttpURLConnection.HTTP_NOT_FOUND
5253
import java.net.Proxy
5354
import java.time.Duration
5455
import java.time.temporal.ChronoUnit
@@ -698,6 +699,9 @@ class ImageApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, pro
698699
ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.")
699700
ResponseType.ClientError -> {
700701
val localVarError = localVarResponse as ClientError<*>
702+
if (localVarError.statusCode == HTTP_NOT_FOUND) {
703+
return emptyList()
704+
}
701705
throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse)
702706
}
703707
ResponseType.ServerError -> {

api-client/src/test/java/de/gesellix/docker/remote/api/client/ImageApiIntegrationTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ public void imageDelete() {
221221
imageApi.imageTag(testImage.getImageWithTag(), "test", "delete");
222222
List<ImageDeleteResponseItem> deletedImages = imageApi.imageDelete("test:delete", null, null);
223223
assertTrue(deletedImages.stream().anyMatch((e) -> e.getDeleted() != null || e.getUntagged() != null));
224+
assertDoesNotThrow(() -> imageApi.imageDelete("image-delete-missing", null, null));
224225
}
225226

226227
@Test

0 commit comments

Comments
 (0)