From 379c973a19904f95c1b6ba2ab57689fee5b42df8 Mon Sep 17 00:00:00 2001 From: Colm Quinn Date: Fri, 10 Mar 2023 18:32:10 +0000 Subject: [PATCH 1/5] CLOUDP-166012: Adding e2e test for cluster update --- .../cloud_manager/deploy_replica_set_test.go | 22 ++++++++++++++ test/e2e/cloud_manager/helper_test.go | 30 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/test/e2e/cloud_manager/deploy_replica_set_test.go b/test/e2e/cloud_manager/deploy_replica_set_test.go index dfac29edf8..bb0273e59d 100644 --- a/test/e2e/cloud_manager/deploy_replica_set_test.go +++ b/test/e2e/cloud_manager/deploy_replica_set_test.go @@ -115,6 +115,28 @@ func TestDeployReplicaSet(t *testing.T) { } }) + t.Run("Update", func(t *testing.T) { + if err := generateRSConfigUpdate(testFile); err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cmd := exec.Command(cliPath, + entity, + clustersEntity, + "update", + clusterName, + "-f", + testFile, + ) + + cmd.Env = os.Environ() + resp, err := cmd.CombinedOutput() + + if err != nil { + t.Fatalf("unexpected error: %v, resp: %v\n", err, string(resp)) + } + }) + t.Run("Reclaim free space", func(t *testing.T) { cmd := exec.Command(cliPath, entity, diff --git a/test/e2e/cloud_manager/helper_test.go b/test/e2e/cloud_manager/helper_test.go index 89ed5bb1db..24b2031b93 100644 --- a/test/e2e/cloud_manager/helper_test.go +++ b/test/e2e/cloud_manager/helper_test.go @@ -176,6 +176,36 @@ func generateRSConfig(filename, hostname, clusterName, version, fcVersion string return jsonEncoder.Encode(cluster) } +func generateRSConfigUpdate(filename string) error { + jsonData, err := os.ReadFile(filename) + if err != nil { + return err + } + + var cluster convert.ClusterConfig + err = json.Unmarshal(jsonData, &cluster) + if err != nil { + return err + } + + cluster.Processes[0].DefaultRWConcern = &convert.DefaultRWConcern{ + DefaultReadConcern: &convert.DefaultReadConcern{ + Level: "minority", + }, + DefaultWriteConcern: &convert.DefaultWriteConcern{ + W: 1, + Wtimeout: 0, + }, + } + out, err := os.Create(filename) + if err != nil { + return err + } + jsonEncoder := json.NewEncoder(out) + jsonEncoder.SetIndent("", " ") + return jsonEncoder.Encode(cluster) +} + func generateShardedConfig(filename, hostname, clusterName, version, fcVersion string) error { configFile, err := os.Create(filename) if err != nil { From bda8d2b5631ead0290b0d06768614df88b36b714 Mon Sep 17 00:00:00 2001 From: Colm Quinn Date: Mon, 13 Mar 2023 14:08:51 +0000 Subject: [PATCH 2/5] update all elements in range --- test/e2e/cloud_manager/helper_test.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/test/e2e/cloud_manager/helper_test.go b/test/e2e/cloud_manager/helper_test.go index 24b2031b93..d8733a87d2 100644 --- a/test/e2e/cloud_manager/helper_test.go +++ b/test/e2e/cloud_manager/helper_test.go @@ -188,15 +188,18 @@ func generateRSConfigUpdate(filename string) error { return err } - cluster.Processes[0].DefaultRWConcern = &convert.DefaultRWConcern{ - DefaultReadConcern: &convert.DefaultReadConcern{ - Level: "minority", - }, - DefaultWriteConcern: &convert.DefaultWriteConcern{ - W: 1, - Wtimeout: 0, - }, + for i := 0; i < len(cluster.Processes); i++ { + cluster.Processes[i].DefaultRWConcern = &convert.DefaultRWConcern{ + DefaultReadConcern: &convert.DefaultReadConcern{ + Level: "minority", + }, + DefaultWriteConcern: &convert.DefaultWriteConcern{ + W: 1, + Wtimeout: 0, + }, + } } + out, err := os.Create(filename) if err != nil { return err From f067e0fcdcb5090d48023738304801b0a7c4df60 Mon Sep 17 00:00:00 2001 From: Colm Quinn Date: Wed, 15 Mar 2023 09:59:30 +0000 Subject: [PATCH 3/5] valid config with watch --- test/e2e/cloud_manager/deploy_replica_set_test.go | 2 ++ test/e2e/cloud_manager/helper_test.go | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/e2e/cloud_manager/deploy_replica_set_test.go b/test/e2e/cloud_manager/deploy_replica_set_test.go index bb0273e59d..05079aa18e 100644 --- a/test/e2e/cloud_manager/deploy_replica_set_test.go +++ b/test/e2e/cloud_manager/deploy_replica_set_test.go @@ -137,6 +137,8 @@ func TestDeployReplicaSet(t *testing.T) { } }) + t.Run("Watch", watchAutomation(cliPath)) + t.Run("Reclaim free space", func(t *testing.T) { cmd := exec.Command(cliPath, entity, diff --git a/test/e2e/cloud_manager/helper_test.go b/test/e2e/cloud_manager/helper_test.go index d8733a87d2..fe2960c551 100644 --- a/test/e2e/cloud_manager/helper_test.go +++ b/test/e2e/cloud_manager/helper_test.go @@ -177,6 +177,7 @@ func generateRSConfig(filename, hostname, clusterName, version, fcVersion string } func generateRSConfigUpdate(filename string) error { + defaultWriteConcernJ := true jsonData, err := os.ReadFile(filename) if err != nil { return err @@ -191,10 +192,11 @@ func generateRSConfigUpdate(filename string) error { for i := 0; i < len(cluster.Processes); i++ { cluster.Processes[i].DefaultRWConcern = &convert.DefaultRWConcern{ DefaultReadConcern: &convert.DefaultReadConcern{ - Level: "minority", + Level: "majority", }, DefaultWriteConcern: &convert.DefaultWriteConcern{ W: 1, + J: &defaultWriteConcernJ, Wtimeout: 0, }, } From 55f3d7e35ac8692421069dfa65f186b3470e5490 Mon Sep 17 00:00:00 2001 From: Colm Quinn Date: Wed, 15 Mar 2023 17:22:28 +0000 Subject: [PATCH 4/5] e2e readme update --- test/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/README.md b/test/README.md index 6564c82df8..b57576c7ca 100644 --- a/test/README.md +++ b/test/README.md @@ -57,7 +57,7 @@ | `cluster list` | Y | | | Y | | | | `cluster start` | N | | | Y | | | | `cluster pause` | N | | | Y | | | -| `cluster update` | Y | | | Y | | | +| `cluster update` | Y | Y | Y | Y | Y | Y | | `cluster watch` | Y | | | Y | | | | `cluster onlineArchive create` | Y | | | Y | N | N | | `cluster onlineArchive delete` | Y | | | Y | N | N | From 258955ad50ab3e7a5b5213b1b343b49ebabfa89a Mon Sep 17 00:00:00 2001 From: Colm Quinn <4273411+colm-quinn@users.noreply.github.com> Date: Wed, 15 Mar 2023 18:56:24 +0000 Subject: [PATCH 5/5] Update test/e2e/cloud_manager/helper_test.go Co-authored-by: Gustavo Bazan --- test/e2e/cloud_manager/helper_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/cloud_manager/helper_test.go b/test/e2e/cloud_manager/helper_test.go index fe2960c551..587f1e25b3 100644 --- a/test/e2e/cloud_manager/helper_test.go +++ b/test/e2e/cloud_manager/helper_test.go @@ -206,6 +206,7 @@ func generateRSConfigUpdate(filename string) error { if err != nil { return err } + defer out.Close() jsonEncoder := json.NewEncoder(out) jsonEncoder.SetIndent("", " ") return jsonEncoder.Encode(cluster)