From d9d4881804ff293d5c78f2faaaf8e9fb1bea3c35 Mon Sep 17 00:00:00 2001
From: Fabian Seidl <fabian.seidl@h-da.de>
Date: Fri, 14 Apr 2023 12:51:46 +0200
Subject: [PATCH] fix compile errors due to update of ygot in generator

---
 csbi/generate.go | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/csbi/generate.go b/csbi/generate.go
index d299aa53e..b638a6643 100644
--- a/csbi/generate.go
+++ b/csbi/generate.go
@@ -13,6 +13,7 @@ import (
 	spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound"
 	"github.com/google/uuid"
 	gpb "github.com/openconfig/gnmi/proto/gnmi"
+	"github.com/openconfig/ygot/gogen"
 	"github.com/openconfig/ygot/ygen"
 	log "github.com/sirupsen/logrus"
 )
@@ -49,10 +50,8 @@ func Generate(ctx context.Context, models []*gpb.ModelData, repository Repositor
 	} else if len(yangFiles) != len(models) {
 		log.Warn("could not find all models")
 	}
-	cfg := &ygen.GeneratorConfig{
-		PackageName:        "main",
-		GenerateJSONSchema: true,
-		StoreRawSchema:     true,
+
+	generator := gogen.New("GoCodeGenerator", ygen.IROptions{
 		ParseOptions: ygen.ParseOpts{
 			YANGParseOptions: yang.Options{
 				IgnoreSubmoduleCircularDependencies: true,
@@ -63,39 +62,40 @@ func Generate(ctx context.Context, models []*gpb.ModelData, repository Repositor
 			GenerateFakeRoot: true,
 			FakeRootName:     "Device",
 		},
-		GoOptions: ygen.GoOpts{
-			IncludeModelData:     true,
-			GenerateSimpleUnions: true,
-			ValidateFunctionName: "Validate",
-		},
-	}
+	}, gogen.GoOpts{
+		PackageName:          "main",
+		GenerateJSONSchema:   true,
+		IncludeModelData:     true,
+		GenerateSimpleUnions: true,
+		ValidateFunctionName: "Validate",
+	})
 
 	lock.Lock()
-	generator := ygen.NewYANGCodeGenerator(cfg)
 
 	searchpath, err := repository.YANGPathsWithSuffix()
 	if err != nil {
 		return Deployment{}, promHandleError(labels, err, codeGenerationErrorsTotal)
 	}
-	code, errs := generator.GenerateGoCode(yangFiles, searchpath)
+
+	code, errs := generator.Generate(yangFiles, searchpath)
 	for _, e := range errs {
 		if strings.Contains(e.Error(), "duplicate entry interfaces at the root") {
 			if strings.Contains(e.Error(), "ietf-interfaces") {
-				generator.Config.ParseOptions.ExcludeModules = append(generator.Config.ParseOptions.ExcludeModules, "ietf-interfaces")
+				generator.IROptions.ParseOptions.ExcludeModules = append(generator.IROptions.ParseOptions.ExcludeModules, "ietf-interfaces")
 			} else {
 				splitted := strings.SplitAfter(e.Error(), "new: ")
 				model := strings.Split(splitted[0], "/")[1]
-				generator.Config.ParseOptions.ExcludeModules = append(generator.Config.ParseOptions.ExcludeModules, model)
+				generator.IROptions.ParseOptions.ExcludeModules = append(generator.IROptions.ParseOptions.ExcludeModules, model)
 			}
 		}
 		log.Warnf("error during first round %v", promHandleError(labels, e, codeGenerationErrorsTotal))
 	}
 
-	log.Infof("excluded models: %v", generator.Config.ParseOptions.ExcludeModules)
+	log.Infof("excluded models: %v", generator.IROptions.ParseOptions.ExcludeModules)
 
 	if code == nil {
 		log.Info("running second round")
-		code, errs = generator.GenerateGoCode(yangFiles, searchpath)
+		code, errs = generator.Generate(yangFiles, searchpath)
 	}
 
 	lock.Unlock()
-- 
GitLab