@@ -3,7 +3,6 @@ package sources_test
3
3
import (
4
4
"context"
5
5
"errors"
6
- "fmt"
7
6
"strings"
8
7
"testing"
9
8
"time"
@@ -54,6 +53,7 @@ func TestMonitoredDatabase_ResolveDatabasesFromPostgres(t *testing.T) {
54
53
}
55
54
56
55
func TestMonitoredDatabase_ResolveDatabasesFromPatroni (t * testing.T ) {
56
+
57
57
etcdContainer , err := etcd .Run (ctx , "gcr.io/etcd-development/etcd:v3.5.14" ,
58
58
testcontainers .WithWaitStrategy (wait .ForLog ("ready to serve client requests" ).
59
59
WithStartupTimeout (15 * time .Second )))
@@ -82,18 +82,24 @@ func TestMonitoredDatabase_ResolveDatabasesFromPatroni(t *testing.T) {
82
82
)
83
83
require .NoError (t , err )
84
84
defer func () { assert .NoError (t , pgContainer .Terminate (ctx )) }()
85
-
86
- // Put values to etcd server
87
- cancelCtx , cancel := context .WithTimeout (context .Background (), time .Second )
88
- defer cancel ()
89
- connStr , err := pgContainer .ConnectionString (cancelCtx , "sslmode=disable" )
90
- require .NoError (t , err )
91
- _ , err = cli .Put (cancelCtx , "/service/batman/members/pg1" ,
92
- fmt .Sprintf (`{"role":"master","conn_url":"%s"}` , connStr ))
93
- require .NoError (t , err )
94
- _ , err = cli .Put (cancelCtx , "/service/batman/members/pg2" ,
95
- `{"role":"standby","conn_url":"must_be_skipped"}` )
85
+ pgConnStr , err := pgContainer .ConnectionString (ctx , "sslmode=disable" )
96
86
require .NoError (t , err )
87
+ // Put values to etcd server
88
+ kv := map [string ]string {
89
+ `/service/demo/config` : `{"ttl":30,"loop_wait":10,"retry_timeout":10,"maximum_lag_on_failover":1048576,"postgresql":{"use_pg_rewind":true,"pg_hba":["local all all trust","host replication replicator all md5","host all all all md5"],"parameters":{"max_connections":100}}}` ,
90
+ `/service/demo/initialize` : `7553211779477532695` ,
91
+ `/service/demo/leader` : `patroni3` ,
92
+ `/service/demo/members/patroni1` : `{"conn_url":"postgres://172.18.0.8:5432/postgres","api_url":"http://172.18.0.8:8008/patroni","state":"running","role":"replica","version":"4.0.7","xlog_location":67108960,"replay_lsn":67108960,"receive_lsn":67108960,"replication_state":"streaming","timeline":1}` ,
93
+ `/service/demo/members/patroni2` : `{"conn_url":"postgres://172.18.0.4:5432/postgres","api_url":"http://172.18.0.4:8008/patroni","state":"running","role":"replica","version":"4.0.7","xlog_location":67108960,"replay_lsn":67108960,"receive_lsn":67108960,"replication_state":"streaming","timeline":1}` ,
94
+ `/service/demo/members/patroni3` : `{"conn_url":"` + pgConnStr + `","api_url":"http://172.18.0.3:8008/patroni","state":"running","role":"primary","version":"4.0.7","xlog_location":67108960,"timeline":1}` ,
95
+ `/service/demo/status` : `{"optime":67108960,"slots":{"patroni1":67108960,"patroni2":67108960,"patroni3":67108960},"retain_slots":["patroni1","patroni2","patroni3"]}}` }
96
+
97
+ cancelCtx , cancel := context .WithTimeout (context .Background (), time .Second * 5 )
98
+ for k , v := range kv {
99
+ _ , err = cli .Put (cancelCtx , k , v )
100
+ require .NoError (t , err , "failed to put key %s to etcd" , k )
101
+ }
102
+ cancel ()
97
103
98
104
md := sources.Source {}
99
105
md .Name = "continuous"
@@ -103,7 +109,7 @@ func TestMonitoredDatabase_ResolveDatabasesFromPatroni(t *testing.T) {
103
109
md .Kind = sources .SourcePatroni
104
110
md .ConnStr = "etcd://" + strings .TrimPrefix (endpoint , "http://" )
105
111
md .ConnStr += "/service"
106
- md .ConnStr += "/batman "
112
+ md .ConnStr += "/demo "
107
113
108
114
// Run ResolveDatabasesFromPatroni
109
115
dbs , err := md .ResolveDatabases ()
@@ -117,7 +123,7 @@ func TestMonitoredDatabase_ResolveDatabasesFromPatroni(t *testing.T) {
117
123
e := strings .TrimPrefix (endpoint , "http://" )
118
124
md .ConnStr = "etcd://" + strings .Join ([]string {e , e , e }, "," )
119
125
md .ConnStr += "/service"
120
- md .ConnStr += "/batman "
126
+ md .ConnStr += "/demo "
121
127
122
128
// Run ResolveDatabasesFromPatroni
123
129
dbs , err := md .ResolveDatabases ()
0 commit comments