@@ -17,14 +17,12 @@ package e2e
17
17
import (
18
18
"context"
19
19
"fmt"
20
- "math/rand"
21
20
"testing"
22
21
"time"
23
22
24
23
"github.com/coreos/go-semver/semver"
25
24
"github.com/stretchr/testify/assert"
26
25
"github.com/stretchr/testify/require"
27
- "go.uber.org/zap"
28
26
29
27
"go.etcd.io/etcd/api/v3/version"
30
28
"go.etcd.io/etcd/client/pkg/v3/fileutil"
@@ -65,19 +63,19 @@ func TestDowngradeUpgradeClusterOf3WithSnapshot(t *testing.T) {
65
63
}
66
64
67
65
func TestDowngradeCancellationWithoutEnablingClusterOf1 (t * testing.T ) {
68
- testDowngradeUpgrade (t , 1 , 1 , false , cancelRightBeforeEnable )
66
+ testDowngradeUpgrade (t , 0 , 1 , false , cancelRightBeforeEnable )
69
67
}
70
68
71
69
func TestDowngradeCancellationRightAfterEnablingClusterOf1 (t * testing.T ) {
72
- testDowngradeUpgrade (t , 1 , 1 , false , cancelRightAfterEnable )
70
+ testDowngradeUpgrade (t , 0 , 1 , false , cancelRightAfterEnable )
73
71
}
74
72
75
73
func TestDowngradeCancellationWithoutEnablingClusterOf3 (t * testing.T ) {
76
- testDowngradeUpgrade (t , 3 , 3 , false , cancelRightBeforeEnable )
74
+ testDowngradeUpgrade (t , 0 , 3 , false , cancelRightBeforeEnable )
77
75
}
78
76
79
77
func TestDowngradeCancellationRightAfterEnablingClusterOf3 (t * testing.T ) {
80
- testDowngradeUpgrade (t , 3 , 3 , false , cancelRightAfterEnable )
78
+ testDowngradeUpgrade (t , 0 , 3 , false , cancelRightAfterEnable )
81
79
}
82
80
83
81
func TestDowngradeCancellationAfterDowngrading1InClusterOf3 (t * testing.T ) {
@@ -88,7 +86,7 @@ func TestDowngradeCancellationAfterDowngrading2InClusterOf3(t *testing.T) {
88
86
testDowngradeUpgrade (t , 2 , 3 , false , cancelAfterDowngrading )
89
87
}
90
88
91
- func testDowngradeUpgrade (t * testing.T , cancellationSize int , clusterSize int , triggerSnapshot bool , triggerCancellation CancellationState ) {
89
+ func testDowngradeUpgrade (t * testing.T , numberOfMembersToDowngrade int , clusterSize int , triggerSnapshot bool , triggerCancellation CancellationState ) {
92
90
currentEtcdBinary := e2e .BinPath .Etcd
93
91
lastReleaseBinary := e2e .BinPath .EtcdLastRelease
94
92
if ! fileutil .Exist (lastReleaseBinary ) {
@@ -159,13 +157,10 @@ func testDowngradeUpgrade(t *testing.T, cancellationSize int, clusterSize int, t
159
157
return // No need to perform downgrading, end the test here
160
158
}
161
159
162
- membersToChange := rand .Perm (len (epc .Procs ))[:cancellationSize ]
163
- t .Logf (fmt .Sprintln ("Elect members for operations" ), zap .Any ("members" , membersToChange ))
164
-
165
160
t .Logf ("Starting downgrade process to %q" , lastVersionStr )
166
- err = e2e .DowngradeUpgradeMembersByID (t , nil , epc , membersToChange , currentVersion , lastClusterVersion )
161
+ membersChanged , err : = e2e .DowngradeUpgradeMembers (t , nil , epc , numberOfMembersToDowngrade , currentVersion , lastClusterVersion )
167
162
require .NoError (t , err )
168
- if len (membersToChange ) == len (epc .Procs ) {
163
+ if len (membersChanged ) == len (epc .Procs ) {
169
164
e2e .AssertProcessLogs (t , leader (t , epc ), "the cluster has been downgraded" )
170
165
}
171
166
@@ -182,7 +177,7 @@ func testDowngradeUpgrade(t *testing.T, cancellationSize int, clusterSize int, t
182
177
if triggerCancellation == cancelAfterDowngrading {
183
178
e2e .DowngradeCancel (t , epc )
184
179
t .Log ("Downgrade cancelled, validating if cluster is in the right state" )
185
- e2e .ValidateMemberVersions (t , epc , generatePartialCancellationVersions (clusterSize , membersToChange , lastClusterVersion ))
180
+ e2e .ValidateMemberVersions (t , epc , generatePartialCancellationVersions (clusterSize , membersChanged , lastClusterVersion ))
186
181
}
187
182
188
183
t .Log ("Adding learner to test membership, but avoid breaking quorum" )
@@ -199,7 +194,7 @@ func testDowngradeUpgrade(t *testing.T, cancellationSize int, clusterSize int, t
199
194
beforeMembers , beforeKV = getMembersAndKeys (t , cc )
200
195
201
196
t .Logf ("Starting upgrade process to %q" , currentVersionStr )
202
- err = e2e .DowngradeUpgradeMembersByID (t , nil , epc , membersToChange , lastClusterVersion , currentVersion )
197
+ membersChanged , err = e2e .DowngradeUpgradeMembers (t , nil , epc , numberOfMembersToDowngrade , lastClusterVersion , currentVersion )
203
198
require .NoError (t , err )
204
199
t .Log ("Upgrade complete" )
205
200
0 commit comments