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