16665: Wraps error type to be able to differentiate it in a case switch.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 22 Jul 2021 20:30:51 +0000 (17:30 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 22 Jul 2021 20:30:51 +0000 (17:30 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

sdk/go/keepclient/keepclient.go
sdk/go/keepclient/support.go
services/keepproxy/keepproxy_test.go

index 2cd6bb4d43ec5e675f5eca46963e2f9d620de0f6..3bc6f4afcddf7cea0e5b77b140ac1b7c6b3a7a62 100644 (file)
@@ -69,11 +69,11 @@ type ErrNotFound struct {
        multipleResponseError
 }
 
-type InsufficientReplicasError error
+type InsufficientReplicasError struct{ error }
 
-type OversizeBlockError error
+type OversizeBlockError struct{ error }
 
-var ErrOversizeBlock = OversizeBlockError(errors.New("Exceeded maximum block size (" + strconv.Itoa(BLOCKSIZE) + ")"))
+var ErrOversizeBlock = OversizeBlockError{error: errors.New("Exceeded maximum block size (" + strconv.Itoa(BLOCKSIZE) + ")")}
 var MissingArvadosApiHost = errors.New("Missing required environment variable ARVADOS_API_HOST")
 var MissingArvadosApiToken = errors.New("Missing required environment variable ARVADOS_API_TOKEN")
 var InvalidLocatorError = errors.New("Invalid locator")
index a8c82aac0e70370dced92b3dd3f5bae249cb100c..633ec1896858bd484d6740b8e9dea074c12d82c9 100644 (file)
@@ -255,7 +255,7 @@ func (kc *KeepClient) BlockWrite(ctx context.Context, req arvados.BlockWriteOpti
                                                        msg += resp + "; "
                                                }
                                                msg = msg[:len(msg)-2]
-                                               return resp, InsufficientReplicasError(errors.New(msg))
+                                               return resp, InsufficientReplicasError{error: errors.New(msg)}
                                        }
                                        break
                                }
index f02971d61b22c7ff169f18208b7f159ff94c67a9..4bdb4202026e3aeb2705fa79faa0ef3e7a296307 100644 (file)
@@ -7,7 +7,6 @@ package main
 import (
        "bytes"
        "crypto/md5"
-       "errors"
        "fmt"
        "io/ioutil"
        "math/rand"
@@ -442,7 +441,7 @@ func (s *ServerRequiredSuite) TestPutAskGetForbidden(c *C) {
        hash2, rep, err := kc.PutB([]byte("bar"))
        c.Check(hash2, Equals, "")
        c.Check(rep, Equals, 0)
-       c.Check(err, FitsTypeOf, keepclient.InsufficientReplicasError(errors.New("")))
+       c.Check(err, FitsTypeOf, keepclient.InsufficientReplicasError{})
 
        blocklen, _, err := kc.Ask(hash)
        c.Check(err, FitsTypeOf, &keepclient.ErrNotFound{})
@@ -495,7 +494,7 @@ func testPermission(c *C, admin bool, perm arvados.UploadDownloadPermission) {
                } else {
                        c.Check(hash2, Equals, "")
                        c.Check(rep, Equals, 0)
-                       c.Check(err, FitsTypeOf, keepclient.InsufficientReplicasError(errors.New("")))
+                       c.Check(err, FitsTypeOf, keepclient.InsufficientReplicasError{})
                }
                logbuf.Reset()
        }