Skip to content

Commit

Permalink
Refactor generator to run all executeFuncs
Browse files Browse the repository at this point in the history
  • Loading branch information
bjee19 committed Sep 20, 2024
1 parent 832acf9 commit 3be58d9
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 34 deletions.
31 changes: 4 additions & 27 deletions internal/mode/static/nginx/config/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,12 @@ func (g GeneratorImpl) Generate(conf dataplane.Configuration) []file.File {
observability.NewGenerator(conf.Telemetry),
)

files = append(files, g.generateHTTPConfig(conf, policyGenerator)...)

files = append(files, generateConfigVersion(conf.Version))
files = append(files, g.runExecuteFuncs(conf, policyGenerator)...)

for id, bundle := range conf.CertBundles {
files = append(files, generateCertBundle(id, bundle))
}

files = append(files, generateMainContextConf(conf))

return files
}

Expand Down Expand Up @@ -141,7 +137,7 @@ func generateCertBundleFileName(id dataplane.CertBundleID) string {
return filepath.Join(secretsFolder, string(id)+".crt")
}

func (g GeneratorImpl) generateHTTPConfig(
func (g GeneratorImpl) runExecuteFuncs(
conf dataplane.Configuration,
generator policies.Generator,
) []file.File {
Expand Down Expand Up @@ -177,26 +173,7 @@ func (g GeneratorImpl) getExecuteFuncs(generator policies.Generator) []executeFu
g.executeStreamServers,
g.executeStreamUpstreams,
executeStreamMaps,
}
}

// generateConfigVersion writes the config version file.
func generateConfigVersion(configVersion int) file.File {
c := executeVersion(configVersion)

return file.File{
Content: c,
Path: configVersionFile,
Type: file.TypeRegular,
}
}

func generateMainContextConf(conf dataplane.Configuration) file.File {
result := executeMainIncludesConfig(conf)

return file.File{
Content: result.data,
Path: result.dest,
Type: file.TypeRegular,
executeVersion,
executeMainIncludesConfig,
}
}
4 changes: 2 additions & 2 deletions internal/mode/static/nginx/config/main_includes.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import (

var mainIncludesTemplate = gotemplate.Must(gotemplate.New("mainIncludes").Parse(mainIncludesTemplateText))

func executeMainIncludesConfig(conf dataplane.Configuration) executeResult {
func executeMainIncludesConfig(conf dataplane.Configuration) []executeResult {
result := executeResult{
dest: mainIncludesConfigFile,
data: helpers.MustExecuteTemplate(mainIncludesTemplate, conf),
}

return result
return []executeResult{result}
}
6 changes: 4 additions & 2 deletions internal/mode/static/nginx/config/main_includes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,15 @@ func TestExecuteMainIncludesConfig(t *testing.T) {

res := executeMainIncludesConfig(test.conf)

g.Expect(res).To(HaveLen(1))

g.Expect(strings.Count(
string(res.data),
string(res[0].data),
"load_module modules/ngx_otel_module.so;"),
).To(Equal(test.expTelemetryEndpointCount))

g.Expect(strings.Count(
string(res.data),
string(res[0].data),
"error_log stderr "+test.conf.Logging.ErrorLevel+";",
)).To(Equal(1))
})
Expand Down
10 changes: 8 additions & 2 deletions internal/mode/static/nginx/config/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,16 @@ import (
gotemplate "text/template"

"github.com/nginxinc/nginx-gateway-fabric/internal/framework/helpers"
"github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/dataplane"
)

var versionTemplate = gotemplate.Must(gotemplate.New("version").Parse(versionTemplateText))

func executeVersion(version int) []byte {
return helpers.MustExecuteTemplate(versionTemplate, version)
func executeVersion(conf dataplane.Configuration) []executeResult {
result := executeResult{
dest: configVersionFile,
data: helpers.MustExecuteTemplate(versionTemplate, conf.Version),
}

return []executeResult{result}
}
8 changes: 7 additions & 1 deletion internal/mode/static/nginx/config/version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"testing"

. "github.com/onsi/gomega"

"github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/dataplane"
)

func TestExecuteVersion(t *testing.T) {
Expand All @@ -14,7 +16,11 @@ func TestExecuteVersion(t *testing.T) {
"return 200 42;": 1,
}

maps := string(executeVersion(42))
cfg := dataplane.Configuration{
Version: 42,
}

maps := string(executeVersion(cfg)[0].data)
for expSubStr, expCount := range expSubStrings {
g.Expect(expCount).To(Equal(strings.Count(maps, expSubStr)))
}
Expand Down

0 comments on commit 3be58d9

Please sign in to comment.