fix: convert multiple callers to use toStorageErr(err) correctly (#19339)

we must attempt to convert all errors at storage-rest-client
into StorageErr() regardless of what functionality is being
called in, this PR fixes this for multiple callers including
some internally used functions.
This commit is contained in:
Harshavardhana 2024-03-25 23:24:59 -07:00 committed by GitHub
parent 1fc4203c19
commit deeadd1a37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -190,12 +190,10 @@ func (client *storageRESTClient) call(ctx context.Context, method string, values
} }
values.Set(storageRESTDiskID, client.diskID) values.Set(storageRESTDiskID, client.diskID)
respBody, err := client.restClient.Call(ctx, method, values, body, length) respBody, err := client.restClient.Call(ctx, method, values, body, length)
if err == nil { if err != nil {
return respBody, nil return nil, toStorageErr(err)
} }
return respBody, nil
err = toStorageErr(err)
return nil, err
} }
// Stringer provides a canonicalized representation of network device. // Stringer provides a canonicalized representation of network device.
@ -403,7 +401,7 @@ func (client *storageRESTClient) CreateFile(ctx context.Context, origvolume, vol
return err return err
} }
_, err = waitForHTTPResponse(respBody) _, err = waitForHTTPResponse(respBody)
return err return toStorageErr(err)
} }
func (client *storageRESTClient) WriteMetadata(ctx context.Context, origvolume, volume, path string, fi FileInfo) error { func (client *storageRESTClient) WriteMetadata(ctx context.Context, origvolume, volume, path string, fi FileInfo) error {
@ -641,7 +639,7 @@ func (client *storageRESTClient) ReadFile(ctx context.Context, volume string, pa
} }
defer xhttp.DrainBody(respBody) defer xhttp.DrainBody(respBody)
n, err := io.ReadFull(respBody, buf) n, err := io.ReadFull(respBody, buf)
return int64(n), err return int64(n), toStorageErr(err)
} }
// ListDir - lists a directory. // ListDir - lists a directory.
@ -709,7 +707,7 @@ func (client *storageRESTClient) DeleteVersions(ctx context.Context, volume stri
reader, err := waitForHTTPResponse(respBody) reader, err := waitForHTTPResponse(respBody)
if err != nil { if err != nil {
for i := range errs { for i := range errs {
errs[i] = err errs[i] = toStorageErr(err)
} }
return errs return errs
} }
@ -717,7 +715,7 @@ func (client *storageRESTClient) DeleteVersions(ctx context.Context, volume stri
dErrResp := &DeleteVersionsErrsResp{} dErrResp := &DeleteVersionsErrsResp{}
if err = gob.NewDecoder(reader).Decode(dErrResp); err != nil { if err = gob.NewDecoder(reader).Decode(dErrResp); err != nil {
for i := range errs { for i := range errs {
errs[i] = err errs[i] = toStorageErr(err)
} }
return errs return errs
} }
@ -759,12 +757,12 @@ func (client *storageRESTClient) VerifyFile(ctx context.Context, volume, path st
respReader, err := waitForHTTPResponse(respBody) respReader, err := waitForHTTPResponse(respBody)
if err != nil { if err != nil {
return err return toStorageErr(err)
} }
verifyResp := &VerifyFileResp{} verifyResp := &VerifyFileResp{}
if err = gob.NewDecoder(respReader).Decode(verifyResp); err != nil { if err = gob.NewDecoder(respReader).Decode(verifyResp); err != nil {
return err return toStorageErr(err)
} }
return toStorageErr(verifyResp.Err) return toStorageErr(verifyResp.Err)
@ -782,7 +780,7 @@ func (client *storageRESTClient) StatInfoFile(ctx context.Context, volume, path
defer xhttp.DrainBody(respBody) defer xhttp.DrainBody(respBody)
respReader, err := waitForHTTPResponse(respBody) respReader, err := waitForHTTPResponse(respBody)
if err != nil { if err != nil {
return stat, err return stat, toStorageErr(err)
} }
rd := msgpNewReader(respReader) rd := msgpNewReader(respReader)
defer readMsgpReaderPoolPut(rd) defer readMsgpReaderPoolPut(rd)
@ -798,7 +796,7 @@ func (client *storageRESTClient) StatInfoFile(ctx context.Context, volume, path
stat = append(stat, st) stat = append(stat, st)
} }
return stat, err return stat, toStorageErr(err)
} }
// ReadMultiple will read multiple files and send each back as response. // ReadMultiple will read multiple files and send each back as response.
@ -816,9 +814,7 @@ func (client *storageRESTClient) ReadMultiple(ctx context.Context, req ReadMulti
return err return err
} }
defer xhttp.DrainBody(respBody) defer xhttp.DrainBody(respBody)
if err != nil {
return err
}
pr, pw := io.Pipe() pr, pw := io.Pipe()
go func() { go func() {
pw.CloseWithError(waitForHTTPStream(respBody, pw)) pw.CloseWithError(waitForHTTPStream(respBody, pw))
@ -832,7 +828,7 @@ func (client *storageRESTClient) ReadMultiple(ctx context.Context, req ReadMulti
err = nil err = nil
} }
pr.CloseWithError(err) pr.CloseWithError(err)
return err return toStorageErr(err)
} }
select { select {
case <-ctx.Done(): case <-ctx.Done():
@ -854,7 +850,7 @@ func (client *storageRESTClient) CleanAbandonedData(ctx context.Context, volume
} }
defer xhttp.DrainBody(respBody) defer xhttp.DrainBody(respBody)
_, err = waitForHTTPResponse(respBody) _, err = waitForHTTPResponse(respBody)
return err return toStorageErr(err)
} }
// Close - marks the client as closed. // Close - marks the client as closed.