From faa5e3ca135a35645b973e63aee26a081cd2541d Mon Sep 17 00:00:00 2001
From: Neil-Jocelyn Schark <neil.schark@h-da.de>
Date: Mon, 7 Oct 2024 08:52:56 +0000
Subject: [PATCH] Improve error message on route creation

See merge request danet/quant!220

Co-authored-by: Malte Bauch <malte.bauch@h-da.de>
---
 .../kms/assignForwardingHandler.go            | 19 ++++++++++++-------
 goKMS/kms/kms.go                              |  5 -----
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/goKMS/gnmiHandlers/kms/assignForwardingHandler.go b/goKMS/gnmiHandlers/kms/assignForwardingHandler.go
index 01ebfedb..bc4daeda 100644
--- a/goKMS/gnmiHandlers/kms/assignForwardingHandler.go
+++ b/goKMS/gnmiHandlers/kms/assignForwardingHandler.go
@@ -45,6 +45,8 @@ func (yh *AssignForwardingHandler) Update(c ygot.ValidatedGoStruct, jobs []*gnmi
 		return fmt.Errorf("failed type assertion for newConfig %T", (*gnmitargetygot.Gnmitarget)(nil))
 	}
 
+	log.Debugf("Received Update within AssignForwardingHandler")
+
 	forwarding := config.GetOrCreateAssignForwarding()
 
 	pathId := forwarding.GetPathId()
@@ -56,9 +58,11 @@ func (yh *AssignForwardingHandler) Update(c ygot.ValidatedGoStruct, jobs []*gnmi
 
 	if nextHop != nil {
 		nextHopString = nextHop.GetNodeId()
+		log.Debugf("AssignForwardingHandler - NextHopString: %s", nextHopString)
 	}
 	if prevHop != nil {
 		prevHopString = prevHop.GetNodeId()
+		log.Debugf("AssignForwardingHandler - PrevHopString: %s", prevHopString)
 	}
 
 	var initKMS *util.RemoteKMS
@@ -69,15 +73,16 @@ func (yh *AssignForwardingHandler) Update(c ygot.ValidatedGoStruct, jobs []*gnmi
 			addressPrefix = initiatingKmsAddress.GetIpAddress()
 		} else if initiatingKmsAddress.GetHostname() != "" {
 			addressPrefix = initiatingKmsAddress.GetHostname()
-		} else {
-			log.Error("initiatingKmsAddress must have either an IP address or a hostname")
-			return fmt.Errorf("initiatingKmsAddress must have either an IP address or a hostname")
 		}
 
-		initKMS = &util.RemoteKMS{
-			Id:      initiatingKmsAddress.GetNodeId(),
-			Address: addressPrefix,
-			Port:    initiatingKmsAddress.GetPort(),
+		log.Debugf("AssignForwardingHandler - InitiatingKMSAddress was set with the following parameters: NodeId: %s, Hostname: %s, IpAddress: %s, Port: %d", initiatingKmsAddress.GetNodeId(), initiatingKmsAddress.GetHostname(), initiatingKmsAddress.GetIpAddress(), initiatingKmsAddress.GetPort())
+
+		if addressPrefix != "" {
+			initKMS = &util.RemoteKMS{
+				Id:      initiatingKmsAddress.GetNodeId(),
+				Address: addressPrefix,
+				Port:    initiatingKmsAddress.GetPort(),
+			}
 		}
 	}
 
diff --git a/goKMS/kms/kms.go b/goKMS/kms/kms.go
index 08627113..536bfc17 100644
--- a/goKMS/kms/kms.go
+++ b/goKMS/kms/kms.go
@@ -384,11 +384,6 @@ func (kms *KMS) AssignForwardingRoute(pId, pHop, nHop string, remoteKMS *util.Re
 	kms.routingTable[pathId] = tmpRoute
 	kms.routingTableMutex.Unlock()
 
-	if tmpRoute.RemoteKMS == nil {
-		log.Error("NOOOOO REMOTE KMS")
-		return fmt.Errorf("NOOOOO REMOTE KMS")
-	}
-
 	if tmpRoute.RemoteKMS != nil {
 		kms.remoteKMSMappingMutex.Lock()
 		if _, ok := kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id]; !ok {
-- 
GitLab