Skip to content

Commit 1ca13cf

Browse files
ivanmatmatioktalz
authored andcommitted
BUG: BackendSwitchingRuleDeleteAll does not delete all rules
1 parent 3acf675 commit 1ca13cf

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

pkg/haproxy/api/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type HAProxyClient interface {
3333
BackendServerDelete(backendName string, serverName string) error
3434
BackendServersGet(backendName string) (models.Servers, error)
3535
BackendSwitchingRuleCreate(frontend string, rule models.BackendSwitchingRule) error
36-
BackendSwitchingRuleDeleteAll(frontend string)
36+
BackendSwitchingRuleDeleteAll(frontend string) error
3737
DefaultsGetConfiguration() (*models.Defaults, error)
3838
DefaultsPushConfiguration(models.Defaults) error
3939
ExecuteRaw(command string) (result []string, err error)

pkg/haproxy/api/backend.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,18 +158,22 @@ func (c *clientNative) BackendSwitchingRuleCreate(frontend string, rule models.B
158158
return configuration.CreateBackendSwitchingRule(frontend, &rule, c.activeTransaction, 0)
159159
}
160160

161-
func (c *clientNative) BackendSwitchingRuleDeleteAll(frontend string) {
162-
logger := utils.GetLogger()
161+
func (c *clientNative) BackendSwitchingRuleDeleteAll(frontend string) (err error) {
163162
configuration, err := c.nativeAPI.Configuration()
164163
if err != nil {
165-
logger.Error(err)
166164
return
167165
}
168166
c.activeTransactionHasChanges = true
169-
err = configuration.DeleteBackendSwitchingRule(0, frontend, c.activeTransaction, 0)
170-
for err != nil {
171-
logger.Error(err)
167+
_, switchingRules, err := configuration.GetBackendSwitchingRules(frontend, c.activeTransaction)
168+
if err != nil {
169+
return
170+
}
171+
for i := 0; i < len(switchingRules); i++ {
172+
if err = configuration.DeleteBackendSwitchingRule(0, frontend, c.activeTransaction, 0); err != nil {
173+
break
174+
}
172175
}
176+
return
173177
}
174178

175179
func (c *clientNative) ServerGet(serverName, backendName string) (models.Server, error) {

pkg/route/route.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,10 @@ func AddCustomRoute(route Route, routeACLAnn string, api api.HAProxyClient) (rel
135135

136136
func CustomRoutesReset(api api.HAProxyClient) (err error) {
137137
for _, frontend := range []string{FrontendHTTP, FrontendHTTPS} {
138-
api.BackendSwitchingRuleDeleteAll(frontend)
138+
err = api.BackendSwitchingRuleDeleteAll(frontend)
139+
if err != nil {
140+
break
141+
}
139142
err = api.BackendSwitchingRuleCreate(frontend, models.BackendSwitchingRule{
140143
Name: "%[var(txn.path_match),field(1,.)]",
141144
Index: utils.PtrInt64(0),
@@ -144,5 +147,5 @@ func CustomRoutesReset(api api.HAProxyClient) (err error) {
144147
return fmt.Errorf("unable to create main backendSwitching rule !!: %w", err)
145148
}
146149
}
147-
return err
150+
return
148151
}

0 commit comments

Comments
 (0)