Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
1 change: 1 addition & 0 deletions CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d

*Filebeat*
- Set event.outcome field based on googlecloud audit log output. {pull}15731[15731]
- move create-[module,fileset,fields] to mage and enable in x-pack/filebeat {pull}XXXX[XXXX]

*Heartbeat*

Expand Down
6 changes: 3 additions & 3 deletions filebeat/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ update: mage
# Creates a new module. Requires the params MODULE.
.PHONY: create-module
create-module:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a dependency on the mage target so that make will go install it.

Suggested change
create-module:
create-module: mage

@go run ${ES_BEATS}/filebeat/scripts/generator/module/main.go --path=$(PWD) --beats_path=$(BEAT_GOPATH)/src/$(BEAT_PATH) --module=$(MODULE)
mage createModule

# Creates a new fileset. Requires the params MODULE and FILESET.
.PHONY: create-fileset
create-fileset:
@go run ${ES_BEATS}/filebeat/scripts/generator/fileset/main.go --path=$(PWD) --beats_path=$(BEAT_GOPATH)/src/$(BEAT_PATH) --module=$(MODULE) --fileset=$(FILESET)
mage createFileset

# Creates a fields.yml based on a pipeline.json file. Requires the params MODULE and FILESET.
.PHONY: create-fields
create-fields:
@go run ${ES_BEATS}/filebeat/scripts/generator/fields/main.go --beats_path=$(BEAT_GOPATH)/src/$(BEAT_PATH) --module=$(MODULE) --fileset=$(FILESET)
mage createFields
58 changes: 58 additions & 0 deletions filebeat/magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,15 @@ package main
import (
"context"
"fmt"
"os"
"time"

"github.com/magefile/mage/mg"

devtools "github.com/elastic/beats/dev-tools/mage"
"github.com/elastic/beats/filebeat/generator/fields"
"github.com/elastic/beats/filebeat/generator/fileset"
"github.com/elastic/beats/filebeat/generator/module"
filebeat "github.com/elastic/beats/filebeat/scripts/mage"

// mage:import
Expand Down Expand Up @@ -220,3 +224,57 @@ func PythonIntegTest(ctx context.Context) error {
return devtools.PythonNoseTest(args)
}, "GENERATE", "TESTING_FILEBEAT_MODULES", "TESTING_FILEBEAT_FILESETS")
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try putting this into filebeat/scripts/mage/ so that you don't have to duplicate it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could put them under filebeat/scripts/mage/generate. Then import them with // mage:import generate so you get targets like mage generate:module.

// CreateModule creates a new Filebeat module.
// Use MODULE=module to specify the name of the new module
func CreateModule() error {
targetModule := os.Getenv("MODULE")
if targetModule == "" {
return fmt.Errorf("You must specify the module: MODULE=name mage createModule")
}

filebeatDir, err := os.Getwd()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use devtools.CWD() as a shortcut. It will panic on error, but that's how errors bubble up in mage.

if err != nil {
return err
}

return module.Generate(targetModule, filebeatDir, filebeatDir)
}

// CreateFileset creates a new fileset for an existing Filebeat module.
// Use MODULE=module to specify the name of the existing module
// Use FILESET=fileset to specify the name of the new fileset
func CreateFileset() error {
targetModule := os.Getenv("MODULE")
targetFileset := os.Getenv("FILESET")

if targetModule == "" || targetFileset == "" {
return fmt.Errorf("You must specify module and fileset: MODULE=module FILESET=fileset mage createFileset")
}

filebeatDir, err := os.Getwd()
if err != nil {
return err
}

return fileset.Generate(targetModule, targetFileset, filebeatDir, filebeatDir)
}

// CreateFields creates a new fields.yml for an existing Filebeat fileset.
// Use MODULE=module to specify the name of the existing module
// Use FILESET=fileset to specify the name of the existing fileset
func CreateFields() error {
targetModule := os.Getenv("MODULE")
targetFileset := os.Getenv("FILESET")

if targetModule == "" || targetFileset == "" {
return fmt.Errorf("You must specify module and fileset: MODULE=module FILESET=fileset mage createFields")
}

filebeatDir, err := os.Getwd()
if err != nil {
return err
}

return fields.Generate(filebeatDir, targetModule, targetFileset, false)
}
52 changes: 0 additions & 52 deletions filebeat/scripts/generator/fields/main.go

This file was deleted.

52 changes: 0 additions & 52 deletions filebeat/scripts/generator/fileset/main.go

This file was deleted.

46 changes: 0 additions & 46 deletions filebeat/scripts/generator/module/main.go

This file was deleted.

60 changes: 60 additions & 0 deletions x-pack/filebeat/magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,16 @@ package main
import (
"context"
"fmt"
"os"
"path"
"time"

"github.com/magefile/mage/mg"

devtools "github.com/elastic/beats/dev-tools/mage"
"github.com/elastic/beats/filebeat/generator/fields"
"github.com/elastic/beats/filebeat/generator/fileset"
"github.com/elastic/beats/filebeat/generator/module"
filebeat "github.com/elastic/beats/filebeat/scripts/mage"

// mage:import
Expand Down Expand Up @@ -188,3 +193,58 @@ func PythonIntegTest(ctx context.Context) error {
return devtools.PythonNoseTest(args)
}, "GENERATE", "TESTING_FILEBEAT_MODULES", "TESTING_FILEBEAT_FILESETS")
}

// CreateModule creates a new Filebeat module.
// Use MODULE=module to specify the name of the new module
func CreateModule() error {
targetModule := os.Getenv("MODULE")
if targetModule == "" {
return fmt.Errorf("You must specify the module: MODULE=name mage createModule")
}
xFilebeatDir, err := os.Getwd()
if err != nil {
return err
}
filebeatDir := path.Join(path.Dir(path.Dir(xFilebeatDir)), "filebeat")

return module.Generate(targetModule, xFilebeatDir, filebeatDir)
}

// CreateFileset creates a new fileset for an existing Filebeat module.
// Use MODULE=module to specify the name of the existing module
// Use FILESET=fileset to specify the name of the new fileset
func CreateFileset() error {
targetModule := os.Getenv("MODULE")
targetFileset := os.Getenv("FILESET")

if targetModule == "" || targetFileset == "" {
return fmt.Errorf("You must specify the module and fileset: MODULE=module FILESET=fileset createFileset")
}

xFilebeatDir, err := os.Getwd()
if err != nil {
return err
}
filebeatDir := path.Join(path.Dir(path.Dir(xFilebeatDir)), "filebeat")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


return fileset.Generate(targetModule, targetFileset, xFilebeatDir, filebeatDir)
}

// CreateFields creates a new fields.yml for an existing Filebeat fileset.
// Use MODULE=module to specify the name of the existing module
// Use FILESET=fileset to specify the name of the existing fileset
func CreateFields() error {
targetModule := os.Getenv("MODULE")
targetFileset := os.Getenv("FILESET")

if targetModule == "" || targetFileset == "" {
return fmt.Errorf("You must specify the module and fileset: MODULE=module FILESET=fileset mage createFields")
}

filebeatDir, err := os.Getwd()
if err != nil {
return err
}

return fields.Generate(filebeatDir, targetModule, targetFileset, false)
}