Skip to content

Commit

Permalink
generate endpoint collection in a deterministic order
Browse files Browse the repository at this point in the history
  • Loading branch information
abhishekparwal committed Apr 18, 2020
1 parent 9de6abf commit 9b26ab4
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 42 deletions.
4 changes: 4 additions & 0 deletions codegen/module_system.go
Original file line number Diff line number Diff line change
Expand Up @@ -1139,6 +1139,10 @@ func (g *EndpointGenerator) Generate(
endpointMeta = append(endpointMeta, endpointMetaResult.meta)
}

sort.SliceStable(endpointMeta, func(i, j int) bool {
return endpointMeta[i].Spec.HandleID < endpointMeta[j].Spec.HandleID
})

endpointCollection, err := g.templates.ExecTemplate(
"endpoint_collection.tmpl",
&EndpointCollectionMeta{
Expand Down
6 changes: 5 additions & 1 deletion codegen/package.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,10 @@ func getDefaultMiddlewareSpecsOrdered(
cfgDir string,
middlewareSpecs map[string]*MiddlewareSpec,
) (map[string][]MiddlewareSpec, error) {
middlewareObj := map[string][]string{}

if len(middlewareSpecs) == 0 {
return map[string][]MiddlewareSpec{}, nil
}

middlewareOrderingFile := filepath.Join(cfgDir, "middlewares/default.yaml")
if _, err := os.Stat(middlewareOrderingFile); os.IsNotExist(err) {
Expand All @@ -237,6 +240,7 @@ func getDefaultMiddlewareSpecsOrdered(
if err != nil {
return nil, errors.Wrapf(err, "could not read default middleware ordering file: %s", middlewareOrderingFile)
}
middlewareObj := map[string][]string{}
err = yaml.Unmarshal(bytes, &middlewareObj)
if err != nil {
return nil, errors.Wrapf(err, "could not parse default middleware ordering file: %s", middlewareOrderingFile)
Expand Down
54 changes: 27 additions & 27 deletions examples/example-gateway/build/endpoints/bar/endpoint.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 14 additions & 14 deletions examples/example-gateway/build/endpoints/baz/endpoint.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 9b26ab4

Please sign in to comment.