Skip to content
Snippets Groups Projects

[renovate] Update module github.com/openconfig/ygot to v0.27.0

Merged Ghost User requested to merge renovate/github.com-openconfig-ygot-0.x into master
1 file
+ 16
16
Compare changes
  • Side-by-side
  • Inline
+ 16
16
@@ -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()
Loading