Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions dev-tools/mage/kibana.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@ func KibanaDashboards(moduleDirs ...string) error {
return err
}

// Create symlink from old directory so `make beats-dashboards` works.
if err := os.Symlink(filepath.Join("..", kibanaBuildDir), "_meta/kibana.generated"); err != nil && !os.IsExist(err) && !os.IsNotExist(err) {
return err
}

// Copy the OSS Beat's common dashboards if they exist. This assumes that
// X-Pack Beats only add dashboards with modules (this will require a
// change if we have X-Pack only Beats).
Expand Down
9 changes: 1 addition & 8 deletions dev-tools/mage/pkgtypes.go
Original file line number Diff line number Diff line change
Expand Up @@ -711,14 +711,7 @@ func addUidGidEnvArgs(args []string) ([]string, error) {

// addFileToZip adds a file (or directory) to a zip archive.
func addFileToZip(ar *zip.Writer, baseDir string, pkgFile PackageFile) error {
// filepath.Walk() does not resolve symlinks, but pkgFile.Source might be one,
// see mage.KibanaDashboards().
resolvedSource, err := filepath.EvalSymlinks(pkgFile.Source)
if err != nil {
return err
}

return filepath.Walk(resolvedSource, func(path string, info os.FileInfo, err error) error {
return filepath.Walk(pkgFile.Source, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
Expand Down
24 changes: 18 additions & 6 deletions magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ package main

import (
"fmt"
"os"
"path/filepath"

"github.com/magefile/mage/mg"
"github.com/magefile/mage/sh"
"github.com/pkg/errors"
"go.uber.org/multierr"

"github.com/elastic/beats/dev-tools/mage"
Expand All @@ -33,13 +35,13 @@ import (
var (
// Beats is a list of Beats to collect dashboards from.
Beats = []string{
"auditbeat",
"filebeat",
"heartbeat",
"journalbeat",
"metricbeat",
"packetbeat",
"winlogbeat",
"x-pack/auditbeat",
"x-pack/filebeat",
"x-pack/metricbeat",
"x-pack/functionbeat",
}
)
Expand All @@ -64,9 +66,19 @@ func PackageBeatDashboards() error {
OutputFile: "build/distributions/dashboards/{{.Name}}-{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}",
}

for _, beat := range Beats {
spec.Files[beat] = mage.PackageFile{
Source: filepath.Join(beat, "_meta/kibana.generated"),
for _, beatDir := range Beats {
// The generated dashboard content is moving in the build dir, but
// not all projects have been updated so detect which dir to use.
dashboardDir := filepath.Join(beatDir, "build/kibana")
legacyDir := filepath.Join(beatDir, "_meta/kibana.generated")
beatName := filepath.Base(beatDir)

if _, err := os.Stat(dashboardDir); err == nil {
spec.Files[beatName] = mage.PackageFile{Source: dashboardDir}
} else if _, err := os.Stat(legacyDir); err == nil {
spec.Files[beatName] = mage.PackageFile{Source: legacyDir}
} else {
return errors.Errorf("no dashboards found for %v", beatDir)
}
}

Expand Down