Skip to content

Commit 31885ed

Browse files
committed
fixed e2e: wait pod deleted
1 parent 58aaa21 commit 31885ed

File tree

5 files changed

+42
-4
lines changed

5 files changed

+42
-4
lines changed

test/e2e/drc/drc_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var _ = Describe("DistributedRedisCluster CRUD", func() {
3737
})
3838
It("should recover from accidentally deleting master pods", func() {
3939
e2e.DeleteMasterPodForDRC(drc, f.Client)
40+
Eventually(e2e.IsDRCPodBeDeleted(f, drc), "5m", "10s").ShouldNot(HaveOccurred())
4041
Eventually(e2e.IsDistributedRedisClusterProperly(f, drc), "10m", "10s").ShouldNot(HaveOccurred())
4142
Expect(e2e.IsDBSizeConsistent(dbsize, goredis)).NotTo(HaveOccurred())
4243
})

test/e2e/drcb/drcb_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ var _ = Describe("Restore DistributedRedisCluster From RedisClusterBackup", func
4848
rdrc = e2e.RestoreDRC(drc, drcb)
4949
Ω(f.CreateRedisCluster(rdrc)).Should(Succeed())
5050
Eventually(e2e.IsDistributedRedisClusterProperly(f, rdrc), "10m", "10s").ShouldNot(HaveOccurred())
51+
goredis = e2e.NewGoRedisClient(rdrc.Name, f.Namespace(), goredis.Password())
5152
Expect(e2e.IsDBSizeConsistent(dbsize, goredis)).NotTo(HaveOccurred())
5253
})
5354
Context("when restore is succeeded", func() {
@@ -59,6 +60,7 @@ var _ = Describe("Restore DistributedRedisCluster From RedisClusterBackup", func
5960
})
6061
It("should recover from accidentally deleting master pods", func() {
6162
e2e.DeleteMasterPodForDRC(rdrc, f.Client)
63+
Eventually(e2e.IsDRCPodBeDeleted(f, rdrc), "5m", "10s").ShouldNot(HaveOccurred())
6264
Eventually(e2e.IsDistributedRedisClusterProperly(f, rdrc), "10m", "10s").ShouldNot(HaveOccurred())
6365
Expect(e2e.IsDBSizeConsistent(dbsize, goredis)).NotTo(HaveOccurred())
6466
})

test/e2e/goredis_util.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,31 @@ import (
44
"github.com/go-redis/redis"
55
uuid "github.com/satori/go.uuid"
66
"golang.org/x/sync/errgroup"
7+
"time"
78
)
89

10+
const defaultTimeOut = time.Second * 2
11+
912
// GoRedis contains ClusterClient.
1013
type GoRedis struct {
11-
client *redis.ClusterClient
14+
client *redis.ClusterClient
15+
password string
1216
}
1317

1418
// NewGoRedis return a new ClusterClient.
1519
func NewGoRedis(addr, password string) *GoRedis {
1620
return &GoRedis{
1721
client: redis.NewClusterClient(&redis.ClusterOptions{
18-
Addrs: []string{addr},
19-
Password: password,
22+
Addrs: []string{addr},
23+
Password: password,
24+
MaxRetries: 5,
25+
26+
PoolSize: 3,
27+
MinIdleConns: 1,
28+
PoolTimeout: defaultTimeOut,
29+
IdleTimeout: defaultTimeOut,
2030
}),
31+
password: password,
2132
}
2233
}
2334

@@ -45,3 +56,8 @@ func (g *GoRedis) StuffingData(round, n int) error {
4556
func (g *GoRedis) DBSize() (int64, error) {
4657
return g.client.DBSize().Result()
4758
}
59+
60+
// Password return redis password.
61+
func (g *GoRedis) Password() string {
62+
return g.password
63+
}

test/e2e/operator_util.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ func IsDistributedRedisClusterProperly(f *Framework, drc *redisv1alpha1.Distribu
122122
return err
123123
}
124124
if result.Status.Status != redisv1alpha1.ClusterStatusOK {
125+
if result.Status.Status == redisv1alpha1.ClusterStatusKO {
126+
f.Logf("DistributedRedisCluster %s is %s, reason: %s", drc.Name, result.Status.Status, result.Status.Reason)
127+
}
125128
return LogAndReturnErrorf("DistributedRedisCluster %s status not healthy, current: %s", drc.Name, result.Status.Status)
126129
}
127130
stsList, err := f.GetDRCStatefulSetByLabels(getLabels(drc))
@@ -177,6 +180,7 @@ func IsDistributedRedisClusterProperly(f *Framework, drc *redisv1alpha1.Distribu
177180
}
178181
}
179182

183+
drc.Spec = result.Spec
180184
return nil
181185
}
182186
}
@@ -299,6 +303,21 @@ func DeleteMasterPodForDRC(drc *redisv1alpha1.DistributedRedisCluster, client cl
299303
}
300304
}
301305

306+
func IsDRCPodBeDeleted(f *Framework, drc *redisv1alpha1.DistributedRedisCluster) func() error {
307+
return func() error {
308+
stsList, err := f.GetDRCStatefulSetByLabels(getLabels(drc))
309+
if err != nil {
310+
return LogAndReturnErrorf("GetDRCStatefulSetByLabels err: %s", err)
311+
}
312+
for _, sts := range stsList.Items {
313+
if sts.Status.ReadyReplicas != (drc.Spec.ClusterReplicas + 1) {
314+
return nil
315+
}
316+
}
317+
return LogAndReturnErrorf("StatefulSet's Pod still running")
318+
}
319+
}
320+
302321
func NewRedisClusterBackup(name, namespace, image, drcName, storageSecretName, s3Endpoint, s3Bucket string) *redisv1alpha1.RedisClusterBackup {
303322
return &redisv1alpha1.RedisClusterBackup{
304323
ObjectMeta: metav1.ObjectMeta{

test/e2e/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func Logf(format string, args ...interface{}) {
2424
// Failf reports a failure in the current e2e
2525
func Failf(format string, args ...interface{}) {
2626
msg := fmt.Sprintf(format, args...)
27-
log("INFO", msg)
27+
log("ERROR", msg)
2828
ginkgo.Fail(nowStamp()+": "+msg, 1)
2929
}
3030

0 commit comments

Comments
 (0)