Skip to content

Commit 89f27db

Browse files
prometherionmjuraga
authored andcommitted
BUG/MEDIUM: setting empty servers for cleaned-up backends by ServiceDiscovery
1 parent 08557b3 commit 89f27db

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

discovery/service_discovery_instance.go

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ type ServiceInstance interface {
3838

3939
type confService struct {
4040
confService *configuration.Service
41-
deleted bool
41+
cleanup bool
4242
}
4343

4444
type discoveryInstanceParams struct {
@@ -94,14 +94,14 @@ func (s *ServiceDiscoveryInstance) UpdateServices(services []ServiceInstance) er
9494
return err
9595
}
9696
reload := false
97-
s.markForDeletion()
97+
s.markForCleanUp()
9898
for _, service := range services {
9999
if s.serviceNotTracked(service.GetName()) {
100100
continue
101101
}
102102
if !service.Changed() {
103103
if se, ok := s.services[service.GetName()]; ok {
104-
se.deleted = false
104+
se.cleanup = false
105105
}
106106
continue
107107
}
@@ -119,7 +119,7 @@ func (s *ServiceDiscoveryInstance) UpdateServices(services []ServiceInstance) er
119119
}
120120
reload = reload || r
121121
}
122-
r := s.removeDeleted()
122+
r := s.cleanup()
123123
reload = reload || r
124124
if reload {
125125
if err := s.commitTransaction(); err != nil {
@@ -145,9 +145,9 @@ func (s *ServiceDiscoveryInstance) startTransaction() error {
145145
return nil
146146
}
147147

148-
func (s *ServiceDiscoveryInstance) markForDeletion() {
148+
func (s *ServiceDiscoveryInstance) markForCleanUp() {
149149
for id := range s.services {
150-
s.services[id].deleted = true
150+
s.services[id].cleanup = true
151151
}
152152
}
153153

@@ -171,7 +171,7 @@ func (s *ServiceDiscoveryInstance) serviceNotTracked(service string) bool {
171171
func (s *ServiceDiscoveryInstance) initService(service ServiceInstance) (bool, error) {
172172
if se, ok := s.services[service.GetName()]; ok {
173173
se.confService.SetTransactionID(s.transactionID)
174-
se.deleted = false
174+
se.cleanup = false
175175
return false, nil
176176
}
177177
se, err := s.client.NewService(service.GetBackendName(), configuration.ScalingParams{
@@ -188,23 +188,21 @@ func (s *ServiceDiscoveryInstance) initService(service ServiceInstance) (bool, e
188188
}
189189
s.services[service.GetName()] = &confService{
190190
confService: se,
191-
deleted: false,
191+
cleanup: false,
192192
}
193193
return reload, nil
194194
}
195195

196-
func (s *ServiceDiscoveryInstance) removeDeleted() bool {
197-
reload := false
196+
func (s *ServiceDiscoveryInstance) cleanup() (reload bool) {
198197
for service := range s.services {
199-
if s.services[service].deleted {
198+
if s.services[service].cleanup {
200199
s.services[service].confService.SetTransactionID(s.transactionID)
201-
err := s.services[service].confService.Delete()
202-
if err == nil {
203-
reload = true
204-
delete(s.services, service)
205-
}
200+
changed, _ := s.services[service].confService.Update([]configuration.ServiceServer{})
201+
202+
reload = reload || changed
206203
}
207204
}
205+
208206
return reload
209207
}
210208

0 commit comments

Comments
 (0)