Skip to content

Commit f74ce7d

Browse files
committed
chore: swap to acl auth at the test-level
1 parent f66582f commit f74ce7d

File tree

2 files changed

+35
-67
lines changed

2 files changed

+35
-67
lines changed

main_test.go

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -40,27 +40,15 @@ const (
4040
sentinelPort3 = "9128"
4141
)
4242

43-
const (
44-
aclSentinelUsername = "sentinel-user"
45-
aclSentinelPassword = "sentinel-pass"
46-
aclSentinelName = "my_server"
47-
aclServerPort = "10001"
48-
aclSentinelPort1 = "10002"
49-
aclSentinelPort2 = "10003"
50-
aclSentinelPort3 = "10004"
51-
)
52-
5343
var (
5444
sentinelAddrs = []string{":" + sentinelPort1, ":" + sentinelPort2, ":" + sentinelPort3}
55-
aclSentinelAddrs = []string {":" + aclSentinelPort1, ":" + aclSentinelPort2, ":" + aclSentinelPort3}
5645

5746
processes map[string]*redisProcess
5847

59-
redisMain, aclServer *redisProcess
48+
redisMain *redisProcess
6049
ringShard1, ringShard2, ringShard3 *redisProcess
6150
sentinelMaster, sentinelSlave1, sentinelSlave2 *redisProcess
6251
sentinel1, sentinel2, sentinel3 *redisProcess
63-
aclSentinel1, aclSentinel2, aclSentinel3 *redisProcess
6452
)
6553

6654
var cluster = &clusterScenario{
@@ -113,18 +101,6 @@ var _ = BeforeSuite(func() {
113101
Expect(err).NotTo(HaveOccurred())
114102

115103
Expect(startCluster(ctx, cluster)).NotTo(HaveOccurred())
116-
117-
aclServer, err = startRedis(aclServerPort)
118-
Expect(err).NotTo(HaveOccurred())
119-
120-
aclSentinel1, err = startSentinelWithAcl(aclSentinelPort1, aclSentinelName, aclServerPort)
121-
Expect(err).NotTo(HaveOccurred())
122-
123-
aclSentinel2, err = startSentinelWithAcl(aclSentinelPort2, aclSentinelName, aclServerPort)
124-
Expect(err).NotTo(HaveOccurred())
125-
126-
aclSentinel3, err = startSentinelWithAcl(aclSentinelPort3, aclSentinelName, aclServerPort)
127-
Expect(err).NotTo(HaveOccurred())
128104
})
129105

130106
var _ = AfterSuite(func() {
@@ -388,28 +364,6 @@ func startSentinel(port, masterName, masterPort string) (*redisProcess, error) {
388364
return p, nil
389365
}
390366

391-
func startSentinelWithAcl(port, masterName, masterPort string) (*redisProcess, error) {
392-
process, err := startSentinel(port, masterName, masterPort)
393-
if err != nil {
394-
return nil, err
395-
}
396-
397-
for _, cmd := range []*redis.StatusCmd{
398-
redis.NewStatusCmd(ctx, "ACL", "SETUSER", aclSentinelUsername, "ON", ">" + aclSentinelPassword, "-@all",
399-
"+auth", "+client|getname", "+client|id", "+client|setname", "+command", "+hello", "+ping", "+role",
400-
"+sentinel|get-master-addr-by-name", "+sentinel|master", "+sentinel|myid", "+sentinel|replicas",
401-
"+sentinel|sentinels"),
402-
} {
403-
process.Client.Process(ctx, cmd)
404-
if err := cmd.Err(); err != nil {
405-
process.Kill()
406-
return nil, err
407-
}
408-
}
409-
410-
return process, nil
411-
}
412-
413367
//------------------------------------------------------------------------------
414368

415369
type badConnError string

sentinel_test.go

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,31 @@ var _ = Describe("NewFailoverClusterClient", func() {
214214
})
215215

216216
var _ = Describe("SentinelAclAuth", func() {
217+
const (
218+
aclSentinelUsername = "sentinel-user"
219+
aclSentinelPassword = "sentinel-pass"
220+
)
221+
217222
var client *redis.Client
218-
var server *redis.Client
219223
var sentinel *redis.SentinelClient
224+
var sentinels = func() []*redisProcess {
225+
return []*redisProcess{ sentinel1, sentinel2, sentinel3 }
226+
}
220227

221228
BeforeEach(func() {
229+
authCmd := redis.NewStatusCmd(ctx, "ACL", "SETUSER", aclSentinelUsername, "ON",
230+
">" + aclSentinelPassword, "-@all", "+auth", "+client|getname", "+client|id", "+client|setname",
231+
"+command", "+hello", "+ping", "+role", "+sentinel|get-master-addr-by-name", "+sentinel|master",
232+
"+sentinel|myid", "+sentinel|replicas", "+sentinel|sentinels")
233+
234+
for _, process := range sentinels() {
235+
err := process.Client.Process(ctx, authCmd)
236+
Expect(err).NotTo(HaveOccurred())
237+
}
238+
222239
client = redis.NewFailoverClient(&redis.FailoverOptions{
223-
MasterName: aclSentinelName,
224-
SentinelAddrs: aclSentinelAddrs,
240+
MasterName: sentinelName,
241+
SentinelAddrs: sentinelAddrs,
225242
MaxRetries: -1,
226243
SentinelUsername: aclSentinelUsername,
227244
SentinelPassword: aclSentinelPassword,
@@ -230,35 +247,32 @@ var _ = Describe("SentinelAclAuth", func() {
230247
Expect(client.FlushDB(ctx).Err()).NotTo(HaveOccurred())
231248

232249
sentinel = redis.NewSentinelClient(&redis.Options{
233-
Addr: aclSentinelAddrs[0],
250+
Addr: sentinelAddrs[0],
234251
MaxRetries: -1,
235252
Username: aclSentinelUsername,
236253
Password: aclSentinelPassword,
237254
})
238255

239-
addr, err := sentinel.GetMasterAddrByName(ctx, aclSentinelName).Result()
256+
_, err := sentinel.GetMasterAddrByName(ctx, sentinelName).Result()
240257
Expect(err).NotTo(HaveOccurred())
241258

242-
server = redis.NewClient(&redis.Options{
243-
Addr: net.JoinHostPort(addr[0], addr[1]),
244-
MaxRetries: -1,
245-
})
246-
247259
// Wait until sentinels are picked up by each other.
248-
Eventually(func() string {
249-
return aclSentinel1.Info(ctx).Val()
250-
}, "15s", "100ms").Should(ContainSubstring("sentinels=3"))
251-
Eventually(func() string {
252-
return aclSentinel2.Info(ctx).Val()
253-
}, "15s", "100ms").Should(ContainSubstring("sentinels=3"))
254-
Eventually(func() string {
255-
return aclSentinel3.Info(ctx).Val()
256-
}, "15s", "100ms").Should(ContainSubstring("sentinels=3"))
260+
for _, process := range sentinels() {
261+
Eventually(func() string {
262+
return process.Info(ctx).Val()
263+
}, "15s", "100ms").Should(ContainSubstring("sentinels=3"))
264+
}
257265
})
258266

259267
AfterEach(func() {
268+
unauthCommand := redis.NewStatusCmd(ctx, "ACL", "DELUSER", aclSentinelUsername)
269+
270+
for _, process := range sentinels() {
271+
err := process.Client.Process(ctx, unauthCommand)
272+
Expect(err).NotTo(HaveOccurred())
273+
}
274+
260275
_ = client.Close()
261-
_ = server.Close()
262276
_ = sentinel.Close()
263277
})
264278

0 commit comments

Comments
 (0)