From f546cbc9b0daea731e3dfdbb8c72fbc201b13a6e Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:00:06 +0530
Subject: [PATCH 1/7] fix: ineffassign fixed from
 process_install_dependencies_on_server_request.go

---
 ...process_install_dependencies_on_server_request.go | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/swiftwave_service/worker/process_install_dependencies_on_server_request.go b/swiftwave_service/worker/process_install_dependencies_on_server_request.go
index 430ede648a..535d474b6f 100644
--- a/swiftwave_service/worker/process_install_dependencies_on_server_request.go
+++ b/swiftwave_service/worker/process_install_dependencies_on_server_request.go
@@ -7,7 +7,6 @@ import (
 	"github.com/swiftwave-org/swiftwave/ssh_toolkit"
 	"github.com/swiftwave-org/swiftwave/swiftwave_service/core"
 	"gorm.io/gorm"
-	"strings"
 	"time"
 )
 
@@ -60,20 +59,15 @@ func (m Manager) InstallDependenciesOnServer(request InstallDependenciesOnServer
 
 	// command
 	var command string
-	var isExists bool
 	for _, dependency := range core.RequiredServerDependencies {
-		isExists = false
+		isExists := false
 		// check if dependency is already installed [ignore init]
 		if dependency != "init" {
 			stdoutBuffer := new(bytes.Buffer)
 			err = ssh_toolkit.ExecCommandOverSSH(core.DependencyCheckCommands[dependency], stdoutBuffer, nil, 5, server.IP, 22, server.User, m.Config.SystemConfig.SshPrivateKey, 30)
-			if err != nil {
-				if strings.Contains(err.Error(), "exited with status 1") {
-					//nolint:ineffassign
-					isExists = false
-				}
+			if err == nil {
+				isExists = stdoutBuffer.String() != ""
 			}
-			isExists = stdoutBuffer.String() != ""
 		}
 		// install dependency
 		if isExists {

From 02064300bfbd4487d5d8104d5c6ca3a4539f6d99 Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:01:04 +0530
Subject: [PATCH 2/7] fix: ineffassign fixed from process_ssl_request.go

---
 swiftwave_service/worker/process_ssl_request.go | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/swiftwave_service/worker/process_ssl_request.go b/swiftwave_service/worker/process_ssl_request.go
index 6646a25bdd..873855eb0d 100644
--- a/swiftwave_service/worker/process_ssl_request.go
+++ b/swiftwave_service/worker/process_ssl_request.go
@@ -94,9 +94,8 @@ func (m Manager) SSLGenerate(request SSLGenerateRequest, ctx context.Context, _
 		// upload certificate to haproxy
 		err = haproxyManager.UpdateSSL(transactionId, domain.Name, []byte(domain.SSLPrivateKey), []byte(domain.SSLFullChain))
 		if err != nil {
-			//nolint:ineffassign
 			isFailed = true
-			return err
+			continue
 		}
 	}
 	for haproxyManager, haproxyTransactionId := range transactionIdMap {

From 167e0c83b77880456424b2e95259ad8b11e084bb Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:06:37 +0530
Subject: [PATCH 3/7] fix: ineffassign fixed from
 process_redirect_rule_apply_request.go

---
 .../process_redirect_rule_apply_request.go    | 28 +++++--------------
 1 file changed, 7 insertions(+), 21 deletions(-)

diff --git a/swiftwave_service/worker/process_redirect_rule_apply_request.go b/swiftwave_service/worker/process_redirect_rule_apply_request.go
index 5b9d27ce78..a63a616f15 100644
--- a/swiftwave_service/worker/process_redirect_rule_apply_request.go
+++ b/swiftwave_service/worker/process_redirect_rule_apply_request.go
@@ -66,22 +66,8 @@ func (m Manager) RedirectRuleApply(request RedirectRuleApplyRequest, ctx context
 			err = haproxyManager.AddHTTPSRedirectRule(haproxyTransactionId, domain.Name, redirectRule.RedirectURL)
 		}
 		if err != nil {
-			// set status as failed and exit
-			_ = redirectRule.UpdateStatus(ctx, dbWithoutTx, core.RedirectRuleStatusFailed)
-			//nolint:ineffassign
 			isFailed = true
-			// no requeue
-			return nil
-		}
-		// commit haproxy transaction
-		err = haproxyManager.CommitTransaction(haproxyTransactionId)
-		if err != nil {
-			// set status as failed and exit
-			_ = redirectRule.UpdateStatus(ctx, dbWithoutTx, core.RedirectRuleStatusFailed)
-			//nolint:ineffassign
-			isFailed = true
-			// no requeue
-			return nil
+			break
 		}
 	}
 
@@ -91,6 +77,7 @@ func (m Manager) RedirectRuleApply(request RedirectRuleApplyRequest, ctx context
 			err = haproxyManager.CommitTransaction(haproxyTransactionId)
 		}
 		if isFailed || err != nil {
+			isFailed = true
 			log.Println("failed to commit haproxy transaction", err)
 			err := haproxyManager.DeleteTransaction(haproxyTransactionId)
 			if err != nil {
@@ -99,11 +86,10 @@ func (m Manager) RedirectRuleApply(request RedirectRuleApplyRequest, ctx context
 		}
 	}
 
-	// set status as applied
-	err = redirectRule.UpdateStatus(ctx, dbWithoutTx, core.RedirectRuleStatusApplied)
-	if err != nil {
-		return err
+	// set status
+	if isFailed {
+		return redirectRule.UpdateStatus(ctx, dbWithoutTx, core.RedirectRuleStatusFailed)
+	} else {
+		return redirectRule.UpdateStatus(ctx, dbWithoutTx, core.RedirectRuleStatusApplied)
 	}
-
-	return nil
 }

From f3638fef47286e0634d2d65e1b7ae32b9874ce85 Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:08:43 +0530
Subject: [PATCH 4/7] fix: ineffassign fixed from
 process_redirect_rule_delete_request.go

---
 .../process_redirect_rule_delete_request.go   | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/swiftwave_service/worker/process_redirect_rule_delete_request.go b/swiftwave_service/worker/process_redirect_rule_delete_request.go
index 9d590f72db..234096ff36 100644
--- a/swiftwave_service/worker/process_redirect_rule_delete_request.go
+++ b/swiftwave_service/worker/process_redirect_rule_delete_request.go
@@ -71,12 +71,8 @@ func (m Manager) RedirectRuleDelete(request RedirectRuleDeleteRequest, ctx conte
 			return nil
 		}
 		if err != nil {
-			// set status as failed and exit
-			// because `DeleteHTTPRedirectRule` can fail only if haproxy not working
-			//nolint:ineffassign
 			isFailed = true
-			// requeue required as it fault of haproxy and may be resolved in next try
-			return err
+			break
 		}
 	}
 
@@ -86,6 +82,7 @@ func (m Manager) RedirectRuleDelete(request RedirectRuleDeleteRequest, ctx conte
 			err = haproxyManager.CommitTransaction(haproxyTransactionId)
 		}
 		if isFailed || err != nil {
+			isFailed = true
 			log.Println("failed to commit haproxy transaction", err)
 			err := haproxyManager.DeleteTransaction(haproxyTransactionId)
 			if err != nil {
@@ -94,10 +91,12 @@ func (m Manager) RedirectRuleDelete(request RedirectRuleDeleteRequest, ctx conte
 		}
 	}
 
-	// delete redirect rule from database
-	err = redirectRule.Delete(ctx, dbWithoutTx, true)
-	if err != nil {
-		return err
+	if !isFailed {
+		// delete redirect rule from database
+		_ = redirectRule.Delete(ctx, dbWithoutTx, true)
+		return nil
+	} else {
+		// update status
+		return redirectRule.UpdateStatus(ctx, dbWithoutTx, core.RedirectRuleStatusFailed)
 	}
-	return nil
 }

From 10102e0e8225a772087372c909dbeb1f0c3ed1a9 Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:11:34 +0530
Subject: [PATCH 5/7] fix: ineffassign fixed from
 process_ingress_rule_delete_request.go

---
 .../process_ingress_rule_delete_request.go    | 39 +++++++------------
 1 file changed, 13 insertions(+), 26 deletions(-)

diff --git a/swiftwave_service/worker/process_ingress_rule_delete_request.go b/swiftwave_service/worker/process_ingress_rule_delete_request.go
index 918ec08749..c91ebe9f8d 100644
--- a/swiftwave_service/worker/process_ingress_rule_delete_request.go
+++ b/swiftwave_service/worker/process_ingress_rule_delete_request.go
@@ -92,10 +92,8 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 			if err != nil {
 				// set status as failed and exit
 				// because `DeleteHTTPSLink` can fail only if haproxy not working
-				//nolint:ineffassign
 				isFailed = true
-				// requeue required as it fault of haproxy and may be resolved in next try
-				return err
+				break
 			}
 		} else if ingressRule.Protocol == core.HTTPProtocol {
 			if ingressRule.Port == 80 {
@@ -103,20 +101,16 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 				if err != nil {
 					// set status as failed and exit
 					// because `DeleteHTTPLink` can fail only if haproxy not working
-					//nolint:ineffassign
 					isFailed = true
-					// requeue required as it fault of haproxy and may be resolved in next try
-					return err
+					break
 				}
 			} else {
 				err = haproxyManager.DeleteTCPLink(haproxyTransactionId, backendName, int(ingressRule.Port), domain.Name, haproxymanager.HTTPMode)
 				if err != nil {
 					// set status as failed and exit
 					// because `DeleteTCPLink` can fail only if haproxy not working
-					//nolint:ineffassign
 					isFailed = true
-					// requeue required as it fault of haproxy and may be resolved in next try
-					return err
+					break
 				}
 			}
 		} else if ingressRule.Protocol == core.TCPProtocol {
@@ -125,17 +119,13 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 			if err != nil {
 				// set status as failed and exit
 				// because `DeleteTCPLink` can fail only if haproxy not working
-				//nolint:ineffassign
 				isFailed = true
-				// requeue required as it fault of haproxy and may be resolved in next try
-				return err
+				break
 			}
 		} else if ingressRule.Protocol == core.UDPProtocol {
 			// leave it for udp proxy
 		} else {
 			// unknown protocol
-			//nolint:ineffassign
-			isFailed = true
 			return nil
 		}
 
@@ -153,10 +143,8 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 			if err != nil {
 				// set status as failed and exit
 				// because `DeleteBackend` can fail only if haproxy not working
-				//nolint:ineffassign
 				isFailed = true
-				// requeue required as it fault of haproxy and may be resolved in next try
-				return err
+				break
 			}
 		}
 	}
@@ -171,10 +159,8 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 			})
 			if err != nil {
 				// set status as failed and exit
-				//nolint:ineffassign
 				isFailed = true
-				// requeue required as it fault of udp proxy and may be resolved in next try
-				return err
+				break
 			}
 		}
 	}
@@ -188,6 +174,7 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 			}
 		}
 		if isFailed || err != nil {
+			isFailed = true
 			log.Println("failed to commit haproxy transaction", err)
 			err := haproxyManager.DeleteTransaction(haproxyTransactionId)
 			if err != nil {
@@ -196,11 +183,11 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 		}
 	}
 
-	// delete ingress rule from database
-	err = ingressRule.Delete(ctx, dbWithoutTx, true)
-	if err != nil {
-		return err
+	if isFailed {
+		_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
+		return nil
+	} else {
+		// delete ingress rule from database
+		return ingressRule.Delete(ctx, dbWithoutTx, true)
 	}
-
-	return nil
 }

From fb6afbc63c7c88a41edc57639eb34f61feda63bf Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:15:41 +0530
Subject: [PATCH 6/7] fix: ineffassign fixed from
 process_ingress_rule_apply_request.go

---
 .../process_ingress_rule_apply_request.go     | 61 ++++---------------
 .../process_ingress_rule_delete_request.go    |  3 +-
 2 files changed, 13 insertions(+), 51 deletions(-)

diff --git a/swiftwave_service/worker/process_ingress_rule_apply_request.go b/swiftwave_service/worker/process_ingress_rule_apply_request.go
index 4e10411a9a..71307207a5 100644
--- a/swiftwave_service/worker/process_ingress_rule_apply_request.go
+++ b/swiftwave_service/worker/process_ingress_rule_apply_request.go
@@ -86,67 +86,43 @@ func (m Manager) IngressRuleApply(request IngressRuleApplyRequest, ctx context.C
 		// add backend
 		_, err = haproxyManager.AddBackend(haproxyTransactionId, application.Name, int(ingressRule.TargetPort), int(application.Replicas))
 		if err != nil {
-			//nolint:ineffassign
 			isFailed = true
-			// set status as failed and exit
-			_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-			// no requeue
-			return nil
+			break
 		}
 		// add frontend
 		if ingressRule.Protocol == core.HTTPSProtocol {
 			err = haproxyManager.AddHTTPSLink(haproxyTransactionId, backendName, domain.Name)
 			if err != nil {
-				//nolint:ineffassign
 				isFailed = true
-				// set status as failed and exit
-				_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-				// no requeue
-				return nil
+				break
 			}
 		} else if ingressRule.Protocol == core.HTTPProtocol {
 			// for default port 80, should use fe_http frontend due to some binding restrictions
 			if ingressRule.Port == 80 {
 				err = haproxyManager.AddHTTPLink(haproxyTransactionId, backendName, domain.Name)
 				if err != nil {
-					//nolint:ineffassign
 					isFailed = true
-					// set status as failed and exit
-					_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-					// no requeue
-					return nil
+					break
 				}
 			} else {
 				// for other ports, use custom frontend
 				err = haproxyManager.AddTCPLink(haproxyTransactionId, backendName, int(ingressRule.Port), domain.Name, haproxymanager.HTTPMode, restrictedPorts)
 				if err != nil {
-					//nolint:ineffassign
 					isFailed = true
-					// set status as failed and exit
-					_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-					// no requeue
-					return nil
+					break
 				}
 			}
 		} else if ingressRule.Protocol == core.TCPProtocol {
 			err = haproxyManager.AddTCPLink(haproxyTransactionId, backendName, int(ingressRule.Port), "", haproxymanager.TCPMode, restrictedPorts)
 			if err != nil {
-				//nolint:ineffassign
 				isFailed = true
-				// set status as failed and exit
-				_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-				// no requeue
-				return nil
+				break
 			}
 		} else if ingressRule.Protocol == core.UDPProtocol {
 			// will be handled by udp proxy
 		} else {
-			//nolint:ineffassign
 			isFailed = true
-			// set status as failed and exit
-			_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-			// no requeue
-			return nil
+			break
 		}
 	}
 
@@ -158,12 +134,8 @@ func (m Manager) IngressRuleApply(request IngressRuleApplyRequest, ctx context.C
 				Service:    application.Name,
 			}, restrictedPorts)
 			if err != nil {
-				//nolint:ineffassign
 				isFailed = true
-				// set status as failed and exit
-				_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-				// no requeue
-				return nil
+				break
 			}
 		}
 	}
@@ -174,6 +146,7 @@ func (m Manager) IngressRuleApply(request IngressRuleApplyRequest, ctx context.C
 			err = haproxyManager.CommitTransaction(haproxyTransactionId)
 		}
 		if isFailed || err != nil {
+			isFailed = true
 			log.Println("failed to commit haproxy transaction", err)
 			err := haproxyManager.DeleteTransaction(haproxyTransactionId)
 			if err != nil {
@@ -183,19 +156,9 @@ func (m Manager) IngressRuleApply(request IngressRuleApplyRequest, ctx context.C
 	}
 
 	if isFailed {
-		// set status as failed and exit
-		_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-		// no requeue
-		return nil
+		return ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
+	} else {
+		// update status as applied
+		return ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusApplied)
 	}
-
-	// update status as applied
-	err = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusApplied)
-	if err != nil {
-		// requeue because this error can lead to block stage of application
-		return err
-	}
-
-	// success
-	return nil
 }
diff --git a/swiftwave_service/worker/process_ingress_rule_delete_request.go b/swiftwave_service/worker/process_ingress_rule_delete_request.go
index c91ebe9f8d..2d742ebf62 100644
--- a/swiftwave_service/worker/process_ingress_rule_delete_request.go
+++ b/swiftwave_service/worker/process_ingress_rule_delete_request.go
@@ -184,8 +184,7 @@ func (m Manager) IngressRuleDelete(request IngressRuleDeleteRequest, ctx context
 	}
 
 	if isFailed {
-		_ = ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
-		return nil
+		return ingressRule.UpdateStatus(ctx, dbWithoutTx, core.IngressRuleStatusFailed)
 	} else {
 		// delete ingress rule from database
 		return ingressRule.Delete(ctx, dbWithoutTx, true)

From 5315dfc09ddaeb2cbca30b714cb345eec662572b Mon Sep 17 00:00:00 2001
From: Tanmoy Sarkar <57363826+tanmoysrt@users.noreply.github.com>
Date: Mon, 25 Mar 2024 03:19:26 +0530
Subject: [PATCH 7/7] fix: ineffassign fixed from process_ssl_request.go

---
 swiftwave_service/worker/process_ssl_request.go | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/swiftwave_service/worker/process_ssl_request.go b/swiftwave_service/worker/process_ssl_request.go
index 873855eb0d..ef947b6c35 100644
--- a/swiftwave_service/worker/process_ssl_request.go
+++ b/swiftwave_service/worker/process_ssl_request.go
@@ -95,7 +95,7 @@ func (m Manager) SSLGenerate(request SSLGenerateRequest, ctx context.Context, _
 		err = haproxyManager.UpdateSSL(transactionId, domain.Name, []byte(domain.SSLPrivateKey), []byte(domain.SSLFullChain))
 		if err != nil {
 			isFailed = true
-			continue
+			break
 		}
 	}
 	for haproxyManager, haproxyTransactionId := range transactionIdMap {
@@ -104,6 +104,7 @@ func (m Manager) SSLGenerate(request SSLGenerateRequest, ctx context.Context, _
 			err = haproxyManager.CommitTransaction(haproxyTransactionId)
 		}
 		if isFailed || err != nil {
+			isFailed = true
 			log.Println("failed to commit haproxy transaction", err)
 			err := haproxyManager.DeleteTransaction(haproxyTransactionId)
 			if err != nil {
@@ -111,6 +112,11 @@ func (m Manager) SSLGenerate(request SSLGenerateRequest, ctx context.Context, _
 			}
 		}
 	}
+
+	if isFailed {
+		return domain.UpdateSSLStatus(ctx, dbWithoutTx, core.DomainSSLStatusFailed)
+	}
+
 	return nil
 }