From a6c6b98d449e2039edb76a9bdbb0a71ed7fdeb16 Mon Sep 17 00:00:00 2001 From: Pavel Boldyrev <627562+bpg@users.noreply.github.com> Date: Tue, 21 May 2024 19:31:02 -0400 Subject: [PATCH] fix(file): upload timeout with 596 response code (#1315) Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com> --- proxmox/nodes/storage/content.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/proxmox/nodes/storage/content.go b/proxmox/nodes/storage/content.go index 908f0b70..de3f68ef 100644 --- a/proxmox/nodes/storage/content.go +++ b/proxmox/nodes/storage/content.go @@ -49,15 +49,18 @@ func (c *Client) ListDatastoreFiles( ) ([]*DatastoreFileListResponseData, error) { resBody := &DatastoreFileListResponseBody{} - err := c.DoRequest( - ctx, - http.MethodGet, - c.ExpandPath("content"), - nil, - resBody, + err := retry.Do( + func() error { + return c.DoRequest(ctx, http.MethodGet, c.ExpandPath("content"), nil, resBody) + }, + retry.Context(ctx), + retry.RetryIf(func(err error) bool { + return !errors.Is(err, api.ErrResourceDoesNotExist) + }), + retry.LastErrorOnly(true), ) if err != nil { - return nil, fmt.Errorf("error retrieving files from datastore %s: %w", c.StorageName, err) + return nil, fmt.Errorf("error listing files from datastore %s: %w", c.StorageName, err) } if resBody.Data == nil {