Module: Fluentd::Setting::Plugin::ClassMethods

Defined in:
app/models/concerns/fluentd/setting/plugin.rb

Instance Method Summary collapse

Instance Method Details

#create_driver(config) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 82

def create_driver(config)
  case plugin_type
  when "input"
    if plugin_class.class_variable_defined?(:@@pos_file_paths)
      plugin_class.class_variable_set(:@@pos_file_paths, {})
    end
    Fluent::Test::Driver::Input.new(plugin_class).configure(config)
  when "output"
    if Fluent::Plugin::FileBuffer.class_variable_defined?(:@@buffer_paths)
      Fluent::Plugin::FileBuffer.class_variable_set(:@@buffer_paths, {})
    end
    Fluent::Test::Driver::Output.new(plugin_class).configure(config)
  when "filter"
    Fluent::Test::Driver::Filter.new(plugin_class).configure(config)
  when "parser"
    Fluent::Test::Driver::Parser.new(plugin_class).configure(config)
  when "formatter"
    FLuent::Test::Driver::Formatter.new(plugin_class).configure(config)
  else
    nil
  end
end

#load_plugin_configObject



61
62
63
64
65
66
67
68
69
70
71
72
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 61

def load_plugin_config
  dumped_config = {}
  plugin_class.ancestors.reverse_each do |klass|
    next unless klass.respond_to?(:dump_config_definition)
    dumped_config_definition = klass.dump_config_definition
    dumped_config[klass.name] = dumped_config_definition unless dumped_config_definition.empty?
  end
  self.config_definition = dumped_config
  dumped_config.each do |name, config|
    yield name, config
  end
end

#plugin_classObject



78
79
80
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 78

def plugin_class
  @plugin_class ||= plugin_instance.class
end

#plugin_helpersObject



105
106
107
108
109
110
111
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 105

def plugin_helpers
  @plugin_helpers ||= if plugin_instance.respond_to?(:plugin_helpers)
                        plugin_instance.plugin_helpers
                      else
                        []
                      end
end

#plugin_instanceObject



74
75
76
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 74

def plugin_instance
  @plugin_instance ||= Fluent::Plugin.__send__("new_#{plugin_type}", plugin_name)
end

#register_plugin(type, name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 27

def register_plugin(type, name)
  self.plugin_type = type
  self.plugin_name = name

  if ["filter", "output"].include?(type)
    include Fluentd::Setting::Pattern
  end

  if ["input", "filter", "output"].include?(type)
    include Fluentd::Setting::Label
  end

  if ["parser"].include?(type)
    include Fluentd::Setting::ParserAdvancedOptions
  end

  if ["formatter"].include?(type)
    include Fluentd::Setting::FormatterAdvancedOptions
  end

  self.load_plugin_config do |_name, params|
    params.each do |param_name, definition|
      if definition[:section]
        parse_section(param_name, definition)
        if %i(buffer storage parse format).include?(param_name)
          attribute("#{param_name}_type", :string)
        end
      else
        config_param(param_name, definition[:type], **definition.except(:type))
      end
    end
  end
end

#section?Boolean

Returns:

  • (Boolean)


113
114
115
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 113

def section?
  false
end