@@ -44,42 +44,6 @@ type UpstreamServer struct {
44
44
Service string `json:"service,omitempty"`
45
45
}
46
46
47
- func fillUpstreamServerWithDefaultValues (u UpstreamServer ) UpstreamServer {
48
- if u .MaxConns == nil {
49
- defaultMaxConns := 0
50
- u .MaxConns = & defaultMaxConns
51
- }
52
-
53
- if u .MaxFails == nil {
54
- defaultMaxFails := 1
55
- u .MaxFails = & defaultMaxFails
56
- }
57
-
58
- if u .FailTimeout == "" {
59
- u .FailTimeout = "10s"
60
- }
61
-
62
- if u .SlowStart == "" {
63
- u .SlowStart = "0s"
64
- }
65
-
66
- if u .Backup == nil {
67
- defaultBackup := false
68
- u .Backup = & defaultBackup
69
- }
70
-
71
- if u .Down == nil {
72
- defaultDown := false
73
- u .Down = & defaultDown
74
- }
75
-
76
- if u .Weight == nil {
77
- defaultWeight := 1
78
- u .Weight = & defaultWeight
79
- }
80
- return u
81
- }
82
-
83
47
// StreamUpstreamServer lets you configure Stream upstreams.
84
48
type StreamUpstreamServer struct {
85
49
ID int `json:"id,omitempty"`
@@ -94,42 +58,6 @@ type StreamUpstreamServer struct {
94
58
Service string `json:"service,omitempty"`
95
59
}
96
60
97
- func fillStreamUpstreamServerWithDefaultValues (u StreamUpstreamServer ) StreamUpstreamServer {
98
- if u .MaxConns == nil {
99
- defaultMaxConns := 0
100
- u .MaxConns = & defaultMaxConns
101
- }
102
-
103
- if u .MaxFails == nil {
104
- defaultMaxFails := 1
105
- u .MaxFails = & defaultMaxFails
106
- }
107
-
108
- if u .FailTimeout == "" {
109
- u .FailTimeout = "10s"
110
- }
111
-
112
- if u .SlowStart == "" {
113
- u .SlowStart = "0s"
114
- }
115
-
116
- if u .Backup == nil {
117
- defaultBackup := false
118
- u .Backup = & defaultBackup
119
- }
120
-
121
- if u .Down == nil {
122
- defaultDown := false
123
- u .Down = & defaultDown
124
- }
125
-
126
- if u .Weight == nil {
127
- defaultWeight := 1
128
- u .Weight = & defaultWeight
129
- }
130
- return u
131
- }
132
-
133
61
type apiErrorResponse struct {
134
62
Error apiError
135
63
RequestID string `json:"request_id"`
@@ -579,13 +507,50 @@ func (client *NginxClient) UpdateHTTPServers(upstream string, servers []Upstream
579
507
return toAdd , toDelete , toUpdate , nil
580
508
}
581
509
510
+ func haveSameParameters (newServer UpstreamServer , serverNGX UpstreamServer ) bool {
511
+ newServer .ID = serverNGX .ID
512
+
513
+ if serverNGX .MaxConns != nil && newServer .MaxConns == nil {
514
+ defaultMaxConns := 0
515
+ newServer .MaxConns = & defaultMaxConns
516
+ }
517
+
518
+ if serverNGX .MaxFails != nil && newServer .MaxFails == nil {
519
+ defaultMaxFails := 1
520
+ newServer .MaxFails = & defaultMaxFails
521
+ }
522
+
523
+ if serverNGX .FailTimeout != "" && newServer .FailTimeout == "" {
524
+ newServer .FailTimeout = "10s"
525
+ }
526
+
527
+ if serverNGX .SlowStart != "" && newServer .SlowStart == "" {
528
+ newServer .SlowStart = "0s"
529
+ }
530
+
531
+ if serverNGX .Backup != nil && newServer .Backup == nil {
532
+ defaultBackup := false
533
+ newServer .Backup = & defaultBackup
534
+ }
535
+
536
+ if serverNGX .Down != nil && newServer .Down == nil {
537
+ defaultDown := false
538
+ newServer .Down = & defaultDown
539
+ }
540
+
541
+ if serverNGX .Weight != nil && newServer .Weight == nil {
542
+ defaultWeight := 1
543
+ newServer .Weight = & defaultWeight
544
+ }
545
+
546
+ return reflect .DeepEqual (newServer , serverNGX )
547
+ }
548
+
582
549
func determineUpdates (updatedServers []UpstreamServer , nginxServers []UpstreamServer ) (toAdd []UpstreamServer , toRemove []UpstreamServer , toUpdate []UpstreamServer ) {
583
550
for _ , server := range updatedServers {
584
551
updateFound := false
585
552
for _ , serverNGX := range nginxServers {
586
- server .ID = serverNGX .ID
587
- newServer := fillUpstreamServerWithDefaultValues (server )
588
- if newServer .Server == serverNGX .Server && ! reflect .DeepEqual (newServer , serverNGX ) {
553
+ if server .Server == serverNGX .Server && ! haveSameParameters (server , serverNGX ) {
589
554
updateFound = true
590
555
break
591
556
}
@@ -842,14 +807,49 @@ func (client *NginxClient) getIDOfStreamServer(upstream string, name string) (in
842
807
return - 1 , nil
843
808
}
844
809
810
+ func haveStreamSameParameters (newServer StreamUpstreamServer , serverNGX StreamUpstreamServer ) bool {
811
+ newServer .ID = serverNGX .ID
812
+ if serverNGX .MaxConns != nil && newServer .MaxConns == nil {
813
+ defaultMaxConns := 0
814
+ newServer .MaxConns = & defaultMaxConns
815
+ }
816
+
817
+ if serverNGX .MaxFails != nil && newServer .MaxFails == nil {
818
+ defaultMaxFails := 1
819
+ newServer .MaxFails = & defaultMaxFails
820
+ }
821
+
822
+ if serverNGX .FailTimeout != "" && newServer .FailTimeout == "" {
823
+ newServer .FailTimeout = "10s"
824
+ }
825
+
826
+ if serverNGX .SlowStart != "" && newServer .SlowStart == "" {
827
+ newServer .SlowStart = "0s"
828
+ }
829
+
830
+ if serverNGX .Backup != nil && newServer .Backup == nil {
831
+ defaultBackup := false
832
+ newServer .Backup = & defaultBackup
833
+ }
834
+
835
+ if serverNGX .Down != nil && newServer .Down == nil {
836
+ defaultDown := false
837
+ newServer .Down = & defaultDown
838
+ }
839
+
840
+ if serverNGX .Weight != nil && newServer .Weight == nil {
841
+ defaultWeight := 1
842
+ newServer .Weight = & defaultWeight
843
+ }
844
+
845
+ return reflect .DeepEqual (newServer , serverNGX )
846
+ }
847
+
845
848
func determineStreamUpdates (updatedServers []StreamUpstreamServer , nginxServers []StreamUpstreamServer ) (toAdd []StreamUpstreamServer , toRemove []StreamUpstreamServer , toUpdate []StreamUpstreamServer ) {
846
849
for _ , server := range updatedServers {
847
850
updateFound := false
848
851
for _ , serverNGX := range nginxServers {
849
- server .ID = serverNGX .ID
850
- newServer := fillStreamUpstreamServerWithDefaultValues (server )
851
-
852
- if server .Server == serverNGX .Server && ! reflect .DeepEqual (newServer , serverNGX ) {
852
+ if server .Server == serverNGX .Server && ! haveStreamSameParameters (server , serverNGX ) {
853
853
updateFound = true
854
854
break
855
855
}
0 commit comments