From 7314917d65573b0e9d55f7b6522463c470356fba Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 27 Sep 2016 12:48:16 -0400 Subject: [PATCH] 9848: Use pointer receiver for all arvadosclient.ArvadosClient methods. This makes it possible for all methods to satisfy a single interface. --- sdk/go/arvadosclient/arvadosclient.go | 18 +++--- sdk/go/arvadosclient/pool.go | 2 +- sdk/go/crunchrunner/crunchrunner.go | 2 +- sdk/go/dispatch/dispatch.go | 2 +- sdk/go/keepclient/collectionreader_test.go | 4 +- sdk/go/keepclient/discover_test.go | 6 +- sdk/go/keepclient/keepclient_test.go | 62 +++++++++---------- sdk/go/logger/logger.go | 6 +- sdk/go/util/util.go | 4 +- .../crunch-dispatch-local_test.go | 2 +- .../crunch-dispatch-slurm_test.go | 2 +- services/crunch-run/crunchrun.go | 2 +- services/crunch-run/crunchrun_test.go | 10 +++ services/datamanager/collection/collection.go | 2 +- .../datamanager/collection/collection_test.go | 2 +- services/datamanager/datamanager.go | 6 +- services/datamanager/datamanager_test.go | 4 +- services/datamanager/keep/keep.go | 8 +-- services/datamanager/keep/keep_test.go | 16 ++--- services/keep-balance/integration_test.go | 2 +- services/keep-web/server_test.go | 4 +- services/keepproxy/keepproxy_test.go | 4 +- .../keepstore/pull_worker_integration_test.go | 2 +- services/keepstore/pull_worker_test.go | 2 +- 24 files changed, 92 insertions(+), 82 deletions(-) diff --git a/sdk/go/arvadosclient/arvadosclient.go b/sdk/go/arvadosclient/arvadosclient.go index e3cbfcf13e..5f24c7107d 100644 --- a/sdk/go/arvadosclient/arvadosclient.go +++ b/sdk/go/arvadosclient/arvadosclient.go @@ -125,12 +125,12 @@ func New(c *arvados.Client) (*ArvadosClient, error) { // environment variables ARVADOS_API_HOST, ARVADOS_API_TOKEN, // ARVADOS_API_HOST_INSECURE, ARVADOS_EXTERNAL_CLIENT, and // ARVADOS_KEEP_SERVICES. -func MakeArvadosClient() (ac ArvadosClient, err error) { +func MakeArvadosClient() (ac *ArvadosClient, err error) { var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$") insecure := matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) external := matchTrue.MatchString(os.Getenv("ARVADOS_EXTERNAL_CLIENT")) - ac = ArvadosClient{ + ac = &ArvadosClient{ Scheme: "https", ApiServer: os.Getenv("ARVADOS_API_HOST"), ApiToken: os.Getenv("ARVADOS_API_TOKEN"), @@ -166,7 +166,7 @@ func MakeArvadosClient() (ac ArvadosClient, err error) { // CallRaw is the same as Call() but returns a Reader that reads the // response body, instead of taking an output object. -func (c ArvadosClient) CallRaw(method string, resourceType string, uuid string, action string, parameters Dict) (reader io.ReadCloser, err error) { +func (c *ArvadosClient) CallRaw(method string, resourceType string, uuid string, action string, parameters Dict) (reader io.ReadCloser, err error) { scheme := c.Scheme if scheme == "" { scheme = "https" @@ -312,7 +312,7 @@ func newAPIServerError(ServerAddress string, resp *http.Response) APIServerError // Returns a non-nil error if an error occurs making the API call, the // API responds with a non-successful HTTP status, or an error occurs // parsing the response body. -func (c ArvadosClient) Call(method, resourceType, uuid, action string, parameters Dict, output interface{}) error { +func (c *ArvadosClient) Call(method, resourceType, uuid, action string, parameters Dict, output interface{}) error { reader, err := c.CallRaw(method, resourceType, uuid, action, parameters) if reader != nil { defer reader.Close() @@ -331,22 +331,22 @@ func (c ArvadosClient) Call(method, resourceType, uuid, action string, parameter } // Create a new resource. See Call for argument descriptions. -func (c ArvadosClient) Create(resourceType string, parameters Dict, output interface{}) error { +func (c *ArvadosClient) Create(resourceType string, parameters Dict, output interface{}) error { return c.Call("POST", resourceType, "", "", parameters, output) } // Delete a resource. See Call for argument descriptions. -func (c ArvadosClient) Delete(resource string, uuid string, parameters Dict, output interface{}) (err error) { +func (c *ArvadosClient) Delete(resource string, uuid string, parameters Dict, output interface{}) (err error) { return c.Call("DELETE", resource, uuid, "", parameters, output) } // Modify attributes of a resource. See Call for argument descriptions. -func (c ArvadosClient) Update(resourceType string, uuid string, parameters Dict, output interface{}) (err error) { +func (c *ArvadosClient) Update(resourceType string, uuid string, parameters Dict, output interface{}) (err error) { return c.Call("PUT", resourceType, uuid, "", parameters, output) } // Get a resource. See Call for argument descriptions. -func (c ArvadosClient) Get(resourceType string, uuid string, parameters Dict, output interface{}) (err error) { +func (c *ArvadosClient) Get(resourceType string, uuid string, parameters Dict, output interface{}) (err error) { if !UUIDMatch(uuid) && !(resourceType == "collections" && PDHMatch(uuid)) { // No object has uuid == "": there is no need to make // an API call. Furthermore, the HTTP request for such @@ -358,7 +358,7 @@ func (c ArvadosClient) Get(resourceType string, uuid string, parameters Dict, ou } // List resources of a given type. See Call for argument descriptions. -func (c ArvadosClient) List(resource string, parameters Dict, output interface{}) (err error) { +func (c *ArvadosClient) List(resource string, parameters Dict, output interface{}) (err error) { return c.Call("GET", resource, "", "", parameters, output) } diff --git a/sdk/go/arvadosclient/pool.go b/sdk/go/arvadosclient/pool.go index 26b3518798..6b3171f7eb 100644 --- a/sdk/go/arvadosclient/pool.go +++ b/sdk/go/arvadosclient/pool.go @@ -23,7 +23,7 @@ type ClientPool struct { func MakeClientPool() *ClientPool { proto, err := MakeArvadosClient() return &ClientPool{ - Prototype: &proto, + Prototype: proto, lastErr: err, } } diff --git a/sdk/go/crunchrunner/crunchrunner.go b/sdk/go/crunchrunner/crunchrunner.go index 040d7c20be..5c3d65c561 100644 --- a/sdk/go/crunchrunner/crunchrunner.go +++ b/sdk/go/crunchrunner/crunchrunner.go @@ -379,7 +379,7 @@ func main() { } var kc IKeepClient - kc, err = keepclient.MakeKeepClient(&api) + kc, err = keepclient.MakeKeepClient(api) if err != nil { log.Fatal(err) } diff --git a/sdk/go/dispatch/dispatch.go b/sdk/go/dispatch/dispatch.go index a48613292e..4987c01055 100644 --- a/sdk/go/dispatch/dispatch.go +++ b/sdk/go/dispatch/dispatch.go @@ -25,7 +25,7 @@ const ( // Dispatcher holds the state of the dispatcher type Dispatcher struct { // The Arvados client - Arv arvadosclient.ArvadosClient + Arv *arvadosclient.ArvadosClient // When a new queued container appears and is either already owned by // this dispatcher or is successfully locked, the dispatcher will call diff --git a/sdk/go/keepclient/collectionreader_test.go b/sdk/go/keepclient/collectionreader_test.go index 2cc2373885..be4f386ff2 100644 --- a/sdk/go/keepclient/collectionreader_test.go +++ b/sdk/go/keepclient/collectionreader_test.go @@ -19,7 +19,7 @@ import ( var _ = check.Suite(&CollectionReaderUnit{}) type CollectionReaderUnit struct { - arv arvadosclient.ArvadosClient + arv *arvadosclient.ArvadosClient kc *KeepClient handler SuccessHandler } @@ -30,7 +30,7 @@ func (s *CollectionReaderUnit) SetUpTest(c *check.C) { c.Assert(err, check.IsNil) s.arv.ApiToken = arvadostest.ActiveToken - s.kc, err = MakeKeepClient(&s.arv) + s.kc, err = MakeKeepClient(s.arv) c.Assert(err, check.IsNil) s.handler = SuccessHandler{ diff --git a/sdk/go/keepclient/discover_test.go b/sdk/go/keepclient/discover_test.go index ee31ea0ea2..379d44c820 100644 --- a/sdk/go/keepclient/discover_test.go +++ b/sdk/go/keepclient/discover_test.go @@ -17,7 +17,7 @@ func ExampleKeepClient_RefreshServices() { if err != nil { panic(err) } - kc, err := MakeKeepClient(&arv) + kc, err := MakeKeepClient(arv) if err != nil { panic(err) } @@ -53,9 +53,9 @@ func (s *ServerRequiredSuite) TestOverrideDiscovery(c *check.C) { // arv2 should use our stub servers, but one created for arv1 // should not. - kc1, err := MakeKeepClient(&arv1) + kc1, err := MakeKeepClient(arv1) c.Assert(err, check.IsNil) - kc2, err := MakeKeepClient(&arv2) + kc2, err := MakeKeepClient(arv2) c.Assert(err, check.IsNil) _, _, _, err = kc1.Get(hash) diff --git a/sdk/go/keepclient/keepclient_test.go b/sdk/go/keepclient/keepclient_test.go index 4ba1d7c245..bd36d9d5e1 100644 --- a/sdk/go/keepclient/keepclient_test.go +++ b/sdk/go/keepclient/keepclient_test.go @@ -62,7 +62,7 @@ func (s *ServerRequiredSuite) TestMakeKeepClient(c *C) { arv, err := arvadosclient.MakeArvadosClient() c.Assert(err, Equals, nil) - kc, err := MakeKeepClient(&arv) + kc, err := MakeKeepClient(arv) c.Assert(err, Equals, nil) c.Check(len(kc.LocalRoots()), Equals, 2) @@ -75,15 +75,15 @@ func (s *ServerRequiredSuite) TestDefaultReplications(c *C) { arv, err := arvadosclient.MakeArvadosClient() c.Assert(err, Equals, nil) - kc, err := MakeKeepClient(&arv) + kc, err := MakeKeepClient(arv) c.Assert(kc.Want_replicas, Equals, 2) arv.DiscoveryDoc["defaultCollectionReplication"] = 3.0 - kc, err = MakeKeepClient(&arv) + kc, err = MakeKeepClient(arv) c.Assert(kc.Want_replicas, Equals, 3) arv.DiscoveryDoc["defaultCollectionReplication"] = 1.0 - kc, err = MakeKeepClient(&arv) + kc, err = MakeKeepClient(arv) c.Assert(kc.Want_replicas, Equals, 1) } @@ -125,7 +125,7 @@ func UploadToStubHelper(c *C, st http.Handler, f func(*KeepClient, string, arv, _ := arvadosclient.MakeArvadosClient() arv.ApiToken = "abc123" - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) reader, writer := io.Pipe() upload_status := make(chan uploadStatus) @@ -269,7 +269,7 @@ func (s *StandaloneSuite) TestPutB(c *C) { make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -310,7 +310,7 @@ func (s *StandaloneSuite) TestPutHR(c *C) { make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -361,7 +361,7 @@ func (s *StandaloneSuite) TestPutWithFail(c *C) { make(chan string, 1)} arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -419,7 +419,7 @@ func (s *StandaloneSuite) TestPutWithTooManyFail(c *C) { make(chan string, 4)} arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 kc.Retries = 0 @@ -480,7 +480,7 @@ func (s *StandaloneSuite) TestGet(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -504,7 +504,7 @@ func (s *StandaloneSuite) TestGet404(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -524,7 +524,7 @@ func (s *StandaloneSuite) TestGetFail(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) kc.Retries = 0 @@ -554,7 +554,7 @@ func (s *StandaloneSuite) TestGetFailRetry(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -573,7 +573,7 @@ func (s *StandaloneSuite) TestGetNetError(c *C) { hash := fmt.Sprintf("%x", md5.Sum([]byte("foo"))) arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": "http://localhost:62222"}, nil, nil) @@ -609,7 +609,7 @@ func (s *StandaloneSuite) TestGetWithServiceHint(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots( map[string]string{"x": ks0.url}, @@ -652,7 +652,7 @@ func (s *StandaloneSuite) TestGetWithLocalServiceHint(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots( map[string]string{ @@ -699,7 +699,7 @@ func (s *StandaloneSuite) TestGetWithServiceHintFailoverToLocals(c *C) { defer ksGateway.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots( map[string]string{"zzzzz-bi6l4-keepdisk0000000": ksLocal.url}, @@ -736,7 +736,7 @@ func (s *StandaloneSuite) TestChecksum(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -770,7 +770,7 @@ func (s *StandaloneSuite) TestGetWithFailures(c *C) { content} arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" localRoots := make(map[string]string) writableLocalRoots := make(map[string]string) @@ -816,7 +816,7 @@ func (s *ServerRequiredSuite) TestPutGetHead(c *C) { content := []byte("TestPutGetHead") arv, err := arvadosclient.MakeArvadosClient() - kc, err := MakeKeepClient(&arv) + kc, err := MakeKeepClient(arv) c.Assert(err, Equals, nil) hash := fmt.Sprintf("%x", md5.Sum(content)) @@ -863,7 +863,7 @@ func (s *StandaloneSuite) TestPutProxy(c *C) { st := StubProxyHandler{make(chan string, 1)} arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -891,7 +891,7 @@ func (s *StandaloneSuite) TestPutProxyInsufficientReplicas(c *C) { st := StubProxyHandler{make(chan string, 1)} arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 3 arv.ApiToken = "abc123" @@ -964,7 +964,7 @@ func (s *StandaloneSuite) TestPutBWant2ReplicasWithOnlyOneWritableLocalRoot(c *C make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -1002,7 +1002,7 @@ func (s *StandaloneSuite) TestPutBWithNoWritableLocalRoots(c *C) { make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -1054,7 +1054,7 @@ func (s *StandaloneSuite) TestGetIndexWithNoPrefix(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -1080,7 +1080,7 @@ func (s *StandaloneSuite) TestGetIndexWithPrefix(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -1106,7 +1106,7 @@ func (s *StandaloneSuite) TestGetIndexIncomplete(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -1128,7 +1128,7 @@ func (s *StandaloneSuite) TestGetIndexWithNoSuchServer(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -1148,7 +1148,7 @@ func (s *StandaloneSuite) TestGetIndexWithNoSuchPrefix(c *C) { defer ks.listener.Close() arv, err := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) arv.ApiToken = "abc123" kc.SetServiceRoots(map[string]string{"x": ks.url}, nil, nil) @@ -1186,7 +1186,7 @@ func (s *StandaloneSuite) TestPutBRetry(c *C) { make(chan string, 5)}} arv, _ := arvadosclient.MakeArvadosClient() - kc, _ := MakeKeepClient(&arv) + kc, _ := MakeKeepClient(arv) kc.Want_replicas = 2 arv.ApiToken = "abc123" @@ -1226,7 +1226,7 @@ func (s *ServerRequiredSuite) TestMakeKeepClientWithNonDiskTypeService(c *C) { defer func() { arv.Delete("keep_services", blobKeepService["uuid"].(string), nil, nil) }() // Make a keepclient and ensure that the testblobstore is included - kc, err := MakeKeepClient(&arv) + kc, err := MakeKeepClient(arv) c.Assert(err, Equals, nil) // verify kc.LocalRoots diff --git a/sdk/go/logger/logger.go b/sdk/go/logger/logger.go index 3b2db3a321..6dd7fb3723 100644 --- a/sdk/go/logger/logger.go +++ b/sdk/go/logger/logger.go @@ -37,9 +37,9 @@ const ( ) type LoggerParams struct { - Client arvadosclient.ArvadosClient // The client we use to write log entries - EventTypePrefix string // The prefix we use for the event type in the log entry - WriteInterval time.Duration // Wait at least this long between log writes + Client *arvadosclient.ArvadosClient // The client we use to write log entries + EventTypePrefix string // The prefix we use for the event type in the log entry + WriteInterval time.Duration // Wait at least this long between log writes } // A LogMutator is a function which modifies the log entry. diff --git a/sdk/go/util/util.go b/sdk/go/util/util.go index 6bc86250b4..ac510de02a 100644 --- a/sdk/go/util/util.go +++ b/sdk/go/util/util.go @@ -6,7 +6,7 @@ import ( "git.curoverse.com/arvados.git/sdk/go/arvadosclient" ) -func UserIsAdmin(arv arvadosclient.ArvadosClient) (is_admin bool, err error) { +func UserIsAdmin(arv *arvadosclient.ArvadosClient) (is_admin bool, err error) { type user struct { IsAdmin bool `json:"is_admin"` } @@ -21,7 +21,7 @@ func UserIsAdmin(arv arvadosclient.ArvadosClient) (is_admin bool, err error) { // return // count - the number of items of type resource the api server reports, if no error // err - error accessing the resource, or nil if no error -func NumberItemsAvailable(client arvadosclient.ArvadosClient, resource string) (count int, err error) { +func NumberItemsAvailable(client *arvadosclient.ArvadosClient, resource string) (count int, err error) { var response struct { ItemsAvailable int `json:"items_available"` } diff --git a/services/crunch-dispatch-local/crunch-dispatch-local_test.go b/services/crunch-dispatch-local/crunch-dispatch-local_test.go index ff4fa8a789..bcb406eb8e 100644 --- a/services/crunch-dispatch-local/crunch-dispatch-local_test.go +++ b/services/crunch-dispatch-local/crunch-dispatch-local_test.go @@ -152,7 +152,7 @@ func testWithServerStub(c *C, apiStubResponses map[string]arvadostest.StubRespon api := httptest.NewServer(&apiStub) defer api.Close() - arv := arvadosclient.ArvadosClient{ + arv := &arvadosclient.ArvadosClient{ Scheme: "http", ApiServer: api.URL[7:], ApiToken: "abc123", diff --git a/services/crunch-dispatch-slurm/crunch-dispatch-slurm_test.go b/services/crunch-dispatch-slurm/crunch-dispatch-slurm_test.go index 39ec15dd0e..e7ccf25fc9 100644 --- a/services/crunch-dispatch-slurm/crunch-dispatch-slurm_test.go +++ b/services/crunch-dispatch-slurm/crunch-dispatch-slurm_test.go @@ -193,7 +193,7 @@ func testWithServerStub(c *C, apiStubResponses map[string]arvadostest.StubRespon api := httptest.NewServer(&apiStub) defer api.Close() - arv := arvadosclient.ArvadosClient{ + arv := &arvadosclient.ArvadosClient{ Scheme: "http", ApiServer: api.URL[7:], ApiToken: "abc123", diff --git a/services/crunch-run/crunchrun.go b/services/crunch-run/crunchrun.go index 0b4eb2bcbf..02f2ee96c6 100644 --- a/services/crunch-run/crunchrun.go +++ b/services/crunch-run/crunchrun.go @@ -877,7 +877,7 @@ func main() { api.Retries = 8 var kc *keepclient.KeepClient - kc, err = keepclient.MakeKeepClient(&api) + kc, err = keepclient.MakeKeepClient(api) if err != nil { log.Fatalf("%s: %v", containerId, err) } diff --git a/services/crunch-run/crunchrun_test.go b/services/crunch-run/crunchrun_test.go index 644e9e9f58..0ce658721e 100644 --- a/services/crunch-run/crunchrun_test.go +++ b/services/crunch-run/crunchrun_test.go @@ -202,6 +202,12 @@ func (client *ArvTestClient) Update(resourceType string, uuid string, parameters return nil } +var discoveryMap = map[string]interface{}{"defaultTrashLifetime": float64(1209600)} + +func (client *ArvTestClient) Discovery(key string) (interface{}, error) { + return discoveryMap[key], nil +} + // CalledWith returns the parameters from the first API call whose // parameters match jpath/string. E.g., CalledWith(c, "foo.bar", // "baz") returns parameters with parameters["foo"]["bar"]=="baz". If @@ -307,6 +313,10 @@ func (ArvErrorTestClient) Update(resourceType string, uuid string, parameters ar return nil } +func (ArvErrorTestClient) Discovery(key string) (interface{}, error) { + return discoveryMap[key], nil +} + type KeepErrorTestClient struct{} func (KeepErrorTestClient) PutHB(hash string, buf []byte) (string, int, error) { diff --git a/services/datamanager/collection/collection.go b/services/datamanager/collection/collection.go index 5fcacffb78..05e7a5f231 100644 --- a/services/datamanager/collection/collection.go +++ b/services/datamanager/collection/collection.go @@ -42,7 +42,7 @@ type ReadCollections struct { // GetCollectionsParams params type GetCollectionsParams struct { - Client arvadosclient.ArvadosClient + Client *arvadosclient.ArvadosClient Logger *logger.Logger BatchSize int } diff --git a/services/datamanager/collection/collection_test.go b/services/datamanager/collection/collection_test.go index b23ef2cf0e..1bf6a89f5a 100644 --- a/services/datamanager/collection/collection_test.go +++ b/services/datamanager/collection/collection_test.go @@ -184,7 +184,7 @@ func testGetCollectionsAndSummarize(c *C, testData APITestData) { api := httptest.NewServer(&apiStub) defer api.Close() - arv := arvadosclient.ArvadosClient{ + arv := &arvadosclient.ArvadosClient{ Scheme: "http", ApiServer: api.URL[7:], ApiToken: "abc123", diff --git a/services/datamanager/datamanager.go b/services/datamanager/datamanager.go index 8e12835842..5250d175ff 100644 --- a/services/datamanager/datamanager.go +++ b/services/datamanager/datamanager.go @@ -81,7 +81,7 @@ func main() { var arvLogger *logger.Logger -func singlerun(arv arvadosclient.ArvadosClient) error { +func singlerun(arv *arvadosclient.ArvadosClient) error { var err error if isAdmin, err := util.UserIsAdmin(arv); err != nil { return errors.New("Error verifying admin token: " + err.Error()) @@ -142,7 +142,7 @@ func singlerun(arv arvadosclient.ArvadosClient) error { rlbss.Count) } - kc, err := keepclient.MakeKeepClient(&arv) + kc, err := keepclient.MakeKeepClient(arv) if err != nil { return fmt.Errorf("Error setting up keep client %v", err.Error()) } @@ -185,7 +185,7 @@ func singlerun(arv arvadosclient.ArvadosClient) error { } // BuildDataFetcher returns a data fetcher that fetches data from remote servers. -func BuildDataFetcher(arv arvadosclient.ArvadosClient) summary.DataFetcher { +func BuildDataFetcher(arv *arvadosclient.ArvadosClient) summary.DataFetcher { return func( arvLogger *logger.Logger, readCollections *collection.ReadCollections, diff --git a/services/datamanager/datamanager_test.go b/services/datamanager/datamanager_test.go index 0ff6b77734..7a8fff5c32 100644 --- a/services/datamanager/datamanager_test.go +++ b/services/datamanager/datamanager_test.go @@ -19,7 +19,7 @@ import ( "time" ) -var arv arvadosclient.ArvadosClient +var arv *arvadosclient.ArvadosClient var keepClient *keepclient.KeepClient var keepServers []string @@ -40,7 +40,7 @@ func SetupDataManagerTest(t *testing.T) { // keep client keepClient = &keepclient.KeepClient{ - Arvados: &arv, + Arvados: arv, Want_replicas: 2, Client: &http.Client{}, } diff --git a/services/datamanager/keep/keep.go b/services/datamanager/keep/keep.go index 651c869ef0..39d2d5bd5d 100644 --- a/services/datamanager/keep/keep.go +++ b/services/datamanager/keep/keep.go @@ -66,7 +66,7 @@ type ReadServers struct { // GetKeepServersParams struct type GetKeepServersParams struct { - Client arvadosclient.ArvadosClient + Client *arvadosclient.ArvadosClient Logger *logger.Logger Limit int } @@ -215,7 +215,7 @@ func GetKeepServers(params GetKeepServersParams) (results ReadServers, err error // GetServerContents of the keep server func GetServerContents(arvLogger *logger.Logger, keepServer ServerAddress, - arv arvadosclient.ArvadosClient) (response ServerResponse) { + arv *arvadosclient.ArvadosClient) (response ServerResponse) { err := GetServerStatus(arvLogger, keepServer, arv) if err != nil { @@ -247,7 +247,7 @@ func GetServerContents(arvLogger *logger.Logger, // GetServerStatus get keep server status by invoking /status.json func GetServerStatus(arvLogger *logger.Logger, keepServer ServerAddress, - arv arvadosclient.ArvadosClient) error { + arv *arvadosclient.ArvadosClient) error { url := fmt.Sprintf("http://%s:%d/status.json", keepServer.Host, keepServer.Port) @@ -298,7 +298,7 @@ func GetServerStatus(arvLogger *logger.Logger, // CreateIndexRequest to the keep server func CreateIndexRequest(arvLogger *logger.Logger, keepServer ServerAddress, - arv arvadosclient.ArvadosClient) (req *http.Request, err error) { + arv *arvadosclient.ArvadosClient) (req *http.Request, err error) { url := fmt.Sprintf("http://%s:%d/index", keepServer.Host, keepServer.Port) log.Println("About to fetch keep server contents from " + url) diff --git a/services/datamanager/keep/keep_test.go b/services/datamanager/keep/keep_test.go index 6698849848..ca8797ea6e 100644 --- a/services/datamanager/keep/keep_test.go +++ b/services/datamanager/keep/keep_test.go @@ -45,8 +45,8 @@ func (s *KeepSuite) TestSendTrashLists(c *C) { tl := map[string]TrashList{ server.URL: {TrashRequest{"000000000000000000000000deadbeef", 99}}} - arv := arvadosclient.ArvadosClient{ApiToken: "abc123"} - kc := keepclient.KeepClient{Arvados: &arv, Client: &http.Client{}} + arv := &arvadosclient.ArvadosClient{ApiToken: "abc123"} + kc := keepclient.KeepClient{Arvados: arv, Client: &http.Client{}} kc.SetServiceRoots(map[string]string{"xxxx": server.URL}, map[string]string{"xxxx": server.URL}, map[string]string{}) @@ -72,8 +72,8 @@ func sendTrashListError(c *C, server *httptest.Server) { tl := map[string]TrashList{ server.URL: {TrashRequest{"000000000000000000000000deadbeef", 99}}} - arv := arvadosclient.ArvadosClient{ApiToken: "abc123"} - kc := keepclient.KeepClient{Arvados: &arv, Client: &http.Client{}} + arv := &arvadosclient.ArvadosClient{ApiToken: "abc123"} + kc := keepclient.KeepClient{Arvados: arv, Client: &http.Client{}} kc.SetServiceRoots(map[string]string{"xxxx": server.URL}, map[string]string{"xxxx": server.URL}, map[string]string{}) @@ -132,14 +132,14 @@ func testGetKeepServersFromAPI(c *C, testData APITestData, expectedError string) api := httptest.NewServer(&apiStub) defer api.Close() - arv := arvadosclient.ArvadosClient{ + arv := &arvadosclient.ArvadosClient{ Scheme: "http", ApiServer: api.URL[7:], ApiToken: "abc123", Client: &http.Client{Transport: &http.Transport{}}, } - kc := keepclient.KeepClient{Arvados: &arv, Client: &http.Client{}} + kc := keepclient.KeepClient{Arvados: arv, Client: &http.Client{}} kc.SetServiceRoots(map[string]string{"xxxx": "http://example.com:23456"}, map[string]string{"xxxx": "http://example.com:23456"}, map[string]string{}) @@ -233,14 +233,14 @@ func testGetKeepServersAndSummarize(c *C, testData KeepServerTestData) { api := httptest.NewServer(&apiStub) defer api.Close() - arv := arvadosclient.ArvadosClient{ + arv := &arvadosclient.ArvadosClient{ Scheme: "http", ApiServer: api.URL[7:], ApiToken: "abc123", Client: &http.Client{Transport: &http.Transport{}}, } - kc := keepclient.KeepClient{Arvados: &arv, Client: &http.Client{}} + kc := keepclient.KeepClient{Arvados: arv, Client: &http.Client{}} kc.SetServiceRoots(map[string]string{"xxxx": ks.URL}, map[string]string{"xxxx": ks.URL}, map[string]string{}) diff --git a/services/keep-balance/integration_test.go b/services/keep-balance/integration_test.go index 0793889259..148b783788 100644 --- a/services/keep-balance/integration_test.go +++ b/services/keep-balance/integration_test.go @@ -36,7 +36,7 @@ func (s *integrationSuite) SetUpSuite(c *check.C) { arv.ApiToken = arvadostest.DataManagerToken c.Assert(err, check.IsNil) s.keepClient = &keepclient.KeepClient{ - Arvados: &arv, + Arvados: arv, Client: &http.Client{}, } c.Assert(s.keepClient.DiscoverKeepServers(), check.IsNil) diff --git a/services/keep-web/server_test.go b/services/keep-web/server_test.go index bddd6db2ce..6441364e99 100644 --- a/services/keep-web/server_test.go +++ b/services/keep-web/server_test.go @@ -106,7 +106,7 @@ func (s *IntegrationSuite) test100BlockFile(c *check.C, blocksize int) { arv, err := arvadosclient.MakeArvadosClient() c.Assert(err, check.Equals, nil) arv.ApiToken = arvadostest.ActiveToken - kc, err := keepclient.MakeKeepClient(&arv) + kc, err := keepclient.MakeKeepClient(arv) c.Assert(err, check.Equals, nil) loc, _, err := kc.PutB(testdata[:]) c.Assert(err, check.Equals, nil) @@ -297,7 +297,7 @@ func (s *IntegrationSuite) SetUpSuite(c *check.C) { arv, err := arvadosclient.MakeArvadosClient() c.Assert(err, check.Equals, nil) arv.ApiToken = arvadostest.ActiveToken - kc, err := keepclient.MakeKeepClient(&arv) + kc, err := keepclient.MakeKeepClient(arv) c.Assert(err, check.Equals, nil) kc.PutB([]byte("Hello world\n")) kc.PutB([]byte("foo")) diff --git a/services/keepproxy/keepproxy_test.go b/services/keepproxy/keepproxy_test.go index e6c129806f..6a349dae21 100644 --- a/services/keepproxy/keepproxy_test.go +++ b/services/keepproxy/keepproxy_test.go @@ -101,7 +101,7 @@ func runProxy(c *C, args []string, bogusClientToken bool) *keepclient.KeepClient if bogusClientToken { arv.ApiToken = "bogus-token" } - kc := keepclient.New(&arv) + kc := keepclient.New(arv) sr := map[string]string{ TestProxyUUID: "http://" + listener.Addr().String(), } @@ -504,7 +504,7 @@ func (s *ServerRequiredSuite) TestAskGetKeepProxyConnectionError(c *C) { c.Assert(err, Equals, nil) // keepclient with no such keep server - kc := keepclient.New(&arv) + kc := keepclient.New(arv) locals := map[string]string{ TestProxyUUID: "http://localhost:12345", } diff --git a/services/keepstore/pull_worker_integration_test.go b/services/keepstore/pull_worker_integration_test.go index e0613a2cd1..77b4c75f4a 100644 --- a/services/keepstore/pull_worker_integration_test.go +++ b/services/keepstore/pull_worker_integration_test.go @@ -37,7 +37,7 @@ func SetupPullWorkerIntegrationTest(t *testing.T, testData PullWorkIntegrationTe // keep client keepClient = &keepclient.KeepClient{ - Arvados: &arv, + Arvados: arv, Want_replicas: 1, Client: &http.Client{}, } diff --git a/services/keepstore/pull_worker_test.go b/services/keepstore/pull_worker_test.go index 5076b85e20..4d85d5fd20 100644 --- a/services/keepstore/pull_worker_test.go +++ b/services/keepstore/pull_worker_test.go @@ -39,7 +39,7 @@ func (s *PullWorkerTestSuite) SetUpTest(c *C) { func RunTestPullWorker(c *C) { arv, err := arvadosclient.MakeArvadosClient() c.Assert(err, Equals, nil) - keepClient, err := keepclient.MakeKeepClient(&arv) + keepClient, err := keepclient.MakeKeepClient(arv) c.Assert(err, Equals, nil) pullq = NewWorkQueue() -- 2.30.2