diff --git a/controller/nucleus/networkElementWatcher.go b/controller/nucleus/networkElementWatcher.go index 672574d90a8a18a1020ea7195119b3c2b6f208f9..451f4ab4b60d9a551d43407124dac644df17fec8 100644 --- a/controller/nucleus/networkElementWatcher.go +++ b/controller/nucleus/networkElementWatcher.go @@ -4,7 +4,6 @@ import ( "context" "fmt" "strconv" - "strings" "code.fbi.h-da.de/danet/gosdn/controller/customerrs" "code.fbi.h-da.de/danet/gosdn/controller/event" @@ -15,6 +14,7 @@ import ( "code.fbi.h-da.de/danet/gosdn/forks/goarista/gnmi" "github.com/google/uuid" gpb "github.com/openconfig/gnmi/proto/gnmi" + "github.com/openconfig/ygot/ygot" log "github.com/sirupsen/logrus" ) @@ -184,15 +184,22 @@ func (n *NetworkElementWatcher) handleSubscribeResponseUpdate(resp *gpb.Subscrib pathsAndValues := make(map[string]string, len(resp.Update.Update)) for _, update := range resp.Update.Update { - pathString := "" + //pathString := "" - // go through elem to build full path - for _, elem := range update.Path.Elem { - // remove unwanted parts of path string example: "name:\"system\"" -> "system" - filteredElem := elem.String()[strings.Index(elem.String(), ":\"")+2 : len(elem.String())-1] - pathString += filteredElem + "/" + pathString, err := ygot.PathToString(update.Path) + if err != nil { + log.Errorf("Error trying to create a string from path: %v", err) } + log.Info("Generated path string, used as key in pathAndValues map: ", pathString) + + //// go through elem to build full path + //for _, elem := range update.Path.Elem { + // // remove unwanted parts of path string example: "name:\"system\"" -> "system" + // filteredElem := elem.String()[strings.Index(elem.String(), ":\"")+2 : len(elem.String())-1] + // pathString += filteredElem + "/" + //} + pathsAndValues[pathString] = update.Val.GetStringVal() }