Skip to content

Commit

Permalink
UPSTREAM: 6692: openshift: Fix OCPBUGS-34619
Browse files Browse the repository at this point in the history
Generate zplugin.go correctly with third-party plugins (coredns#6692)

Previously, the generation of zplugin.go would not separate
third-party external plugins from CoreDNS plugins in the go
import block. This leads to the TestImportOrdering unit test
failing, as it requires that third-party imports paths to be
in a separate import block.

While this issue does not affect the main CoreDNS repo, it can cause
unit test failures in forks of CoreDNS that include external third-party
plugins.

Signed-off-by: Grant Spence <gspence@redhat.com>
  • Loading branch information
gcs278 committed May 29, 2024
1 parent 4a14f34 commit c87f74b
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions directives_generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,22 @@ func genImports(file, pack string, mi map[string]string) {
outs += "\n"
}

coreDnsImports := ""
thirdPartyImports := ""

outs += "// Include all plugins.\n"
for _, v := range mi {
outs += `_ "` + v + `"` + "\n"
if strings.HasPrefix(v, githubOrg) {
coreDnsImports += `_ "` + v + `"` + "\n"
} else {
thirdPartyImports += `_ "` + v + `"` + "\n"
}
}
outs += coreDnsImports
if thirdPartyImports != "" {
outs += "\n" + thirdPartyImports
}

outs += ")\n"

if err := formatAndWrite(file, outs); err != nil {
Expand Down Expand Up @@ -107,7 +119,8 @@ func formatAndWrite(file string, data string) error {
}

const (
pluginPath = "github.com/coredns/coredns/plugin/"
githubOrg = "github.com/coredns"
pluginPath = githubOrg + "/coredns/plugin/"
pluginFile = "plugin.cfg"
pluginFSPath = "plugin/" // Where the plugins are located on the file system
header = "// generated by directives_generate.go; DO NOT EDIT\n\n"
Expand Down

0 comments on commit c87f74b

Please sign in to comment.