From 98c4289a4852d985d8f096ed01e58a25b42dd569 Mon Sep 17 00:00:00 2001 From: Sven Rebhan <36194019+srebhan@users.noreply.github.com> Date: Mon, 16 Oct 2023 23:55:57 +0200 Subject: [PATCH] feat(migrations): Add migration for inputs.snmp_legacy (#14123) --- migrations/all/inputs_snmp_legacy.go | 5 ++++ migrations/inputs_snmp_legacy/migration.go | 21 +++++++++++++++++ .../inputs_snmp_legacy/migration_test.go | 23 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 migrations/all/inputs_snmp_legacy.go create mode 100644 migrations/inputs_snmp_legacy/migration.go create mode 100644 migrations/inputs_snmp_legacy/migration_test.go diff --git a/migrations/all/inputs_snmp_legacy.go b/migrations/all/inputs_snmp_legacy.go new file mode 100644 index 000000000..308f12e10 --- /dev/null +++ b/migrations/all/inputs_snmp_legacy.go @@ -0,0 +1,5 @@ +//go:build !custom || (migrations && (inputs || inputs.snmp_legacy)) + +package all + +import _ "github.com/influxdata/telegraf/migrations/inputs_snmp_legacy" // register migration diff --git a/migrations/inputs_snmp_legacy/migration.go b/migrations/inputs_snmp_legacy/migration.go new file mode 100644 index 000000000..d8bb1a20d --- /dev/null +++ b/migrations/inputs_snmp_legacy/migration.go @@ -0,0 +1,21 @@ +package inputs_snmp_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.snmp_legacy", migrate) +} diff --git a/migrations/inputs_snmp_legacy/migration_test.go b/migrations/inputs_snmp_legacy/migration_test.go new file mode 100644 index 000000000..39d2380e5 --- /dev/null +++ b/migrations/inputs_snmp_legacy/migration_test.go @@ -0,0 +1,23 @@ +package inputs_snmp_legacy_test + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/influxdata/telegraf/config" + _ "github.com/influxdata/telegraf/migrations/inputs_snmp_legacy" // register migration +) + +func TestNoMigration(t *testing.T) { + input := []byte(` +[[inputs.snmp_legacy]] + address = "192.168.2.2:161" +`) + + output, n, err := config.ApplyMigrations(input) + require.NoError(t, err) + require.Empty(t, strings.TrimSpace(string(output))) + require.Equal(t, uint64(1), n) +}