From 20d05eb18873fd61ff6756dbc76b6c175f215f86 Mon Sep 17 00:00:00 2001 From: Antoon Prins Date: Thu, 16 Sep 2021 16:37:48 +0200 Subject: [PATCH] Make sure to be in end state on any transfer failure. --- pkg/datatx/manager/rclone/rclone.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkg/datatx/manager/rclone/rclone.go b/pkg/datatx/manager/rclone/rclone.go index f25624af46b..5e4008cbbfd 100644 --- a/pkg/datatx/manager/rclone/rclone.go +++ b/pkg/datatx/manager/rclone/rclone.go @@ -456,7 +456,6 @@ func (driver *rclone) startJob(ctx context.Context, transferID string, srcRemote transfer.TransferStatus = datatx.Status_STATUS_INVALID if err := driver.pDriver.model.saveTransfer(nil); err != nil { logger.Error().Err(err).Msgf("rclone driver: save transfer failed: %v", err) - break } break } @@ -466,6 +465,10 @@ func (driver *rclone) startJob(ctx context.Context, transferID string, srcRemote u, err := url.Parse(driver.config.Endpoint) if err != nil { logger.Error().Err(err).Msgf("rclone driver: could not parse driver endpoint: %v", err) + transfer.TransferStatus = datatx.Status_STATUS_INVALID + if err := driver.pDriver.model.saveTransfer(nil); err != nil { + logger.Error().Err(err).Msgf("rclone driver: save transfer failed: %v", err) + } break } u.Path = path.Join(u.Path, transferFileMethod) @@ -474,6 +477,10 @@ func (driver *rclone) startJob(ctx context.Context, transferID string, srcRemote req, err := http.NewRequest("POST", requestURL, bytes.NewReader(data)) if err != nil { logger.Error().Err(err).Msgf("rclone driver: error framing post request: %v", err) + transfer.TransferStatus = datatx.Status_STATUS_INVALID + if err := driver.pDriver.model.saveTransfer(nil); err != nil { + logger.Error().Err(err).Msgf("rclone driver: save transfer failed: %v", err) + } break } req.Header.Set("Content-Type", "application/json") @@ -481,6 +488,10 @@ func (driver *rclone) startJob(ctx context.Context, transferID string, srcRemote res, err := driver.client.Do(req) if err != nil { logger.Error().Err(err).Msgf("rclone driver: error sending post request: %v", err) + transfer.TransferStatus = datatx.Status_STATUS_INVALID + if err := driver.pDriver.model.saveTransfer(nil); err != nil { + logger.Error().Err(err).Msgf("rclone driver: save transfer failed: %v", err) + } break } @@ -493,6 +504,10 @@ func (driver *rclone) startJob(ctx context.Context, transferID string, srcRemote logger.Error().Err(err).Msgf("rclone driver: error reading response body: %v", err) } logger.Error().Err(err).Msgf("rclone driver: rclone request responded with error, status: %v, error: %v", errorResData.Status, errorResData.Error) + transfer.TransferStatus = datatx.Status_STATUS_INVALID + if err := driver.pDriver.model.saveTransfer(nil); err != nil { + logger.Error().Err(err).Msgf("rclone driver: save transfer failed: %v", err) + } break }