diff --git a/migrations/all/inputs_kafka_consumer_legacy.go b/migrations/all/inputs_kafka_consumer_legacy.go new file mode 100644 index 000000000..51202446e --- /dev/null +++ b/migrations/all/inputs_kafka_consumer_legacy.go @@ -0,0 +1,5 @@ +//go:build !custom || (migrations && (inputs || inputs.kafka_consumer_legacy)) + +package all + +import _ "github.com/influxdata/telegraf/migrations/inputs_kafka_consumer_legacy" // register migration diff --git a/migrations/inputs_kafka_consumer_legacy/README.md b/migrations/inputs_kafka_consumer_legacy/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/migrations/inputs_kafka_consumer_legacy/migration.go b/migrations/inputs_kafka_consumer_legacy/migration.go new file mode 100644 index 000000000..e255b8903 --- /dev/null +++ b/migrations/inputs_kafka_consumer_legacy/migration.go @@ -0,0 +1,21 @@ +package inputs_kafka_consumer_legacy + +import ( + "github.com/influxdata/toml/ast" + + "github.com/influxdata/telegraf/migrations" +) + +const msg = ` + This plugin cannot be migrated automatically and requires manual intervention! +` + +// Migration function +func migrate(_ *ast.Table) ([]byte, string, error) { + return nil, msg, nil +} + +// Register the migration function for the plugin type +func init() { + migrations.AddPluginMigration("inputs.kafka_consumer_legacy", migrate) +} diff --git a/migrations/inputs_kafka_consumer_legacy/migration_test.go b/migrations/inputs_kafka_consumer_legacy/migration_test.go new file mode 100644 index 000000000..909473efd --- /dev/null +++ b/migrations/inputs_kafka_consumer_legacy/migration_test.go @@ -0,0 +1,29 @@ +package inputs_kafka_consumer_legacy_test + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/influxdata/telegraf/config" + _ "github.com/influxdata/telegraf/migrations/inputs_kafka_consumer_legacy" // register migration +) + +func TestNoMigration(t *testing.T) { + input := []byte(` +[[inputs.kafka_consumer_legacy]] + topics = ["telegraf"] + zookeeper_peers = ["localhost:2181"] + zookeeper_chroot = "" + consumer_group = "telegraf_metrics_consumers" + offset = "oldest" + data_format = "influx" + max_message_len = 65536 +`) + + output, n, err := config.ApplyMigrations(input) + require.NoError(t, err) + require.Empty(t, strings.TrimSpace(string(output))) + require.Equal(t, uint64(1), n) +}