@@ -17,6 +17,7 @@ const (
17
17
)
18
18
19
19
var defaultMaxFails = 1
20
+ var defaultWeight = 1
20
21
21
22
func TestStreamClient (t * testing.T ) {
22
23
httpClient := & http.Client {}
@@ -171,12 +172,17 @@ func TestStreamUpstreamServer(t *testing.T) {
171
172
}
172
173
173
174
maxFails := 64
175
+ weight := 10
176
+
174
177
streamServer := client.StreamUpstreamServer {
175
178
Server : "127.0.0.1:2000" ,
176
179
MaxConns : 321 ,
177
180
MaxFails : & maxFails ,
178
181
FailTimeout : "21s" ,
179
182
SlowStart : "12s" ,
183
+ Weight : & weight ,
184
+ Backup : true ,
185
+ Down : true ,
180
186
}
181
187
err = c .AddStreamServer (streamUpstream , streamServer )
182
188
if err != nil {
@@ -363,12 +369,17 @@ func TestUpstreamServer(t *testing.T) {
363
369
}
364
370
365
371
maxFails := 64
372
+ weight := 10
366
373
server := client.UpstreamServer {
367
374
Server : "127.0.0.1:2000" ,
368
375
MaxConns : 321 ,
369
376
MaxFails : & maxFails ,
370
377
FailTimeout : "21s" ,
371
378
SlowStart : "12s" ,
379
+ Weight : & weight ,
380
+ Route : "test" ,
381
+ Backup : true ,
382
+ Down : true ,
372
383
}
373
384
err = c .AddHTTPServer (upstream , server )
374
385
if err != nil {
@@ -496,6 +507,7 @@ func TestUpstreamServerDefaultParameters(t *testing.T) {
496
507
SlowStart : "0s" ,
497
508
MaxFails : & defaultMaxFails ,
498
509
FailTimeout : "10s" ,
510
+ Weight : & defaultWeight ,
499
511
}
500
512
err = c .AddHTTPServer (upstream , server )
501
513
if err != nil {
@@ -608,6 +620,7 @@ func TestStreamUpstreamServerDefaultParameters(t *testing.T) {
608
620
SlowStart : "0s" ,
609
621
MaxFails : & defaultMaxFails ,
610
622
FailTimeout : "10s" ,
623
+ Weight : & defaultWeight ,
611
624
}
612
625
err = c .AddStreamServer (streamUpstream , streamServer )
613
626
if err != nil {
@@ -955,3 +968,36 @@ func compareStreamUpstreamServers(x []client.StreamUpstreamServer, y []client.St
955
968
956
969
return reflect .DeepEqual (xServers , yServers )
957
970
}
971
+
972
+ func TestUpstreamServerWithDrain (t * testing.T ) {
973
+ httpClient := & http.Client {}
974
+ c , err := client .NewNginxClient (httpClient , "http://127.0.0.1:8080/api" )
975
+ if err != nil {
976
+ t .Fatalf ("Error connecting to nginx: %v" , err )
977
+ }
978
+
979
+ server := client.UpstreamServer {
980
+ Server : "127.0.0.1:9001" ,
981
+ MaxFails : & defaultMaxFails ,
982
+ FailTimeout : "10s" ,
983
+ SlowStart : "0s" ,
984
+ Weight : & defaultWeight ,
985
+ Drain : true ,
986
+ }
987
+
988
+ // Get existing upstream servers
989
+ servers , err := c .GetHTTPServers ("test-drain" )
990
+ if err != nil {
991
+ t .Fatalf ("Error getting HTTPServers: %v" , err )
992
+ }
993
+
994
+ if len (servers ) != 1 {
995
+ t .Errorf ("Too many servers" )
996
+ }
997
+
998
+ servers [0 ].ID = 0
999
+
1000
+ if ! reflect .DeepEqual (server , servers [0 ]) {
1001
+ t .Errorf ("Expected: %v Got: %v" , server , servers [0 ])
1002
+ }
1003
+ }
0 commit comments