From 77f0d20703650f60ec8957ed3bc620b927429c82 Mon Sep 17 00:00:00 2001 From: Blake Rouse Date: Tue, 28 Apr 2020 09:04:34 -0400 Subject: [PATCH] Fix generated metricbeat so create-metricset works. (#18020) * Fix generated metricbeat so create-metricset works. * Fix mage target add target to x-pack/metricbeat. --- .../_templates/metricbeat/{beat}/magefile.go | 3 ++ metricbeat/Makefile | 2 +- metricbeat/magefile.go | 29 +--------- .../mage/target/metricset/metricset.go | 54 +++++++++++++++++++ x-pack/metricbeat/Makefile | 5 ++ x-pack/metricbeat/magefile.go | 2 + 6 files changed, 67 insertions(+), 28 deletions(-) create mode 100644 metricbeat/scripts/mage/target/metricset/metricset.go diff --git a/generator/_templates/metricbeat/{beat}/magefile.go b/generator/_templates/metricbeat/{beat}/magefile.go index b1b78829ee1a..934276e633b8 100644 --- a/generator/_templates/metricbeat/{beat}/magefile.go +++ b/generator/_templates/metricbeat/{beat}/magefile.go @@ -16,6 +16,9 @@ import ( "github.com/elastic/beats/v7/dev-tools/mage/target/unittest" "github.com/elastic/beats/v7/generator/common/beatgen" metricbeat "github.com/elastic/beats/v7/metricbeat/scripts/mage" + + // mage:import + _ "github.com/elastic/beats/v7/metricbeat/scripts/mage/target/metricset" ) func init() { diff --git a/metricbeat/Makefile b/metricbeat/Makefile index 9cbf88c3a591..7a05a5667756 100644 --- a/metricbeat/Makefile +++ b/metricbeat/Makefile @@ -3,6 +3,6 @@ ES_BEATS ?= .. include $(ES_BEATS)/dev-tools/make/mage.mk # Creates a new metricset. Requires the params MODULE and METRICSET -.PHONY: create-metricset +.PHONY: create-metricset create-metricset: mage createMetricset diff --git a/metricbeat/magefile.go b/metricbeat/magefile.go index 0281c6892ba0..b46dc9c79574 100644 --- a/metricbeat/magefile.go +++ b/metricbeat/magefile.go @@ -27,7 +27,6 @@ import ( "time" "github.com/magefile/mage/mg" - "github.com/magefile/mage/sh" devtools "github.com/elastic/beats/v7/dev-tools/mage" metricbeat "github.com/elastic/beats/v7/metricbeat/scripts/mage" @@ -48,6 +47,8 @@ import ( "github.com/elastic/beats/v7/dev-tools/mage/target/unittest" // mage:import _ "github.com/elastic/beats/v7/dev-tools/mage/target/compose" + // mage:import + _ "github.com/elastic/beats/v7/metricbeat/scripts/mage/target/metricset" ) func init() { @@ -197,29 +198,3 @@ func PythonIntegTest(ctx context.Context) error { return devtools.PythonNoseTest(devtools.DefaultPythonTestIntegrationArgs()) }, devtools.ListMatchingEnvVars("NOSE_")...) } - -// CreateMetricset creates a new metricset. -// -// Required ENV variables: -// * MODULE: Name of the module -// * METRICSET: Name of the metricset -func CreateMetricset(ctx context.Context) error { - ve, err := devtools.PythonVirtualenv() - if err != nil { - return err - } - python, err := devtools.LookVirtualenvPath(ve, "python") - if err != nil { - return err - } - path, err := os.Getwd() - if err != nil { - return err - } - - _, err = sh.Exec( - map[string]string{}, os.Stdout, os.Stderr, python, "scripts/create_metricset.py", - "--path", path, "--module", os.Getenv("MODULE"), "--metricset", os.Getenv("METRICSET"), - ) - return err -} diff --git a/metricbeat/scripts/mage/target/metricset/metricset.go b/metricbeat/scripts/mage/target/metricset/metricset.go new file mode 100644 index 000000000000..b1899e9352ad --- /dev/null +++ b/metricbeat/scripts/mage/target/metricset/metricset.go @@ -0,0 +1,54 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package metricset + +import ( + "os" + "path/filepath" + + "github.com/magefile/mage/sh" + + devtools "github.com/elastic/beats/v7/dev-tools/mage" +) + +// CreateMetricset creates a new metricset. +// +// Required ENV variables: +// * MODULE: Name of the module +// * METRICSET: Name of the metricset +func CreateMetricset() error { + ve, err := devtools.PythonVirtualenv() + if err != nil { + return err + } + python, err := devtools.LookVirtualenvPath(ve, "python") + if err != nil { + return err + } + beatsDir, err := devtools.ElasticBeatsDir() + if err != nil { + return err + } + scriptPath := filepath.Join(beatsDir, "metricbeat", "scripts", "create_metricset.py") + + _, err = sh.Exec( + map[string]string{}, os.Stdout, os.Stderr, python, scriptPath, + "--path", devtools.CWD(), "--module", os.Getenv("MODULE"), "--metricset", os.Getenv("METRICSET"), + ) + return err +} diff --git a/x-pack/metricbeat/Makefile b/x-pack/metricbeat/Makefile index 019d3b9309a8..c77d4c685174 100644 --- a/x-pack/metricbeat/Makefile +++ b/x-pack/metricbeat/Makefile @@ -1,3 +1,8 @@ ES_BEATS ?= ../.. include $(ES_BEATS)/dev-tools/make/mage.mk + +# Creates a new metricset. Requires the params MODULE and METRICSET +.PHONY: create-metricset +create-metricset: + mage createMetricset diff --git a/x-pack/metricbeat/magefile.go b/x-pack/metricbeat/magefile.go index ffd40949d703..992e4d6d1fa5 100644 --- a/x-pack/metricbeat/magefile.go +++ b/x-pack/metricbeat/magefile.go @@ -25,6 +25,8 @@ import ( "github.com/elastic/beats/v7/dev-tools/mage/target/unittest" // mage:import "github.com/elastic/beats/v7/dev-tools/mage/target/test" + // mage:import + _ "github.com/elastic/beats/v7/metricbeat/scripts/mage/target/metricset" ) func init() {