17696: Moves default storage classes loading to keepclient.New().
authorLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 26 Aug 2021 21:02:01 +0000 (18:02 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Mon, 30 Aug 2021 18:37:24 +0000 (15:37 -0300)
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 <lucas.dipentima@curii.com>

lib/controller/integration_test.go
sdk/go/keepclient/keepclient.go
sdk/go/keepclient/keepclient_test.go

index 6851442054e1f49e8cde8c87dcced6d9eea0918a..70c2e9e437248f8fadd504a84b5e5213a170342d 100644 (file)
@@ -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)
index 4baebbd8a1913ae41f7a153fd4e87bb99ecce8d2..68ac886ddd8ede2809a56a577baedfd67604e7d1 100644 (file)
@@ -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
index ed2cee6451dac81a29ae38dbb175d98df195e0d1..9000b2f501256b69ca20b6bcd25b07dfcc99a7ef 100644 (file)
@@ -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"})
 }