blob: f310b74c2213f16b9ee39ed7b7da4e0ac4ff7012 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
proc num_unique_secrets {num_nodes} {
set secrets [list]
for {set i 0} {$i < $num_nodes} {incr i} {
lappend secrets [R $i debug internal_secret]
}
set num_secrets [llength [lsort -unique $secrets]]
return $num_secrets
}
proc wait_for_secret_sync {maxtries delay num_nodes} {
wait_for_condition $maxtries $delay {
[num_unique_secrets $num_nodes] eq 1
} else {
fail "Failed waiting for secrets to sync"
}
}
start_cluster 3 3 {tags {external:skip cluster}} {
test "Test internal secret sync" {
wait_for_secret_sync 50 100 6
}
set first_shard_host [srv 0 host]
set first_shard_port [srv 0 port]
if {$::verbose} {
puts {cluster internal secret:}
puts [R 1 debug internal_secret]
}
test "Join a node to the cluster and make sure it gets the same secret" {
start_server {tags {"external:skip"} overrides {cluster-enabled {yes}}} {
r cluster meet $first_shard_host $first_shard_port
wait_for_condition 50 100 {
[r debug internal_secret] eq [R 1 debug internal_secret]
} else {
puts [r debug internal_secret]
puts [R 1 debug internal_secret]
fail "Secrets not match"
}
}
}
test "Join another cluster, make sure clusters sync on the internal secret" {
start_server {tags {"external:skip"} overrides {cluster-enabled {yes}}} {
set new_shard_host [srv 0 host]
set new_shard_port [srv 0 port]
start_server {tags {"external:skip"} overrides {cluster-enabled {yes}}} {
r cluster meet $new_shard_host $new_shard_port
wait_for_condition 50 100 {
[r debug internal_secret] eq [r -1 debug internal_secret]
} else {
puts [r debug internal_secret]
puts [r -1 debug internal_secret]
fail "Secrets not match"
}
if {$::verbose} {
puts {new cluster internal secret:}
puts [r -1 debug internal_secret]
}
r cluster meet $first_shard_host $first_shard_port
wait_for_secret_sync 50 100 8
if {$::verbose} {
puts {internal secret after join to bigger cluster:}
puts [r -1 debug internal_secret]
}
}
}
}
}
|