diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go index 4aca2868ec33ff9734158a95d366e1d74d7eadfc..4d8b0049608b93dce1f5748ca56f0657c1d68fad 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