From df37d5546915f32ec26f902d88e18e83b2f7260b Mon Sep 17 00:00:00 2001 From: tanmoysrt <57363826+tanmoysrt@users.noreply.github.com> Date: Sun, 24 Nov 2024 15:18:32 +0530 Subject: [PATCH] fix(ingress-rule): while checking or existing backend do different queries based on target type --- .../process_ingress_rule_delete_request.go | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/swiftwave_service/worker/process_ingress_rule_delete_request.go b/swiftwave_service/worker/process_ingress_rule_delete_request.go index 53f2fcb127..ca085871b7 100644 --- a/swiftwave_service/worker/process_ingress_rule_delete_request.go +++ b/swiftwave_service/worker/process_ingress_rule_delete_request.go @@ -181,11 +181,21 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context // delete backend backendUsedByOther := true - var ingressRuleCheck core.IngressRule - err = m.ServiceManager.DbClient.Where("id != ? AND application_id = ? AND target_port = ?", ingressRule.ID, ingressRule.ApplicationID, ingressRule.TargetPort).First(&ingressRuleCheck).Error - if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - backendUsedByOther = false + var ingressRuleCheckForApplication core.IngressRule + if ingressRule.TargetType == core.ApplicationIngressRule { + err = m.ServiceManager.DbClient.Where("id != ? AND application_id = ? AND target_port = ?", ingressRule.ID, ingressRule.ApplicationID, ingressRule.TargetPort).First(&ingressRuleCheckForApplication).Error + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + backendUsedByOther = false + } + } + } + if ingressRule.TargetType == core.ExternalServiceIngressRule { + err = m.ServiceManager.DbClient.Where("id != ? AND external_service = ?", ingressRule.ID, ingressRule.ExternalService).First(&ingressRuleCheckForApplication).Error + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + backendUsedByOther = false + } } } if !backendUsedByOther {