From: Lucas Di Pentima Date: Thu, 26 Aug 2021 21:02:01 +0000 (-0300) Subject: 17696: Moves default storage classes loading to keepclient.New(). X-Git-Tag: 2.3.0~89^2~1 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/a3aecbc1e190293cc8be5ddb6a219c309f2d5de7 17696: Moves default storage classes loading to keepclient.New(). Also adds integration test that proves that a collection and its keepclient use the same default storage classes list. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/lib/controller/integration_test.go b/lib/controller/integration_test.go index 6851442054..70c2e9e437 100644 --- a/lib/controller/integration_test.go +++ b/lib/controller/integration_test.go @@ -150,6 +150,16 @@ func (s *IntegrationSuite) TearDownSuite(c *check.C) { } } +func (s *IntegrationSuite) TestDefaultStorageClassesOnCollections(c *check.C) { + conn := s.testClusters["z1111"].Conn() + rootctx, _, _ := s.testClusters["z1111"].RootClients() + userctx, _, kc, _ := s.testClusters["z1111"].UserClients(rootctx, c, conn, s.oidcprovider.AuthEmail, true) + c.Assert(len(kc.DefaultStorageClasses) > 0, check.Equals, true) + coll, err := conn.CollectionCreate(userctx, arvados.CreateOptions{}) + c.Assert(err, check.IsNil) + c.Assert(coll.StorageClassesDesired, check.DeepEquals, kc.DefaultStorageClasses) +} + func (s *IntegrationSuite) TestGetCollectionByPDH(c *check.C) { conn1 := s.testClusters["z1111"].Conn() rootctx1, _, _ := s.testClusters["z1111"].RootClients() @@ -676,6 +686,7 @@ func (s *IntegrationSuite) TestListUsers(c *check.C) { for _, user := range lst.Items { if user.Username == "" { nullUsername = true + break } } c.Assert(nullUsername, check.Equals, true) diff --git a/sdk/go/keepclient/keepclient.go b/sdk/go/keepclient/keepclient.go index 4baebbd8a1..68ac886ddd 100644 --- a/sdk/go/keepclient/keepclient.go +++ b/sdk/go/keepclient/keepclient.go @@ -141,10 +141,6 @@ func (kc *KeepClient) loadDefaultClasses() error { // use. func MakeKeepClient(arv *arvadosclient.ArvadosClient) (*KeepClient, error) { kc := New(arv) - err := kc.loadDefaultClasses() - if err != nil { - DebugPrintf("DEBUG: Unable to load the default storage classes cluster config") - } return kc, kc.discoverServices() } @@ -159,11 +155,16 @@ func New(arv *arvadosclient.ArvadosClient) *KeepClient { defaultReplicationLevel = int(v) } } - return &KeepClient{ + kc := &KeepClient{ Arvados: arv, Want_replicas: defaultReplicationLevel, Retries: 2, } + err = kc.loadDefaultClasses() + if err != nil { + DebugPrintf("DEBUG: Unable to load the default storage classes cluster config") + } + return kc } // PutHR puts a block given the block hash, a reader, and the number of bytes diff --git a/sdk/go/keepclient/keepclient_test.go b/sdk/go/keepclient/keepclient_test.go index ed2cee6451..9000b2f501 100644 --- a/sdk/go/keepclient/keepclient_test.go +++ b/sdk/go/keepclient/keepclient_test.go @@ -84,8 +84,7 @@ func (s *ServerRequiredSuite) TestDefaultStorageClasses(c *C) { c.Assert(cc, NotNil) c.Assert(cc.(map[string]interface{})["default"], NotNil) - kc, err := MakeKeepClient(arv) - c.Assert(err, IsNil) + kc := New(arv) c.Assert(kc.DefaultStorageClasses, DeepEquals, []string{"default"}) }