From 126a71e51ea62110744dba17d5a1ee6c66aab24a Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Mon, 21 Sep 2020 16:56:15 +0200 Subject: [PATCH] e2e: pass SC parameters to createCephfsStorageClass() Signed-off-by: Niels de Vos (cherry picked from commit 85df59531bde767645d05b67c8939b67178c80f4) --- e2e/cephfs.go | 14 +++++++++----- e2e/cephfs_helper.go | 31 ++++++++++++++++++++----------- e2e/upgrade-cephfs.go | 2 +- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/e2e/cephfs.go b/e2e/cephfs.go index 25fed3b26..d06dbf607 100644 --- a/e2e/cephfs.go +++ b/e2e/cephfs.go @@ -220,7 +220,7 @@ var _ = Describe("cephfs", func() { }) By("create a storageclass with pool and a PVC then bind it to an app", func() { - err := createCephfsStorageClass(f.ClientSet, f, true, "") + err := createCephfsStorageClass(f.ClientSet, f, true, nil) if err != nil { e2elog.Failf("failed to create CephFS storageclass with error %v", err) } @@ -235,7 +235,7 @@ var _ = Describe("cephfs", func() { }) By("create a PVC and bind it to an app", func() { - err := createCephfsStorageClass(f.ClientSet, f, false, "") + err := createCephfsStorageClass(f.ClientSet, f, false, nil) if err != nil { e2elog.Failf("failed to create CephFS storageclass with error %v", err) } @@ -332,7 +332,10 @@ var _ = Describe("cephfs", func() { if err != nil { e2elog.Failf("failed to create configmap with error %v", err) } - err = createCephfsStorageClass(f.ClientSet, f, false, "clusterID-1") + params := map[string]string{ + "clusterID": "clusterID-1", + } + err = createCephfsStorageClass(f.ClientSet, f, false, params) if err != nil { e2elog.Failf("failed to create storageclass with error %v", err) } @@ -352,7 +355,8 @@ var _ = Describe("cephfs", func() { // create resources and verify subvolume group creation // for the second cluster. - err = createCephfsStorageClass(f.ClientSet, f, false, "clusterID-2") + params["clusterID"] = "clusterID-2" + err = createCephfsStorageClass(f.ClientSet, f, false, params) if err != nil { e2elog.Failf("failed to create storageclass with error %v", err) } @@ -376,7 +380,7 @@ var _ = Describe("cephfs", func() { if err != nil { e2elog.Failf("failed to create configmap with error %v", err) } - err = createCephfsStorageClass(f.ClientSet, f, false, "") + err = createCephfsStorageClass(f.ClientSet, f, false, nil) if err != nil { e2elog.Failf("failed to create storageclass with error %v", err) } diff --git a/e2e/cephfs_helper.go b/e2e/cephfs_helper.go index 4b261a0ea..320151d30 100644 --- a/e2e/cephfs_helper.go +++ b/e2e/cephfs_helper.go @@ -34,7 +34,7 @@ func validateSubvolumegroup(f *framework.Framework, subvolgrp string) error { return nil } -func createCephfsStorageClass(c kubernetes.Interface, f *framework.Framework, enablePool bool, clusterID string) error { +func createCephfsStorageClass(c kubernetes.Interface, f *framework.Framework, enablePool bool, params map[string]string) error { scPath := fmt.Sprintf("%s/%s", cephfsExamplePath, "storageclass.yaml") sc, err := getStorageClass(scPath) if err != nil { @@ -53,20 +53,29 @@ func createCephfsStorageClass(c kubernetes.Interface, f *framework.Framework, en if enablePool { sc.Parameters["pool"] = "myfs-data0" } - fsID, stdErr, err := execCommandInToolBoxPod(f, "ceph fsid", rookNamespace) - if err != nil { - return err + + // overload any parameters that were passed + if params == nil { + // create an empty params, so that params["clusterID"] below + // does not panic + params = map[string]string{} } - if stdErr != "" { - return fmt.Errorf("error getting fsid %v", stdErr) + for param, value := range params { + sc.Parameters[param] = value } - // remove new line present in fsID - fsID = strings.Trim(fsID, "\n") - if clusterID != "" { - fsID = clusterID + + // fetch and set fsID from the cluster if not set in params + if _, found := params["clusterID"]; !found { + fsID, stdErr, failErr := execCommandInToolBoxPod(f, "ceph fsid", rookNamespace) + if failErr != nil { + return failErr + } + if stdErr != "" { + return fmt.Errorf("error getting fsid %v", stdErr) + } + sc.Parameters["clusterID"] = strings.Trim(fsID, "\n") } sc.Namespace = cephCSINamespace - sc.Parameters["clusterID"] = fsID _, err = c.StorageV1().StorageClasses().Create(context.TODO(), &sc, metav1.CreateOptions{}) return err } diff --git a/e2e/upgrade-cephfs.go b/e2e/upgrade-cephfs.go index 1a661e1b0..c0476d323 100644 --- a/e2e/upgrade-cephfs.go +++ b/e2e/upgrade-cephfs.go @@ -55,7 +55,7 @@ var _ = Describe("CephFS Upgrade Testing", func() { if err != nil { e2elog.Failf("failed to create secret with error %v", err) } - err = createCephfsStorageClass(f.ClientSet, f, true, "") + err = createCephfsStorageClass(f.ClientSet, f, true, nil) if err != nil { e2elog.Failf("failed to create storageclass with error %v", err) }