Skip to content

Commit c32ea5f

Browse files
committed
Add parameter to collect obsolete info using plugins.json
1 parent b1e7152 commit c32ea5f

File tree

4 files changed

+13267
-42
lines changed

4 files changed

+13267
-42
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,18 @@ $ bundle
3030

3131
## Configuration
3232

33-
### obsolete_plugins_yml (string) (optional)
33+
### plugins_json (string) (optional)
3434

35-
Path to obsolete-plugins.yml
35+
Path to `plugins.json`.
3636

37-
Default value: `https://raw.githubusercontent.com/fluent/fluentd-website/master/scripts/obsolete-plugins.yml`.
37+
Default value: `https://raw.githubusercontent.com/fluent/fluentd-website/master/scripts/plugins.json`.
38+
39+
40+
### Deprecated: obsolete_plugins_yml (string) (optional)
41+
42+
Path to `obsolete-plugins.yml`. This parameter is deprecated. Please use `plugins_json` parameter instead.
43+
44+
Default value: `nil`
3845

3946
### raise_error (bool) (optional)
4047

lib/fluent/plugin/filter_obsolete_plugins.rb

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,40 @@
1616
require "fluent/plugin/filter"
1717
require "open-uri"
1818
require "yaml"
19+
require "json"
1920

2021
module Fluent
2122
module Plugin
2223
class ObsoletePluginsFilter < Fluent::Plugin::Filter
2324
Fluent::Plugin.register_filter("obsolete_plugins", self)
2425

25-
OBSOLETE_PLUGINS_URL = "https://raw.githubusercontent.com/fluent/fluentd-website/master/scripts/obsolete-plugins.yml"
26+
PLUGINS_JSON_URL = "https://raw.githubusercontent.com/fluent/fluentd-website/master/scripts/plugins.json"
2627

2728
desc "Path to obsolete-plugins.yml"
28-
config_param :obsolete_plugins_yml, :string, default: OBSOLETE_PLUGINS_URL
29+
config_param :obsolete_plugins_yml, :string, default: nil, deprecated: "use plugins_json parameter instead"
30+
desc "Path to plugins.json"
31+
config_param :plugins_json, :string, default: PLUGINS_JSON_URL
2932
desc "Raise error if obsolete plugins are detected"
3033
config_param :raise_error, :bool, default: false
3134

3235
def configure(conf)
3336
super
3437

35-
@obsolete_plugins = URI.open(@obsolete_plugins_yml) do |io|
36-
YAML.safe_load(io.read)
38+
if @obsolete_plugins_yml
39+
@obsolete_plugins = URI.open(@obsolete_plugins_yml) do |io|
40+
YAML.safe_load(io.read)
41+
end
42+
else
43+
plugins = URI.open(@plugins_json) do |io|
44+
# io.read causes Encoding::UndefinedConversionError with UTF-8 data when Ruby is started with "-Eascii-8bit:ascii-8bit".
45+
# It set the proper encoding to avoid the error.
46+
io.set_encoding("UTF-8", "UTF-8")
47+
JSON.parse(io.read)
48+
end
49+
@obsolete_plugins = plugins.select { |plugin| plugin["obsolete"] }.reduce({}) do |result, plugin|
50+
result[plugin["name"]] = plugin["note"]
51+
result
52+
end
3753
end
3854

3955
obsolete_plugins = Gem.loaded_specs.keys & @obsolete_plugins.keys

0 commit comments

Comments
 (0)