From 4f0ae4e2e5602f99a13c6d1c60be267d5e93bf6b Mon Sep 17 00:00:00 2001
From: Fabian Seidl <fabian.b.seidl@stud.h-da.de>
Date: Mon, 18 Jul 2022 11:47:59 +0200
Subject: [PATCH] added delete option for subscribe responses, WIP

---
 controller/nucleus/gnmi_transport.go | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go
index 4aca2868e..4d8b00496 100644
--- a/controller/nucleus/gnmi_transport.go
+++ b/controller/nucleus/gnmi_transport.go
@@ -259,8 +259,7 @@ func (g *Gnmi) ProcessControlPlaneSubscribeResponse(resp *gpb.SubscribeResponse_
 	}
 	//TODO: maybe remove and combine into one function/method!
 	if err := g.processResponseDeletes(notification.Delete, dModel, schema); err != nil {
-		log.Error(err)
-		//TODO: return err here after implementation!
+		return err
 	}
 
 	return nil
@@ -308,13 +307,18 @@ func handleProcessResponseErrors(errs []error) error {
 
 func (g *Gnmi) processResponseDeletes(deletes []*gpb.Path, root ygot.ValidatedGoStruct, s *ytypes.Schema) error {
 	errs := make([]error, 0)
-	_ = errs
+
+	for _, path := range deletes {
+		if err := ytypes.DeleteNode(s.RootSchema(), root, path); err != nil {
+			errs = append(errs, err)
+		}
+	}
 
 	if len(errs) != 0 {
 		return handleProcessResponseErrors(errs)
 	}
 
-	return errors.ErrNotYetImplemented{}
+	return nil
 }
 
 // Capabilities calls GNMI capabilities
-- 
GitLab