package inputs_mqtt_consumer import ( "github.com/influxdata/toml" "github.com/influxdata/toml/ast" "github.com/influxdata/telegraf/migrations" ) // Migration function func migrate(tbl *ast.Table) ([]byte, string, error) { // Decode the old data structure var plugin map[string]interface{} if err := toml.UnmarshalTable(tbl, &plugin); err != nil { return nil, "", err } // Check for deprecated option(s) and migrate them var applied bool if _, found := plugin["metric_buffer"]; found { applied = true // Remove the ignored setting delete(plugin, "metric_buffer") } // No options migrated so we can exit early if !applied { return nil, "", migrations.ErrNotApplicable } // Create the corresponding plugin configurations cfg := migrations.CreateTOMLStruct("inputs", "mqtt_consumer") cfg.Add("inputs", "mqtt_consumer", plugin) output, err := toml.Marshal(cfg) return output, "", err } // Register the migration function for the plugin type func init() { migrations.AddPluginOptionMigration("inputs.mqtt_consumer", migrate) }