From 13a4dba09660bf9dbc39fc006191dc20083c0680 Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@stud.h-da.de>
Date: Thu, 22 Dec 2022 16:45:43 +0100
Subject: [PATCH] change ensureIntendedConfiguration... to use
 GetModelAsFilteredCopy

---
 controller/nucleus/networkElementService.go  |  2 +-
 controller/nucleus/principalNetworkDomain.go | 16 ++++++++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/controller/nucleus/networkElementService.go b/controller/nucleus/networkElementService.go
index 61d302a4c..d5631cfe0 100644
--- a/controller/nucleus/networkElementService.go
+++ b/controller/nucleus/networkElementService.go
@@ -239,7 +239,7 @@ func (s *NetworkElementService) createNetworkElementFromStore(loadedNetworkEleme
 	}
 
 	// Use unmarshall from the network elements SBI to unmarshall ygot json in go struct.
-	opts := []ytypes.UnmarshalOpt{&ytypes.IgnoreReadOnlyFields{}, &ytypes.IgnoreExtraFields{}}
+	opts := []ytypes.UnmarshalOpt{&ytypes.IgnoreExtraFields{}}
 	err = mne.SBI().Unmarshal([]byte(loadedNetworkElement.Model), path, mne.GetModel(), opts...)
 	if err != nil {
 		return nil, err
diff --git a/controller/nucleus/principalNetworkDomain.go b/controller/nucleus/principalNetworkDomain.go
index e5b768de7..21d99e66b 100644
--- a/controller/nucleus/principalNetworkDomain.go
+++ b/controller/nucleus/principalNetworkDomain.go
@@ -480,7 +480,19 @@ func (pnd *pndImplementation) ensureIntendedConfigurationIsAppliedOnNetworkEleme
 		return err
 	}
 
-	model, err := mne.GetModelAsString()
+	model, err := mne.GetModelAsFilteredCopy()
+	if err != nil {
+		return err
+	}
+
+	modelAsString, err := ygot.EmitJSON(model, &ygot.EmitJSONConfig{
+		Format:         ygot.RFC7951,
+		Indent:         "",
+		SkipValidation: true,
+		RFC7951Config: &ygot.RFC7951JSONConfig{
+			AppendModuleName: true,
+		},
+	})
 	if err != nil {
 		return err
 	}
@@ -494,7 +506,7 @@ func (pnd *pndImplementation) ensureIntendedConfigurationIsAppliedOnNetworkEleme
 	req.Update = []*gpb.Update{{
 		Path: path,
 		Val: &gpb.TypedValue{
-			Value: &gpb.TypedValue_JsonIetfVal{JsonIetfVal: []byte(model)},
+			Value: &gpb.TypedValue_JsonIetfVal{JsonIetfVal: []byte(modelAsString)},
 		},
 	}}
 
-- 
GitLab