From 440a4d7e7e85bd32fc8d115d76a581a349f46be5 Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@h-da.de>
Date: Tue, 18 Feb 2025 16:35:40 +0100
Subject: [PATCH] Update init for assignForwardingHandler

---
 .../kms/assignForwardingHandler.go            | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/goKMS/gnmiHandlers/kms/assignForwardingHandler.go b/goKMS/gnmiHandlers/kms/assignForwardingHandler.go
index bc4daeda..35c4da1b 100644
--- a/goKMS/gnmiHandlers/kms/assignForwardingHandler.go
+++ b/goKMS/gnmiHandlers/kms/assignForwardingHandler.go
@@ -36,6 +36,28 @@ func (yh *AssignForwardingHandler) Init(config *handler.Config, publishToSubsFun
 	yh.Config = config
 	yh.PublishToSubs = publishToSubsFunc
 
+	yh.Config.Lock()
+	defer yh.Config.Unlock()
+
+	copyCurrentConfig, err := ygot.DeepCopy(yh.Config.Data)
+	if err != nil {
+		return err
+	}
+
+	newConfig, ok := copyCurrentConfig.(*gnmitargetygot.Gnmitarget)
+	if !ok {
+		return fmt.Errorf("Wrong type, exptected: %T, got: %T", (*gnmitargetygot.OpenconfigInterfaces_Interfaces)(nil), copyCurrentConfig)
+	}
+
+	newConfig.GetOrCreateAssignForwarding()
+
+	//validate struct
+	if err := newConfig.Validate(); err != nil {
+		return err
+	}
+
+	yh.Config.Data = newConfig
+
 	return nil
 }
 
-- 
GitLab