Skip to content

Commit 219b1fb

Browse files
Provide a client method to bypass server side timeout on upload
1 parent f370159 commit 219b1fb

File tree

4 files changed

+46
-3
lines changed

4 files changed

+46
-3
lines changed

pkg/image/controller/imagestream_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ func handleImageStream(
265265
ImportPolicy: imageapi.TagImportPolicy{Insecure: insecure},
266266
}
267267
}
268-
result, err := client.ImageStreamImports(stream.Namespace).Create(isi)
268+
result, err := client.ImageStreamImports(stream.Namespace).CreateWithoutTimeout(isi)
269269
if err != nil {
270270
if apierrs.IsNotFound(err) && isStatusErrorKind(err, "imageStream") {
271271
return result, ErrNotImportable

pkg/image/generated/internalclientset/typed/image/internalversion/fake/fake_imagestreamimport_expansion.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/image/generated/internalclientset/typed/image/internalversion/generated_expansion.go

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package internalversion
2+
3+
import (
4+
"time"
5+
6+
image "github.com/openshift/origin/pkg/image/apis/image"
7+
)
8+
9+
type ImageStreamImportExpansion interface {
10+
CreateWithoutTimeout(*image.ImageStreamImport) (*image.ImageStreamImport, error)
11+
}
12+
13+
// CreateWithoutTimeout imports the provided images and won't time out after 30 seconds. Use this when you must
14+
// import a large number of images.
15+
func (c *imageStreamImports) CreateWithoutTimeout(imageStreamImport *image.ImageStreamImport) (result *image.ImageStreamImport, err error) {
16+
result = &image.ImageStreamImport{}
17+
err = c.client.Post().
18+
Namespace(c.ns).
19+
Resource("imagestreamimports").
20+
Body(imageStreamImport).
21+
// this instructs the api server to allow our request to take up to an hour - chosen as a high boundary
22+
Timeout(time.Hour).
23+
Do().
24+
Into(result)
25+
return
26+
}

0 commit comments

Comments
 (0)